Add tests for cmp2lut on LUT6
authorEddie Hung <eddie@fpgeh.com>
Tue, 16 Jul 2019 19:11:59 +0000 (12:11 -0700)
committerEddie Hung <eddie@fpgeh.com>
Tue, 16 Jul 2019 19:11:59 +0000 (12:11 -0700)
tests/lut/map_cmp.v
tests/lut/run-test.sh

index 5e413f894bd4ce9f03bdc000d2c09ba4ad756b55..0014eb9acc1dc15559888a1c9b6b5262d9e4af3d 100644 (file)
@@ -1,29 +1,30 @@
 module top(...);
-       input [3:0] a;
+       parameter LUT_WIDTH = 4; // Multiples of 2 only
+       input [LUT_WIDTH-1:0] a;
 
-       output o1_1 = 4'b1010 <= a;
-       output o1_2 = 4'b1010 <  a;
-       output o1_3 = 4'b1010 >= a;
-       output o1_4 = 4'b1010 >  a;
-       output o1_5 = 4'b1010 == a;
-       output o1_6 = 4'b1010 != a;
+       output o1_1 = {(LUT_WIDTH/2){2'b10}} <= a;
+       output o1_2 = {(LUT_WIDTH/2){2'b10}} <  a;
+       output o1_3 = {(LUT_WIDTH/2){2'b10}} >= a;
+       output o1_4 = {(LUT_WIDTH/2){2'b10}} >  a;
+       output o1_5 = {(LUT_WIDTH/2){2'b10}} == a;
+       output o1_6 = {(LUT_WIDTH/2){2'b10}} != a;
 
-       output o2_1 = a <= 4'b1010;
-       output o2_2 = a <  4'b1010;
-       output o2_3 = a >= 4'b1010;
-       output o2_4 = a >  4'b1010;
-       output o2_5 = a == 4'b1010;
-       output o2_6 = a != 4'b1010;
+       output o2_1 = a <= {(LUT_WIDTH/2){2'b10}};
+       output o2_2 = a <  {(LUT_WIDTH/2){2'b10}};
+       output o2_3 = a >= {(LUT_WIDTH/2){2'b10}};
+       output o2_4 = a >  {(LUT_WIDTH/2){2'b10}};
+       output o2_5 = a == {(LUT_WIDTH/2){2'b10}};
+       output o2_6 = a != {(LUT_WIDTH/2){2'b10}};
 
-       output o3_1 = 4'sb0101 <= $signed(a);
-       output o3_2 = 4'sb0101 <  $signed(a);
-       output o3_3 = 4'sb0101 >= $signed(a);
-       output o3_4 = 4'sb0101 >  $signed(a);
-       output o3_5 = 4'sb0101 == $signed(a);
-       output o3_6 = 4'sb0101 != $signed(a);
+       output o3_1 = {(LUT_WIDTH/2){2'sb01}} <= $signed(a);
+       output o3_2 = {(LUT_WIDTH/2){2'sb01}} <  $signed(a);
+       output o3_3 = {(LUT_WIDTH/2){2'sb01}} >= $signed(a);
+       output o3_4 = {(LUT_WIDTH/2){2'sb01}} >  $signed(a);
+       output o3_5 = {(LUT_WIDTH/2){2'sb01}} == $signed(a);
+       output o3_6 = {(LUT_WIDTH/2){2'sb01}} != $signed(a);
 
-       output o4_1 = $signed(a) <= 4'sb0000;
-       output o4_2 = $signed(a) <  4'sb0000;
-       output o4_3 = $signed(a) >= 4'sb0000;
-       output o4_4 = $signed(a) >  4'sb0000;
+       output o4_1 = $signed(a) <= {LUT_WIDTH{1'sb0}};
+       output o4_2 = $signed(a) <  {LUT_WIDTH{1'sb0}};
+       output o4_3 = $signed(a) >= {LUT_WIDTH{1'sb0}};
+       output o4_4 = $signed(a) >  {LUT_WIDTH{1'sb0}};
 endmodule
index 207417fa614ca50bef0ac673fdafffeacf99d846..f8964f146e56f409b85926806fedd729dbc4caa0 100755 (executable)
@@ -4,3 +4,8 @@ for x in *.v; do
   echo "Running $x.."
   ../../yosys -q -s check_map.ys -l ${x%.v}.log $x
 done
+
+for x in map_cmp.v; do
+  echo "Running $x.."
+  ../../yosys -q -s check_map_lut6.ys -l ${x%.v}_lut6.log $x
+done