初始化全部推断的寄存器、
SRL
和存储器
GSR
网络用于根据
HDL
代码中规定的初始值完成所有寄存器的初始化。如果没有设定初始值,综合工具会自行将初始
状态赋值为
0
或
1
。除少数情况,比如
one-hot
状态机编码,
Vivado
综合工具一般都设定默认值为
0
。
任何推断的
SRL
、存储器或其它同步元件也可能都有设定的初始状态,可在配置时编程到相关元件中。
赛灵思强烈建议相应地初始化所有的同步元件。寄存器的初始化完全可使用各种主要的
FPGA
综合工具加以推断。因
为经配置后
FPGA
器件中所有的同步元件都会从已知值启动,这样做可避免纯粹为初始化目的添加复位功能,让
RTL
代码在功能仿真中更贴近实现的设计。
寄存器和锁存器初始状态
VHDL
编码实例
1
:
signal reg1 : std_logic := ‘0’; -- specifying register1 to start as a zero
signal reg2 : std_logic := ‘1’; -- specifying register2 to start as a one
signal reg3 : std_logic_vector(3 downto 0):=“1011”; -- specifying INIT value for
4-bit register
寄存器和锁存器初始状态
Verilog
编码实例
1
:
reg register1 = 1’b0; // specifying regsiter1 to start as a zero
reg register2 = 1’b1; // specifying register2 to start as a one
reg [3:0] register3 = 4’b1011; //specifying INIT value for 4-bit register
寄存器和锁存器初始状态
Verilog
编码实例
2
:
另外还可以在
Verilog
中使用
initial
声明:
reg [3:0] register3;
initial begin
register3= 4’b1011;
end