Improved sorting
diff --git a/verilog/rtl/user_proj_cells.v b/verilog/rtl/user_proj_cells.v
index 5123056..5a26694 100644
--- a/verilog/rtl/user_proj_cells.v
+++ b/verilog/rtl/user_proj_cells.v
@@ -8,115 +8,214 @@
*/
module AND2X1(
- inout B, // input
inout A, // input
+ inout B, // input
inout Y, // output
+ `ifdef USE_POWER_PINS
inout vdd, // cell power supply
inout gnd // cell ground supply
+ `endif
);
endmodule
module AND2X2(
- inout B, // input
inout A, // input
+ inout B, // input
inout Y, // output
+ `ifdef USE_POWER_PINS
inout vdd, // cell power supply
inout gnd // cell ground supply
+ `endif
);
endmodule
module AOI21X1(
- inout C, // input
- inout B, // input
inout A, // input
+ inout B, // input
+ inout C, // input
inout Y, // output
+ `ifdef USE_POWER_PINS
inout vdd, // cell power supply
inout gnd // cell ground supply
+ `endif
);
endmodule
module AOI22X1(
- inout D, // input
- inout C, // input
- inout B, // input
inout A, // input
+ inout B, // input
+ inout C, // input
+ inout D, // input
inout Y, // output
+ `ifdef USE_POWER_PINS
inout vdd, // cell power supply
inout gnd // cell ground supply
+ `endif
);
endmodule
module BUFX2(
inout A, // input
inout Y, // output
+ `ifdef USE_POWER_PINS
inout vdd, // cell power supply
inout gnd // cell ground supply
-);
-endmodule
-
-module BUFX4(
- inout A, // input
- inout Y, // output
- inout vdd, // cell power supply
- inout gnd // cell ground supply
-);
-endmodule
-
-module CLKBUF1(
- inout A, // input
- inout Y, // output
- inout vdd, // cell power supply
- inout gnd // cell ground supply
+ `endif
);
endmodule
module HAX1(
- inout B, // input
inout A, // input
- inout YS, // output
+ inout B, // input
inout YC, // output
+ inout YS, // output
+ `ifdef USE_POWER_PINS
inout vdd, // cell power supply
inout gnd // cell ground supply
+ `endif
);
endmodule
module INV(
inout A, // input
inout Y, // output
+ `ifdef USE_POWER_PINS
inout vdd, // cell power supply
inout gnd // cell ground supply
+ `endif
);
endmodule
module INVX1(
inout A, // input
inout Y, // output
+ `ifdef USE_POWER_PINS
inout vdd, // cell power supply
inout gnd // cell ground supply
+ `endif
);
endmodule
module INVX2(
inout A, // input
inout Y, // output
+ `ifdef USE_POWER_PINS
inout vdd, // cell power supply
inout gnd // cell ground supply
+ `endif
);
endmodule
module INVX4(
inout A, // input
inout Y, // output
+ `ifdef USE_POWER_PINS
inout vdd, // cell power supply
inout gnd // cell ground supply
+ `endif
);
endmodule
module INVX8(
inout A, // input
inout Y, // output
+ `ifdef USE_POWER_PINS
inout vdd, // cell power supply
inout gnd // cell ground supply
+ `endif
+);
+endmodule
+
+module MUX2X1(
+ inout A, // input
+ inout B, // input
+ inout S, // input
+ inout Y, // output
+ `ifdef USE_POWER_PINS
+ inout vdd, // cell power supply
+ inout gnd // cell ground supply
+ `endif
+);
+endmodule
+
+module NAND2X1(
+ inout A, // input
+ inout B, // input
+ inout Y, // output
+ `ifdef USE_POWER_PINS
+ inout vdd, // cell power supply
+ inout gnd // cell ground supply
+ `endif
+);
+endmodule
+
+module NAND3X1(
+ inout A, // input
+ inout B, // input
+ inout C, // input
+ inout Y, // output
+ `ifdef USE_POWER_PINS
+ inout vdd, // cell power supply
+ inout gnd // cell ground supply
+ `endif
+);
+endmodule
+
+module NOR2X1(
+ inout A, // input
+ inout B, // input
+ inout Y, // output
+ `ifdef USE_POWER_PINS
+ inout vdd, // cell power supply
+ inout gnd // cell ground supply
+ `endif
+);
+endmodule
+
+module OAI21X1(
+ inout A, // input
+ inout B, // input
+ inout C, // input
+ inout Y, // output
+ `ifdef USE_POWER_PINS
+ inout vdd, // cell power supply
+ inout gnd // cell ground supply
+ `endif
+);
+endmodule
+
+module OAI22X1(
+ inout A, // input
+ inout B, // input
+ inout C, // input
+ inout D, // input
+ inout Y, // output
+ `ifdef USE_POWER_PINS
+ inout vdd, // cell power supply
+ inout gnd // cell ground supply
+ `endif
+);
+endmodule
+
+module OR2X1(
+ inout A, // input
+ inout B, // input
+ inout Y, // output
+ `ifdef USE_POWER_PINS
+ inout vdd, // cell power supply
+ inout gnd // cell ground supply
+ `endif
+);
+endmodule
+
+module XNOR2X1(
+ inout A, // input
+ inout B, // input
+ inout Y, // output
+ `ifdef USE_POWER_PINS
+ inout vdd, // cell power supply
+ inout gnd // cell ground supply
+ `endif
);
endmodule
diff --git a/verilog/rtl/user_proj_example.v b/verilog/rtl/user_proj_example.v
index be33070..bb709a0 100644
--- a/verilog/rtl/user_proj_example.v
+++ b/verilog/rtl/user_proj_example.v
@@ -49,8 +49,8 @@
.vdd(vccd1),
.gnd(vssd1),
`endif
- .B(io_in[0]),
- .A(io_in[1]),
+ .A(io_in[0]),
+ .B(io_in[1]),
.Y(io_out[2]),
);
AND2X2 AND2X2(
@@ -58,8 +58,8 @@
.vdd(vccd1),
.gnd(vssd1),
`endif
- .B(io_in[3]),
- .A(io_in[4]),
+ .A(io_in[3]),
+ .B(io_in[4]),
.Y(io_out[5]),
);
AOI21X1 AOI21X1(
@@ -67,9 +67,9 @@
.vdd(vccd1),
.gnd(vssd1),
`endif
- .C(io_in[6]),
+ .A(io_in[6]),
.B(io_in[7]),
- .A(io_in[8]),
+ .C(io_in[8]),
.Y(io_out[9]),
);
AOI22X1 AOI22X1(
@@ -77,10 +77,10 @@
.vdd(vccd1),
.gnd(vssd1),
`endif
- .D(io_in[10]),
- .C(io_in[11]),
- .B(io_in[12]),
- .A(io_in[13]),
+ .A(io_in[10]),
+ .B(io_in[11]),
+ .C(io_in[12]),
+ .D(io_in[13]),
.Y(io_out[14]),
);
BUFX2 BUFX2(
@@ -91,41 +91,41 @@
.A(io_in[15]),
.Y(io_out[16]),
);
-BUFX4 BUFX4(
- `ifdef USE_POWER_PINS
- .vdd(vccd1),
- .gnd(vssd1),
- `endif
- .A(io_in[17]),
- .Y(io_out[18]),
-);
-CLKBUF1 CLKBUF1(
- `ifdef USE_POWER_PINS
- .vdd(vccd1),
- .gnd(vssd1),
- `endif
- .A(io_in[19]),
- .Y(io_out[20]),
-);
HAX1 HAX1(
`ifdef USE_POWER_PINS
.vdd(vccd1),
.gnd(vssd1),
`endif
- .B(io_in[21]),
- .A(io_in[22]),
- .YS(io_out[23]),
- .YC(io_out[24]),
+ .A(io_in[17]),
+ .B(io_in[18]),
+ .YC(io_out[19]),
+ .YS(io_out[20]),
);
INV INV(
`ifdef USE_POWER_PINS
.vdd(vccd1),
.gnd(vssd1),
`endif
+ .A(io_in[21]),
+ .Y(io_out[22]),
+);
+INVX1 INVX1(
+ `ifdef USE_POWER_PINS
+ .vdd(vccd1),
+ .gnd(vssd1),
+ `endif
+ .A(io_in[23]),
+ .Y(io_out[24]),
+);
+INVX2 INVX2(
+ `ifdef USE_POWER_PINS
+ .vdd(vccd1),
+ .gnd(vssd1),
+ `endif
.A(io_in[25]),
.Y(io_out[26]),
);
-INVX1 INVX1(
+INVX4 INVX4(
`ifdef USE_POWER_PINS
.vdd(vccd1),
.gnd(vssd1),
@@ -133,7 +133,7 @@
.A(io_in[27]),
.Y(io_out[28]),
);
-INVX2 INVX2(
+INVX8 INVX8(
`ifdef USE_POWER_PINS
.vdd(vccd1),
.gnd(vssd1),
@@ -141,21 +141,82 @@
.A(io_in[29]),
.Y(io_out[30]),
);
-INVX4 INVX4(
+MUX2X1 MUX2X1(
`ifdef USE_POWER_PINS
.vdd(vccd1),
.gnd(vssd1),
`endif
.A(io_in[31]),
- .Y(io_out[32]),
+ .B(io_in[32]),
+ .S(io_in[33]),
+ .Y(io_out[34]),
);
-INVX8 INVX8(
+NAND2X1 NAND2X1(
`ifdef USE_POWER_PINS
.vdd(vccd1),
.gnd(vssd1),
`endif
- .A(io_in[33]),
- .Y(io_out[34]),
+ .A(io_in[35]),
+ .B(io_in[36]),
+ .Y(io_out[37]),
+);
+NAND3X1 NAND3X1(
+ `ifdef USE_POWER_PINS
+ .vdd(vccd1),
+ .gnd(vssd1),
+ `endif
+ .A(la_data_in[0]),
+ .B(la_data_in[1]),
+ .C(la_data_in[2]),
+ .Y(la_data_out[3]),
+);
+NOR2X1 NOR2X1(
+ `ifdef USE_POWER_PINS
+ .vdd(vccd1),
+ .gnd(vssd1),
+ `endif
+ .A(la_data_in[4]),
+ .B(la_data_in[5]),
+ .Y(la_data_out[6]),
+);
+OAI21X1 OAI21X1(
+ `ifdef USE_POWER_PINS
+ .vdd(vccd1),
+ .gnd(vssd1),
+ `endif
+ .A(la_data_in[7]),
+ .B(la_data_in[8]),
+ .C(la_data_in[9]),
+ .Y(la_data_out[10]),
+);
+OAI22X1 OAI22X1(
+ `ifdef USE_POWER_PINS
+ .vdd(vccd1),
+ .gnd(vssd1),
+ `endif
+ .A(la_data_in[11]),
+ .B(la_data_in[12]),
+ .C(la_data_in[13]),
+ .D(la_data_in[14]),
+ .Y(la_data_out[15]),
+);
+OR2X1 OR2X1(
+ `ifdef USE_POWER_PINS
+ .vdd(vccd1),
+ .gnd(vssd1),
+ `endif
+ .A(la_data_in[16]),
+ .B(la_data_in[17]),
+ .Y(la_data_out[18]),
+);
+XNOR2X1 XNOR2X1(
+ `ifdef USE_POWER_PINS
+ .vdd(vccd1),
+ .gnd(vssd1),
+ `endif
+ .A(la_data_in[19]),
+ .B(la_data_in[20]),
+ .Y(la_data_out[21]),
);
assign io_oeb[0] = 1'b1;
assign io_oeb[1] = 1'b1;
@@ -175,12 +236,12 @@
assign io_oeb[15] = 1'b1;
assign io_oeb[16] = 1'b0;
assign io_oeb[17] = 1'b1;
-assign io_oeb[18] = 1'b0;
-assign io_oeb[19] = 1'b1;
+assign io_oeb[18] = 1'b1;
+assign io_oeb[19] = 1'b0;
assign io_oeb[20] = 1'b0;
assign io_oeb[21] = 1'b1;
-assign io_oeb[22] = 1'b1;
-assign io_oeb[23] = 1'b0;
+assign io_oeb[22] = 1'b0;
+assign io_oeb[23] = 1'b1;
assign io_oeb[24] = 1'b0;
assign io_oeb[25] = 1'b1;
assign io_oeb[26] = 1'b0;
@@ -189,7 +250,10 @@
assign io_oeb[29] = 1'b1;
assign io_oeb[30] = 1'b0;
assign io_oeb[31] = 1'b1;
-assign io_oeb[32] = 1'b0;
+assign io_oeb[32] = 1'b1;
assign io_oeb[33] = 1'b1;
assign io_oeb[34] = 1'b0;
+assign io_oeb[35] = 1'b1;
+assign io_oeb[36] = 1'b1;
+assign io_oeb[37] = 1'b0;
endmodule