Improved realmath test bench
authorClifford Wolf <clifford@clifford.at>
Sun, 15 Jun 2014 06:48:41 +0000 (08:48 +0200)
committerClifford Wolf <clifford@clifford.at>
Sun, 15 Jun 2014 06:48:41 +0000 (08:48 +0200)
tests/realmath/generate.py
tests/realmath/run-test.sh

index af7648b8796c63cf665b1bccde2c959efd1d5ece..58cedf028a1f4204f6dc80ab52eaee53a9b380fe 100644 (file)
@@ -62,11 +62,19 @@ for idx in range(100):
         print('task compare_ref_syn;')
         print('  input [7:0] i;')
         print('  input [63:0] r, s;')
+        print('  reg [64*8-1:0] buffer;')
+        print('  integer j;')
         print('  begin')
-        print('    if (-3 < $signed(r-s) && $signed(r-s) < +3)')
-        print('      $display("%d: %b %b", i, r, s);')
-        print('    else')
-        print('      $display("%d: %b %b %s", i, r, s, r !== s ? "TRIG" : "");')
+        print('    if (-1 <= $signed(r-s) && $signed(r-s) <= +1) begin')
+        print('      // $display("%d: %b %b", i, r, s);')
+        print('    end else if (r === s) begin ')
+        print('      // $display("%d: %b %b", i, r, s);')
+        print('    end else begin ')
+        print('      for (j = 0; j < 64; j = j+1)')
+        print('        buffer[j*8 +: 8] = r[j] !== s[j] ? "^" : " ";')
+        print('      $display("\\n%3d: %b %b", i, r, s);')
+        print('      $display("     %s %s", buffer, buffer);')
+        print('    end')
         print('  end')
         print('endtask')
         print('initial begin #1;')
index 9568cdd6aa4854449890b0e3298ee371e87266b1..48e87417c3aca2c4283334f6423eb06a47e2b7d8 100755 (executable)
@@ -13,7 +13,7 @@ for ((i = 0; i < 100; i++)); do
        idx=$( printf "%05d" $i )
        ../../../yosys -q uut_${idx}.ys
        iverilog -o uut_${idx}_tb uut_${idx}_tb.v uut_${idx}.v uut_${idx}_syn.v
-       ./uut_${idx}_tb > uut_${idx}.log
+       ./uut_${idx}_tb
 done
 echo