b = 1;
#period; // wait for period
//#period
$display("sum=%d, carry=%d", sum, carry);
if (sum != 1 || carry != 0)
$display("test failed for input combination 01");
iverilog + vvp
Вывод:
a=0, b=0
sum=1, carry=0
test failed for input combination 01
** VVP Stop(0) **
** Flushing output streams.
** Current simulation time is 14000 ticks.
WTF?
!== мб
не, тоже самое
а display ничего с операндами не могла сделать?
#period; // wait for period Все же в курсе, что "period" - это "месячные", да? Может все же "timeout"? :D
а я думал, что у меня код раз в месяц глючил.
По теме - я бы обернул сравнения в еще одни скобки. Просто на уровне интуиции. Попробуйте.
а если равнеста в скобки () заключить?
┌─[e-yes @ speedy]─[~/projects/gowin/prj/tb]─[21:16:22] └─[$]› rm tb ; iverilog -o tb half_adder.v tb.v && vvp tb a=1 b=0 sum=1, carry=0 test failed for input combination 01 ┌─[e-yes @ speedy]─[~/projects/gowin/prj/tb]─[21:16:31] └─[$]› cat tb.v | grep failed $display("test failed for input combination 00"); $display("test failed1 for input combination 01"); $display("test failed for input combination 10"); $display("test failed for input combination 11"); $display("test failed for input combination 01"); Лажа или с iverilog или с gtkwave
Обсуждают сегодня