88 lines
1.4 KiB
Verilog
88 lines
1.4 KiB
Verilog
(* techmap_celltype = "$_NOT_" *)
|
|
module _90_lut_not (A, Y);
|
|
input A;
|
|
output Y;
|
|
|
|
wire [`LUT_WIDTH-1:0] AA;
|
|
assign AA = {A};
|
|
|
|
\$lut #(
|
|
.WIDTH(`LUT_WIDTH),
|
|
.LUT(4'b01)
|
|
) lut (
|
|
.A(AA),
|
|
.Y(Y)
|
|
);
|
|
endmodule
|
|
|
|
(* techmap_celltype = "$_OR_" *)
|
|
module _90_lut_or (A, B, Y);
|
|
input A, B;
|
|
output Y;
|
|
|
|
wire [`LUT_WIDTH-1:0] AA;
|
|
assign AA = {B, A};
|
|
|
|
\$lut #(
|
|
.WIDTH(`LUT_WIDTH),
|
|
.LUT(4'b1110)
|
|
) lut (
|
|
.A(AA),
|
|
.Y(Y)
|
|
);
|
|
endmodule
|
|
|
|
(* techmap_celltype = "$_AND_" *)
|
|
module _90_lut_and (A, B, Y);
|
|
input A, B;
|
|
output Y;
|
|
|
|
wire [`LUT_WIDTH-1:0] AA;
|
|
assign AA = {B, A};
|
|
|
|
\$lut #(
|
|
.WIDTH(`LUT_WIDTH),
|
|
.LUT(4'b1000)
|
|
) lut (
|
|
.A(AA),
|
|
.Y(Y)
|
|
);
|
|
endmodule
|
|
|
|
(* techmap_celltype = "$_XOR_" *)
|
|
module _90_lut_xor (A, B, Y);
|
|
input A, B;
|
|
output Y;
|
|
|
|
wire [`LUT_WIDTH-1:0] AA;
|
|
assign AA = {B, A};
|
|
|
|
\$lut #(
|
|
.WIDTH(`LUT_WIDTH),
|
|
.LUT(4'b0110)
|
|
) lut (
|
|
.A(AA),
|
|
.Y(Y)
|
|
);
|
|
endmodule
|
|
|
|
(* techmap_celltype = "$_MUX_" *)
|
|
module _90_lut_mux (A, B, S, Y);
|
|
input A, B, S;
|
|
output Y;
|
|
|
|
wire [`LUT_WIDTH-1:0] AA;
|
|
assign AA = {S, B, A};
|
|
|
|
\$lut #(
|
|
.WIDTH(`LUT_WIDTH),
|
|
// A 1010 1010
|
|
// B 1100 1100
|
|
// S 1111 0000
|
|
.LUT(8'b_1100_1010)
|
|
) lut (
|
|
.A(AA),
|
|
.Y(Y)
|
|
);
|
|
endmodule
|