verilog 语法中块的作用

在顺序块(begin ....end)和并行块(fork....join)中可以给块命名。一般用于testbench仿真激励文件中,对每条语句执行的顺序及时序进行自由设计。fork....join无法综合。

例如:

begin   块1
    块内声明语句
    语句1
    语句2
end

fork  块2
    块内声明语句
    语句1
    语句2
join

这样的好处有3点:

1. 可以在块内定义局部变量,只在这个块内使用;

2. 可以被其他语句调用,例如disable语句;

3. 因为变量是静态的,所有的变量只有一个唯一的存储地址,因此块名可用于确认变量值。

在begin-end语句块中,begin-end和fork-join块可以相互嵌套,也可以自我嵌套。如果begin-end中包含有局部声明,则他必须被命名(必须有一个标志)。如果要禁止一个begin-end块,那么被禁止的begin-end必须有名字。

例如如下代码:

module clk_tsb( );
reg clk1,clk2,clk3,clk4,clk5,clk6;

initial
begin
    clk1 = 0;
    clk2 = 0;
    clk3 = 0;
    #10 clk1 = 1;
    fork
        #20 clk2 = 1;
        #30 clk3 = 1;  
    join
end
initial
begin
    clk4 = 0;
    clk5 = 0;
    clk6 = 0;
    fork
        #10 clk4 = 1;
        begin
            #10 clk5 = 1;
            #20 clk5 = 0;
        end
        #30 clk6 = 1;
    join
end 
endmodule

 

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值