首页资源分类FPGA/CPLD > Verilog HDl 阻塞与非阻塞

Verilog HDl 阻塞与非阻塞

已有 445025个资源

下载专区

上传者其他资源

    文档信息举报收藏

    标    签:阻塞与非阻塞

    分    享:

    文档简介

    设计实验比较阻塞与非阻塞语句的区别。

    文档预览

    实验设计: 1. 通过quartusⅡ软件仿真来观察阻塞与非阻塞赋值的区别。编辑两个文本程序,分别实现阻塞赋值和非阻塞赋值。 2. 编译成功后生成原理图,并比较他们的逻辑结构。 程序: (1) module typ1 ( q1, q2, clk_osc ) ; input clk_osc; output [7:0] q1,q2; reg [7:0] q1,q2; always @(posedge clk_osc) begin q1=q1+8'd1; q2=q1; end endmodule (2) always @(posedge clk_osc) begin q1<=q1+8'd1; q2<=q1; end 1. 分析:执行always块时,先计算q1+8'd1的值,然后将其计算的值同时分别赋给q1和q2,从而使q1和q2的值相等。一可以看出执行阻塞语句时,在执行‘q1=q1+8'd1’时阻塞了下一句‘q2=q1’的执行,使其q1的初值不能赋给q2;二可以看出这里的阻塞并不是时间上的延时,而是在逻辑结构上实现的。 2. 分析:在执行always语句块时,其中的非阻塞语句可以看成同时执行,上一句的执行并不阻塞下一句的执行。从而可以将q1的初值赋给q2. 区别:阻塞赋值语句在所在的块中是按从上到下执行(“从上到下执行”是通过空间逻辑结构来实现而非时间上的先后顺序),赋值时先计算等号右方向的值,此时赋值语句不允许其他任何语句的干扰,直到现行的赋值语句完成后,才允许别的赋值语句执行;而非阻塞赋值为并发执行,即执行非阻塞语句时,同时计算‘<=’右边的表达式,并且同时更新‘<=’左边的值。

    Top_arrow
    回到顶部
    EEWORLD下载中心所有资源均来自网友分享,如有侵权,请发送举报邮件到客服邮箱bbs_service@eeworld.com.cn 或通过站内短信息或QQ:273568022联系管理员 高员外,我们会尽快处理。