verilog的always块里,既有电平又有边沿触发呢?

2019-03-25 09:59发布

怎么在verilog的always块里,既有电平又有边沿触发呢? 比如always@(a or b or c)我让a为边沿触发怎么实现 此帖出自小平头技术问答
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
15条回答
tx_xy
1楼-- · 2019-03-27 01:12
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的优先级;

在verilog里
always@(posedge a)
begin
sel<={b,c};
if(sel==2'b10) begin
cnt<=cnt+1;
end
assign clk_out=cnt[2];
end
这个电路中,sel会在a的posedge处才会变化。

从代码分析,这是两种完全不一样的电路,所以结果不一样,也很正常!
[ 本帖最后由 tx_xy 于 2011-9-22 22:53 编辑 ]
jokeboy999
2楼-- · 2019-03-27 06:20
 精彩回答 2  元偷偷看……
eeleader
3楼-- · 2019-03-27 10:43

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的优先级;

有这样描述电路的吗?

不符合标准的电路结构哦!

一周热门 更多>