两者的关系
一个程序块可以有多个initial和always过程块。每个initial和always说明语句在仿真的一开始同时立即开始执行;initial语句只执行一次,而always语句则不断重复的活动着,直到仿真结束。但always块语句后面跟着的过程快是否运行,满足则运行一次,满足则运行一次,直到程序结束。一段程序中使用的initial和always语句的次数不受限制,他们都是同时开始运行的。
(1)、initial语句
1、语句格式
initia
begin
语句一;
语句二;
语句三;
语句四;
end
2.举例说明
initia
begin
s1 = 0 ;
for(index=0;index
上述例子中在仿真开始对各变量进行初始化,这个初始化过程不需要任何仿真时间,即在0ns时间内,便可以完成存储器的初始化工作。实例2:initia语句生成激励波形
initial
begin
s= ‘b00000;
#10 s = ’b00001;
#10 s= ‘b00010;
#10 s = ’b00100;
#10 s= ‘b01000;
#10 s = ’b10000;
```/
end
上面程序块按照顺序依次执行
10 :s=1; 20 :s=2;。。.。。.。
注意一个模块中可以有许多个initial块,它们都是并行运行的。initial语句最常见的是用于测试文件里面的初始化语句,用来产生测试环境和设置信号记录。(2)always语句always语句在仿真过程中不断的运行着。initial语句只执行一次,而always语句则不断重复的活动着,直到仿真结束。但always块语句后面跟着的过程快是否运行,满足则运行一次,满足则运行一次,直到程序结束。1、语句格式:always 《时序控制》 《语句》always语句由于其不断活动的特性,只有和一定的时序控制逻辑结合在一起才有用。如果一个always没有时序控制,它将会产生死锁,例如:always clk = ~clk;加上时序控制 always可以用来产生时钟信号:always #10 clk = ~clk 10个时间单位翻转一次。always的时序控制可以使边沿触发(上升沿或者下降沿)也可以用电平触发,可以是单个信号也可以是多个信号,中间需要用关键字or连接,例如:》 边沿触发
always@(posedge clk or negedge rst)
》begin
》end
由两个沿触发的always只要其中一个沿到来,就立即执行一次过程块,然后等待下一次的沿到来。电平触发
always@(a or b or c)
begin
。。.。
end
由多个电平触发的的always块,只要a,b,c中的任何一个发生变化,从高到低或者从低到高都会执行一次过程,这里有个疑问,执行过程块的时刻是在从低到高变化的时候还是什么时候?一个模块可以包含多个always块,它们都是并行执行的2. always块的or时间控制//有异步复位的电平敏感锁存器
always@(reset or clock or d)//也可以写成always@(a,b,c) 用,代替or
begin
if(reset)
q = 1‘b0;
else if(clock)
q = d;
end
//用reset异步下降沿复位,clock的正条边沿触发的d寄存器
always@(negedge reset , posedge clk)
if(!reset)
q 《= 0;
else
q 《= d;
always@ (*)的使用用符号always@(*)可以把所有输入变量都包含进敏感列表例如:
always@(a,b,c,d,e,f,g,h,r,m)
begin
out1 = a?(b+c):(d+e);
out2 = f?(g+h):(r+m)
end
可以用下面代码来代替
always@(*)
begin
out1 = a?(b+c):(d+e);
out2 = f?(g+h):(r+m)
end
前面所讨论的时间控制都需要等待信号值的变化或者事件的触发,使用符号@和后面的敏感列表来表示。verilog允许另外一种形式表示的电平敏感时序控制(即后面的语句或者语句块必须等到某个条件诶真是才能执行),具体请看下面例子:always
wait(count_enabel) # 20 count = count +1;
```
Acconeer全球首款PCR雷达传感器有什么特点?有哪些运用场景?
电磁流量计检定中的流量零点和电流零点,你知道吗
旱情加剧,台“经济部长”确保芯片的稳定供应
激光雷达和自动驾驶互生发展 共性需求决定激光雷达五大趋势
雷军真憋大招,网爆小米6配满血版骁龙835和柔性屏
initial和always两者的关系分析
2013年投射电容触摸控制器IC将劲增
高精地图在车路协同中的应用
详解蛇形天线设计及工作原理
DW01 锂电池保护IC 过充检测4.3V,过放检测2.4V
小间距LED显示屏在会议室有什么神通?
广东省中医院采用手术机器人,推动医疗智能技术新升级
三星GalaxyNote10的CAD渲染图曝光
网络综合布线错误会有哪些情况
机器学习实用指南:训练和损失函数
运动无线蓝牙耳机哪款好,运动蓝牙跑步耳机品牌排行榜
马斯克:今年年底前推出全自动驾驶技术
详细介绍RF芯片测试夹具在微波测量中的应用及仿真对比
三菱PLC如何控制变频器详细方法解析
在FPC上贴装SMD有哪些方案