结构语句
1. initial说明语句—只执行1一次
2. always说明语句—不断重复执行,直到仿真结束
always块语句
1. 包含一个或一个以上的声明语句(如:过程赋值语句、任务调用、条件语句和循环语句等),在仿真运行的全过程中,在定时控制下被反复执行
2. 特点:
(1)always块中的信号数据类型只能是register型变量(如reg,integer,real,time,最常用的为reg型)
(2)always块在仿真一开始就执行了,当程序执行完块中的最后一个语句,会继续从这个always块的开头执行
(3)always块中一般都含有敏感信号列表,即@(...),如果敏感信号列表的条件发生改变,那么就执行always语句中的块语句
(4)如果没有敏感信号列表,那么就表示always语句中的条件一直被满足,可以不断执行always语句内的语句块
3. always语句必须与一定的时序控制结合在一起才有用!如果没有时序控制,则易形成仿真死锁!
4. 格式:always <时序控制><语句>
5. 注意:
(1)必须在敏感信号列表中列出影响块内取值的所有信号
(2)敏感信号可以为一个,也可以为多个,中间需要使用关键字or或者,连接,也可以使用*代替
(3)敏感信号不要为x或z,否则会阻挡进程
(4)如果always块中包含一个以上的语句,则这些语句必须放在begin_end或fork_join块中
(5)
6. always的时间控制可以为沿触发(常用于描述时序逻辑),也可以是电平触发(常用于描述组合逻辑)。
7. posedge-上升沿
negedge-下降沿
initial语句
1. 格式:
initial
begin
语句1;
语句2;
...
语句n;
end
2. 作用:
(1)赋初值
(2)在测试文件中生成激励波形作为电路的仿真信号