在使用Verilog进行开发时,有的reg型变量需要赋初值。经过尝试,有三种方法可以实现给reg变量赋初值。(测试使用的是EP4CE6E22C8开发板,测试时使用串口将变量值发给上位机。)
1、在定义reg变量时赋初值:
reg [3:0] a = 4'd10;
2、复位时给reg变量赋值;
3、用initial语句赋初值:
initial a = 4'd10;
但是很多资料说,initial语句通常用于仿真的testbench模块中对激励矢量的描述或用于给寄存器变量赋初值,而在实际电路中赋初值是没有意义的,在综合时会被忽略。但可以在可综合模块中对存储器加载初始化文件,这是一种可综合的行为,但不能就因此说initial就是可综合的语法,所以不要轻易在可综合的模块中使用initial,或者干脆最好不用。所以,后面还是采用1、2两种方式给reg变量赋初值。
记录一下