FPGA学习系列:5.阻塞赋值与非阻塞赋值

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

FPGA学习系列:5.阻塞赋值与非阻塞赋值

设计背景:

阻塞(=)和非阻塞(

设计原理:

阻塞:在本语句中“右式计算”和“左式更新”完全完成之后,才开始执行下一条语句;非阻塞:当前语句的执行不会阻塞下一语句的执行。

我们来看一下下面的阻塞的代码

0 module study_4 (clk, rst_n, d, q);

1 //输入输出端口

2 input clk;

3 input rst_n;

4 input [1:0] d;

5 output reg [1:0] q;

6

7 reg [1:0] q1; //定义一个寄存器

8

9 always @ (posedge clk)

10 begin

11 if(!rst_n) //复位时用阻塞给寄存器输出赋初值

12 begin

13 q1 = 0;

14 q = 0;

15 end

16 else //阻塞语句进行赋值

17 begin

18 q1 = d;

19 q = q1;

20 end

相关文档
最新文档