Vivado波形显示异常求助:输入信号为Z态、输出为X态
Vivado仿真输入Z态、输出X态的问题解决
你的仿真中输入信号a、b呈Z态,输出w、x、y、z呈X态,核心原因是被测模块DCP_21的输入端口未被有效驱动,大概率是仿真时未将测试台DCP_2_tb设为顶层模块,导致测试台的激励信号完全没起作用。
1. 修正仿真顶层设置
- 打开Vivado的Simulation界面,在
Sources窗口的Simulation标签下,右键点击DCP_2_tb,选择Set as Top。 - 重新运行行为仿真(Run Simulation -> Run Behavioral Simulation),测试台的激励信号会正常驱动被测模块的输入端口。
2. 优化测试台代码(可选)
原测试台的多个initial块可以合并,让逻辑更清晰,避免不必要的执行顺序歧义:
module DCP_2_tb; reg A; reg B; wire W; wire X; wire Y; wire Z; DCP_21 inst0( .a(A), .b(B), .w(W), .x(X), .y(Y), .z(Z) ); initial begin // 初始化激励信号 A = 0; B = 0; // 200ns后结束仿真 #200 $finish; end // 生成翻转激励 always #50 B = ~B; always #100 A = ~A; endmodule
3. 验证结果
重新仿真后,你会看到:
- 输入
A、B按设定周期翻转(A每100ns翻转一次,B每50ns翻转一次) - 输出
W、X、Y、Z会根据DCP_21的逻辑正确变化,不再是X态
内容的提问来源于stack exchange,提问作者Anushka Nair
相关产品推荐
相关产品推荐

