怎么在verilog的always块里,既有电平又有边沿触发呢?
比如always@(a or b or c)我让a为边沿触发怎么实现
在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信号采样丢失!
引用: 原帖由 eeleader 于 2011-9-22 21:27 发表 这个问题有这么复杂吗?还要真值表!
引用: VHDL:
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;
这个电路里sel的优先级高于a的优先级;
有这样描述电路的吗?
不符合标准的电路结构哦!