fpga系列 HDL:tips 初始化错误排查 仿真和实际不符的可能原因
-
在 Verilog 中,
SYS_RST
系统复位信号(System Reset)的主要作用是将模块的内部状态和寄存器初始化为已知的默认值。 -
复位信号在硬件设计中非常重要,因为它确保了系统在启动、错误恢复或特定条件下能够进入一个稳定且可预测的状态。
-
没有正确的服务初始化,可能导致仿真和实际不符:
- 例如,在仿真中某个信号的默认电平可能为低,但在实际芯片中默认初始化为高,并且没有在系统复位时初始化为低就会产生错误。
代码优化
always @(posedge CLK or negedge SYS_RST)
beginif (~SYS_RST) // 检测到复位信号有效(低电平)beginStatus <= 0; // 重新检查并补充初始化状态寄存器相关代码end
end
CG
- FPGA 芯片内部有一个上电检测模块,一旦检测到电源电压超过检测门限后,就产生一个上电复位脉冲(Power On Reset)并将其送给所有的寄存器,这个脉冲会自动作用在各个寄存器的复位端,和功能复位管脚共同控制寄存器的复位。
- https://www.alldatasheet.com/html-pdf/559988/ALTERA/EP2C20/19663/89/EP2C20.html
- 2.2.1. POR电路监控和未监控电源
- 在 FPGA 设计中,Power-On Reset (POR) 检测电路是非常重要的,它确保了 FPGA 在上电时能够正确初始化所有内部寄存器和状态机。POR 电路通常用于生成一个复位信号,该信号会在电源电压稳定后释放,从而允许 FPGA 开始正常工作。