当我遇到以下内容时,我正在阅读此页面http://www.asic-world.com/verilog/verilog_one_day3.html :
我们通常必须复位触发器,因此每次时钟从 0 转换到 1(posedge)时,我们检查是否复位(同步复位),然后我们继续正常逻辑。如果我们仔细观察,我们会发现在组合逻辑的情况下,我们有“=”用于赋值,而对于顺序块,我们有“<=”运算符。好吧,“=”是阻塞赋值,“<=”是非阻塞赋值。“=”在开始/结束内顺序执行代码,而非阻塞“<=”并行执行。
我相当确定非阻塞分配是顺序的,而阻塞分配是并行的。毕竟,您可以在 always 块之外使用 assign 语句进行阻塞分配,并且这些语句都是并行运行的。这是一个错误,还是总是块内的行为不同?而且,如果在 always 块内的行为不同,是否可以在 always 块外进行非阻塞分配?