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块。
两个好朋友,干啥事都得一块,比如即使你吃完饭了,也要等朋友一起离开。
16.Verilog中的initial 块和fork join
最新推荐文章于 2023-09-25 10:52:34 发布