summaryrefslogtreecommitdiff
path: root/tests/xsthammer/xl_cells.v
diff options
context:
space:
mode:
Diffstat (limited to 'tests/xsthammer/xl_cells.v')
-rw-r--r--tests/xsthammer/xl_cells.v69
1 files changed, 69 insertions, 0 deletions
diff --git a/tests/xsthammer/xl_cells.v b/tests/xsthammer/xl_cells.v
new file mode 100644
index 00000000..6a3fa799
--- /dev/null
+++ b/tests/xsthammer/xl_cells.v
@@ -0,0 +1,69 @@
+
+module GND(G);
+output G = 0;
+endmodule
+
+module INV(O, I);
+input I;
+output O = !I;
+endmodule
+
+module LUT2(O, I0, I1);
+parameter INIT = 0;
+input I0, I1;
+wire [3:0] lutdata = INIT;
+wire [1:0] idx = { I1, I0 };
+output O = lutdata[idx];
+endmodule
+
+module LUT3(O, I0, I1, I2);
+parameter INIT = 0;
+input I0, I1, I2;
+wire [7:0] lutdata = INIT;
+wire [2:0] idx = { I2, I1, I0 };
+output O = lutdata[idx];
+endmodule
+
+module LUT4(O, I0, I1, I2, I3);
+parameter INIT = 0;
+input I0, I1, I2, I3;
+wire [15:0] lutdata = INIT;
+wire [3:0] idx = { I3, I2, I1, I0 };
+output O = lutdata[idx];
+endmodule
+
+module LUT5(O, I0, I1, I2, I3, I4);
+parameter INIT = 0;
+input I0, I1, I2, I3, I4;
+wire [31:0] lutdata = INIT;
+wire [4:0] idx = { I4, I3, I2, I1, I0 };
+output O = lutdata[idx];
+endmodule
+
+module LUT6(O, I0, I1, I2, I3, I4, I5);
+parameter INIT = 0;
+input I0, I1, I2, I3, I4, I5;
+wire [63:0] lutdata = INIT;
+wire [5:0] idx = { I5, I4, I3, I2, I1, I0 };
+output O = lutdata[idx];
+endmodule
+
+module MUXCY(O, CI, DI, S);
+input CI, DI, S;
+output O = S ? CI : DI;
+endmodule
+
+module MUXF7(O, I0, I1, S);
+input I0, I1, S;
+output O = S ? I1 : I0;
+endmodule
+
+module VCC(P);
+output P = 1;
+endmodule
+
+module XORCY(O, CI, LI);
+input CI, LI;
+output O = CI ^ LI;
+endmodule
+