datasheet
超过460,000+ 应用技术资源下载
docx

Verilog HDl 阻塞与非阻塞

  • 1星
  • 日期: 2015-05-04
  • 大小: 94.49KB
  • 所需积分:2分
  • 下载次数:0
  • favicon收藏
  • rep举报
  • 分享
  • free评论
标签: 阻塞与非阻塞

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

实验设计: 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. 区别:阻塞赋值语句在所在的块中是按从上到下执行(“从上到下执行”是通过空间逻辑结构来实现而非时间上的先后顺序),赋值时先计算等号右方向的值,此时赋值语句不允许其他任何语句的干扰,直到现行的赋值语句完成后,才允许别的赋值语句执行;而非阻塞赋值为并发执行,即执行非阻塞语句时,同时计算‘<=’右边的表达式,并且同时更新‘<=’左边的值。
更多简介内容

评论

下载专区


TI最新应用解决方案

工业电子 汽车电子

$(function(){ var appid = $(".select li a").data("channel"); $(".select li a").click(function(){ var appid = $(this).data("channel"); $('.select dt').html($(this).html()); $('#channel').val(appid); }) })