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

时间:2015-10-17 22:51:47

标签: verilog edaplayground

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

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

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

2 个答案:

答案 0 :(得分:1)

当然这不是EDAPlayground的问题。代码可能在某处出错。

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

要获得更清晰的信息,请参阅this链接。

答案 1 :(得分:1)

我相信你要做的是交换两个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