【问题标题】:Execution interrupted or reached maximum run time in edaplayground在 edaplayground 中执行中断或达到最大运行时间
【发布时间】:2020-03-06 06:13:01
【问题描述】:

执行中断或达到最大运行时间。

这是我的代码的链接: http://www.edaplayground.com/x/CX8

我正在尝试在此设计中交换数字。

【问题讨论】:

标签: verilog edaplayground


【解决方案1】:

当然这不是 EDAPlayground 的问题。代码可能有问题。

您的always @(*) 块是您的模拟卡在单个时间戳的主要原因。 * 表示如果 any RHS 变量更改了它的值,则执行整个块。在这里,变量 a_reg 和 b_reg 在单个时隙上连续交换。相反,请使用always @(posedge clk)

要获得更清晰的想法,请参阅this 链接。

【讨论】:

    【解决方案2】:

    我相信您正在尝试做的是交换两个 4 位数字“a”和“b”。要在 Verilog 中执行此操作,您需要记住,当您使用 always @(posedge clk) 构造时,您实际上是将 RHS 上网络的旧值分配给 LHS 上的寄存器。 因此

    always @(posedge clk) begin a_out = b; b_out = a; end 导致正确的操作,而不需要任何额外的寄存器。我创建了您的 edaplayground 项目的副本,并添加了一些额外的测试向量。 http://www.edaplayground.com/x/8hk

    【讨论】:

    • @RajeshReddy 如果您将答案标记为正确的解决方案,如果它对您有所帮助,将会有所帮助
    猜你喜欢
    • 2021-12-16
    • 1970-01-01
    • 1970-01-01
    • 2022-01-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-08-17
    相关资源
    最近更新 更多