71,Verilog-2005标准篇:块语句简介

块语句是一种将语句组合在一起的方法,这样它们在语法上就像一条语句。Verilog HDL 中有两种块:

- 顺序块,也称为begin-end block

- 并行块,也称fork-join block

顺序块由关键字 beginend 限定,顺序块中的过程语句应按指定顺序依次执行。并行块由关键字 forkjoin 限定,并行块中的过程语句应同时执行。下面分别介绍:

1,顺序块

顺序块应具有以下特征:

- 语句应依次执行。

- 每条语句的延迟时间应对应于执行前一条语句所需的仿真时间。

- 在执行完最后一条语句后,控制权应从过程块中流出。

下表1给出了顺序块的正式语法:

表1:顺序块语句的语法

例1:一个顺序块能使下面两个赋值产生确定的结果:

begin

areg = breg;

creg = areg;  // creg stores the value of breg

end

例子1在执行第一个赋值后,areg会在编译器执行第二个赋值之前被更新。

例2:延时控制可用于顺序块中,在时间上将两个赋值分开。

begin

areg = breg;

@( posedge  clock) creg = areg; // assignment delayed until

end                            // posedge on clock

例3:下面的示例展示了如何将顺序块和延迟控制结合起来用于指定时序波形:

parameter  d = 50; // d declared as a parameter and

reg  [7:0] r; // r declared as an 8-bit reg

begin  // a waveform controlled by sequential delay

#d r = 'h35;

#d r = 'hE2;

#d r = 'h00;

#d r = 'hF7;

#d -> end_wave; //trigger an event called end_wave

end 

2,并行块

并行代码块应具有以下特征:

- 语句应同时执行。

- 执行每个语句的延迟时间应与进入过程块的仿真时间相对应。

- 语句的延迟控制可用于为赋值操作提供时间排序。

- 当执行最后一条按时间排序的语句后,过程块结束。

并行块的语法如下表2所示:

表2:并行块的语法规则

下面的示例使用了并行块对波形进行描述:

fork

#50  r = 'h35;

#100 r = 'hE2;

#150 r = 'h00;

#200 r = 'hF7;

#250 -> end_wave;

join

顺序块和并行块都可以通过在关键字 begin fork 后添加name_of_block 来命名。块语句命名后允许为代码块声明局部变量、参数。块语句内声明的所有变量都应是静态的,也就是说,所有变量都有一个唯一的位置,离开或进入过程块都不会影响其中存储的值,而且过程块名称提供了在任何仿真时间唯一标识所有变量的方法。

点赞加关注博主(ID:FPGA小飞)的博文,咱们一起系统学习verilog最终标准IEEE Std 1364-2005吧!

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值