Выполнение прервано или достигнуто максимальное время выполнения в edaplayground

Выполнение прервано или достигло максимального времени выполнения.

Вот ссылка на мой код: http://www.edaplayground.com/x/CX8

Я пытаюсь поменять номера в этом дизайне.

2 ответа

Конечно, это не проблема EDAPlayground. Код может где-то глючить.

Ваш always @(*) Блок - это основная причина, по которой ваш симулятор застревает на одной отметке времени. * обозначает, что если какая-либо переменная RHS изменяет свое значение, то выполняется весь блок. Здесь переменные a_reg и b_reg постоянно меняются местами в одном временном интервале. Вместо этого используйте always @(posedge clk),

Чтобы получить более ясную идею, перейдите по этой ссылке.

Я считаю, что вы пытаетесь поменять местами два 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

Другие вопросы по тегам