2019-03-25 09:59发布
在VHDL中这样写法,我认为有些不妥
beginsel<=b&c;process(a,b,c)beginif (sel="10") thenif a'event and a='1' thencnt<=cnt+'1'end if;clk_out<=cnt[2];end process;主要是,if ----end if (sel="10")结构包括边缘触发(这个是实时钟信号)
常见写法1:
if(变量=X) THEN
-----
ELSIF clk'event and clk='1' then
----
end if;
这种写法更符合电路实际结构。
常见写法2:
if clk'event and clk='1' then
if (sel="10") then
------
目前从代码写法上看,VERILOG并没错误,
但我想是不是这个问题,A信号的边缘变化 慢于 B,C信号的变化,结果导致B,C信号采样丢失!
最多设置5个标签!
在VHDL中这样写法,我认为有些不妥
begin
sel<=b&c;
process(a,b,c)
begin
if (sel="10") then
if a'event and a='1' then
cnt<=cnt+'1'
end if;
clk_out<=cnt[2];
end process;
主要是,if ----end if (sel="10")结构包括边缘触发(这个是实时钟信号)
常见写法1:
if(变量=X) THEN
-----
ELSIF clk'event and clk='1' then
----
end if;
这种写法更符合电路实际结构。
常见写法2:
if clk'event and clk='1' then
if (sel="10") then
------
end if;
end if;
目前从代码写法上看,VERILOG并没错误,
但我想是不是这个问题,A信号的边缘变化 慢于 B,C信号的变化,结果导致B,C信号采样丢失!
一周热门 更多>