Vivado仿真卡在executing analysis and compilation step阶段

在使用Vivado进行仿真时遇到执行分析和编译步骤卡死的问题,表现为仿真启动后无法继续。解决方案包括重置设置、清理工作空间等。通过点击设置中的'Restore'按钮,关闭并重新打开工程可以解决此问题,实现正常仿真流程,如图所示。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

目录

一、问题描述

二、问题现象

三、解决办法

1. 解决办法一(临时解决)

2.解决方法二(终极解决)

3.解决方法三(终极解决)

四、正常仿真


一、问题描述

用Vivado进行仿真时,卡在executing analysis and compilation step阶段,无法继续进行仿真。

二、问题现象

1,vivado正常仿真后,重启仿真(relaunch_sim )。如下图,vivado卡在launching simulation steps阶段,无法继续进行仿真。

2.关闭vivado仿真,重新仿真(launch_simulation )。vivado卡在executing analysis and compilation step阶段,无法继续进行仿真。

三、解决办法

1. 解决办法一(临时解决)

2.解决方法二(终极解决)

3.解决方法三(终极解决)

重置设置,如下框中,点击“Restore”按钮,然后关闭Vivado,重新打开工程进行仿真即可。

四、正常仿真

正确现象如下图:

### Vivado硬件仿真没有输入的解决方案 在Vivado中进行硬件仿真时,如果发现仿真波形没有任何输入信号变化或者始终处于未知状态(`X`),可能是由于以下几个原因引起的: #### 1. **测试平台未正确配置** 如果测试平台(Testbench)未能正确驱动待测模块(DUT, Design Under Test)的输入端口,则可能导致仿真无任何有效输入。需要确保测试平台中的激励源能够正确初始化并动态改变输入值。 - 测试平台应包含初始块以设置默认值,并通过事件触发更新这些值。 ```verilog initial begin reset = 1; // 初始化复位信号 clk = 0; // 初始化时钟信号 #10 reset = 0; // 经过一定延迟释放复位 forever #5 clk = ~clk; // 创建周期为10ns的时钟信号 end always @(posedge clk) begin input_signal <= $random % 2; // 随机生成输入数据 end ``` 上述代码片段展示了如何利用Verilog中的 `initial` 和 `always` 块来创建基本的时序逻辑以及随机化输入[^1]。 #### 2. **信号竞争或冲突** 当多个驱动器试图控制同一个信号时,可能会导致该信号进入不确定状态 (`X`)。这通常发生在使用双向总线 (bidirectional buses) 或者三态门的情况下。可以通过检查网表文件 (.ngc/.edif),确认是否有多个源头尝试修改同一根导线的状态。 对于涉及 `inout` 类型端口的情况,需特别注意其方向切换机制是否合理实施。例如,在实现 I²C 协议时,某些版本的 Vivado 可能存在难以综合此类结构的问题[^3]。此时建议改用单向替代方案或将相关部分移至顶层外部处理。 #### 3. **编译分析阶段停滞** 若项目构建过程中长期停留在 “Executing analysis and compilation step”,则可能影响最终生成的结果质量,间接造成后续仿真的异常表现。针对这一现象已有具体应对措施描述可参见特定论坛讨论帖[^2]。 推荐按照官方文档指示重新整理工程目录结构、清理临时产物后再试运行一次全流程操作。 --- ### 总结注意事项 综上所述,要解决Vivado硬件仿真缺乏实际输入的现象可以从完善testbench脚本入手,同时排查是否存在多路竞相争夺资源的情形;另外也要留意整个EDA工具链执行效率方面潜在隐患的影响因素。 ```python def check_vivado_simulation(): """ A function to simulate checking the status of a Vivado simulation. This is purely illustrative and does not perform any real checks. """ print("Checking test bench configuration...") print("Inspecting signal conflicts within design hierarchy...") print("Monitoring build process progress during synthesis phase...") check_vivado_simulation() ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

wangfei960

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值