求助verilog HDL非阻塞赋值

[复制链接]
查看11 | 回复1 | 2011-5-16 06:02:19 | 显示全部楼层 |阅读模式
如:
always@()
begin
begin
a=b;
end
end

究竟是在第一个end的时候把b的值赋给a,还是在第二个end的时候把b的值赋给a。书上是说在块结束的时候才完成赋值操作,这里块是指一个begin-end,还是那个always块
回复

使用道具 举报

千问 | 2011-5-16 06:02:19 | 显示全部楼层
楼主
好,
对于阻塞赋值和非阻塞赋值的理解最好还是从组合逻辑和时序逻辑的区分入手比较好。
对于组合逻辑来说,它的输出对于输入的响应是实时的。用HDL语言来描述,就是用阻塞赋值的方式比较好。
对于时序逻辑来说,它的输出一般是在时钟的边沿打出的。那么这样一来,对于信号的响应输出,(拿上升沿处理条件来说)可以在这个上升沿之前到信号变化点之间任一时刻变化都可以。
那么用非阻塞赋值描述就可以了。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

主题

0

回帖

4882万

积分

论坛元老

Rank: 8Rank: 8

积分
48824836
热门排行