16.Verilog中的initial 块和fork join

本文介绍了VerilogHDL中的initial块用于在仿真开始时设置初始值,以及forkjoin结构如何控制线程同步。initial块的内容在仿真0时刻执行,而forkjoin确保两个线程并发执行并在两者都完成后结束。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1.首先介绍initial块,这个在验证环境中使用比较频繁,initial 就表示最初的,顾名思义
initial 块中的内容在仿真0时刻,切记一定是0时刻开始运行。举例

initial begin

a = 1;
end
这个表示在仿真0时刻,a就赋值为了1;

initial begin

#5

a = 1;

end
这个表示在仿真0时刻后,再等5个仿真时间单位,切记是5个仿真时间单位,然后a赋值为1

如果有多个initial 块,这个多个initial 块都是并行执行的,举例

initial begin  
 
b =1;

end

initial begin

c =1;
end
这两个表示在仿真0时刻a和b都同时赋值为1,

initial begin

a =1;

end

initial begin
#6;
b =1;
end
这两个表示在仿真0时刻,a赋值为1,同时过了6仿真时间单位后b赋值为1.



fork join,表示开辟了两个线程这两个线程中,必须同时结束才能退出fork join块。举例:
像一个大括号似的包住。

fork  

   begin  
    e  = 1;
    #10;
   end

   begin
   
   #5;
   f =1;
   end


join 
两个begin end块中的内容是并行执行的,其中刚开始e=1,过了5个时间单位f=1,此时还没有退出fork join块,再过5个时间单位才退出fork join块。
两个好朋友,干啥事都得一块,比如即使你吃完饭了,也要等朋友一起离开。


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值