verilog初识-initial、always、task、function
1.initial
一个程序中可以有多个initial语句块,多个initial说明语句并行执行,一个initial语句块仅执行一次。
initial多用于对变量的初始化。
如:(1)用initial块对存储器变量初始化
inital
begin
areg = 0; //初始化寄存器变量areg
for(index = 0; index < size; index = index + 1)
meory[index] = 0; //初始化memory变量
end
(2)用initial语句生成激励波形
initial
begin
inputs = b'0000; //初始时刻inputs为0
#10 inputs = b'1010; //在第10个单位时间后改变inputs的值
#10 inputs = b'0101; //在第20个单位时间后改变inputs的值
end
2.always
一个程序中可以有多个always语句块,每个always说明语句在仿真的开始同时执行;always语句不断重复地执行,直到仿真结束。always语句后紧跟的过程块是否运行,要看它的触发条件是否满足,一旦触发条件满足,则运行过程块,直至仿真过程结束。
其声明结构如下:
always (时序控制) 语句
always如果没有时序控制,会使仿真器产生死锁。如:
always areg = ~areg;
这条语句会生成一个0延迟的无限循环跳变过程,会导致仿真器发生死锁。

本文讲述了Verilog中的initial、always、task和function的用法,涉及初始化、逻辑控制、任务和函数调用,是电路设计入门教程。

5598

被折叠的 条评论
为什么被折叠?



