硬汉嵌入式论坛

 找回密码
 立即注册
查看: 4540|回复: 0
收起左侧

阻塞和非阻塞的区别(用实例来说明)

[复制链接]

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
107415
QQ
发表于 2013-9-24 13:20:42 | 显示全部楼层 |阅读模式
1.  不要看课本上面说的那些个理论,讲半天也说不到本质上面,尽在在那里扯概念。
2.  学习Verilog,要将其和硬件电路联系起来,写一个程序要大概的知道生成什么样的逻辑电路,这样才行。

下面举一个简单的例子,来分别的实现阻塞式和非阻塞
阻塞式

module block(clk, q);
    input  clk;
    output[1:0]  q;
    reg[1:0]      q;
    reg    a;
    reg    b = 1'b1;
    always @(posedge clk)
        begin
            a = b;
            q = a + 1'b1;
        end
endmodule
2.png

非阻塞式

module block(clk, q);    input  clk;
    output[1:0]  q;   
    reg[1:0]      q;
    reg    a;   
    reg    b = 1'b1;
    always @(posedge clk)      
       begin
            a <= b;            
            q <= a + 1'b1;
        end
endmodule
3.png


总结:说白了阻塞式和非阻塞的区别就是直线和触发器的区别,从RTL视图可以清晰看出。
回复

使用道具 举报

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

本版积分规则

QQ|小黑屋|Archiver|手机版|硬汉嵌入式论坛

GMT+8, 2024-5-30 13:34 , Processed in 0.251988 second(s), 28 queries .

Powered by Discuz! X3.4 Licensed

Copyright © 2001-2023, Tencent Cloud.

快速回复 返回顶部 返回列表