Verilog 中的顺序块和并行快

Verilog中的块语句有两种,一种是顺序块,以begin end引导,另一种是并行快,以fork join引导。

1. 顺序块

顺序块已经用的很多了,通常在initial引导的结构中使用,块内的语句顺序执行,每条语句的延迟时间是相对于前一天语句的仿真时间而言的。

例1:

begin 
  a_reg = b_reg;
  c_reg = a_reg;  // c_reg 的值即为b_reg的值
end

首先a_reg 的值更新为b_reg 的值,然后c_reg的值更新为a_reg的值,因为这两条赋值语句之间没有任何延时,所以c_reg的值实为b_reg的值

例2:

parameter d=50;
reg [7:0]r;
begin
  #d r = 'h35;
  #d r = 'hE2;
  #d r = 'h00;
  #d r = 'hF7;
  #d -> end_wave;  // -> 表示触发事件end_wave使其翻转
end

2. 并行快

并行快有以下特点

1)块内语句同时执行

2)块内每条语句的延时都是相对于进入该块的时间

3)延迟时间是用来给赋值语句提供执行时序的

4)当按时间时序排序在最后的语句执行完后 或者 一个disable语句执行时,跳出该程序块。

例3:

parameter d=50;
reg [7:0]r;
fork
  #d     r = 'h35;
  #(2*d) r = 'hE2;
  #(3*d) r = 'h00;
  #(4*d) r = 'hF7;
  #(5*d) -> end_wave;  // 触发事件end_wave
join

例3和例2生成的波形是一样的 

 

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值