Verilog VGA仿真时VGA_HS/VGA_VS为未知X值 线网传递问题排查求助
问题根因
你遇到的VGA_HS、VGA_VS输出为X的核心问题是VGADesign模块内部例化DisplayTimings时复位信号连接错误,导致时序模块没有正常复位工作:
VGADesign的输入复位端口名为btn_rst,但你在内部例化DisplayTimings时,给rst端口连接了不存在的内部信号RSTN// 错误代码 DisplayTimings VGATimings( .Clk_px(clk_25Mhz), .rst(RSTN), // RSTN是Testbench中的信号,VGADesign内部没有定义,处于悬空状态为X .sx(), .sy(), .Hsync(vgaHS), .Vsync(vgaVS), .de() );- 悬空的复位信号会导致
DisplayTimings内部所有寄存器初始状态为未知,输出的同步信号自然也是X值。
修复方法
把VGADesign中DisplayTimings例化的rst端口改成连接模块的输入复位btn_rst即可:
// 修正后的代码 DisplayTimings VGATimings( .Clk_px(clk_25Mhz), .rst(btn_rst), // 改为连接模块输入的复位信号 .sx(), .sy(), .Hsync(vgaHS), .Vsync(vgaVS), .de() );
额外调试建议
- 可先观察Testbench中直接例化的
VGATimings输出的HSync、VSync信号,如果这两个信号输出正常,即可确认问题仅出在VGADesign内部的连接错误 - 仿真时建议延长运行时间,至少跑满一整行的同步周期,方便观察完整的同步信号波形
内容的提问来源于stack exchange,提问作者user10995546
相关产品推荐
相关产品推荐

