Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/jpa/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Verilog 执行中断或已达到中的最大运行时间_Verilog_Edaplayground - Fatal编程技术网

Verilog 执行中断或已达到中的最大运行时间

Verilog 执行中断或已达到中的最大运行时间,verilog,edaplayground,Verilog,Edaplayground,执行中断或达到最大运行时间 以下是我的代码的链接: 我试图在这个设计中交换数字。当然这不是一个问题。代码可能在某个地方有问题 您的始终@(*)块是您的模拟卡在单个时间戳上的主要原因。*表示如果任何RHS变量更改其值,则执行整个块。在这里,变量a_reg和b_reg在单个时隙上连续交换。相反,请使用始终@(posedge clk) 要获得更清晰的概念,请参阅链接。我相信您要做的是交换两个4位数字“a”和“b”。要在verilog中实现这一点,您需要记住,当您使用always@(posedge c

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

以下是我的代码的链接:


我试图在这个设计中交换数字。

当然这不是一个问题。代码可能在某个地方有问题

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


要获得更清晰的概念,请参阅链接。

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

始终@(posedge clk)
开始
a_out=b;
b_out=a;
结束

结果正确运行,无需任何附加寄存器。我已经创建了一个项目的副本,并添加了一些额外的测试向量

看一看。@RajeshReddy如果你把一个答案标记为正确的解决方案,如果它对你有帮助的话,它会有帮助的