mirror of
https://github.com/YosysHQ/yosys
synced 2025-06-09 15:43:25 +00:00
Merge pull request #1600 from YosysHQ/eddie/cleanup_ecp5
Nitpick cleanup for ecp5
This commit is contained in:
commit
ce6e4f6341
3 changed files with 6 additions and 14 deletions
|
@ -1,5 +1,6 @@
|
||||||
// ---------------------------------------
|
// ---------------------------------------
|
||||||
|
|
||||||
|
(* lib_whitebox *)
|
||||||
module LUT4(input A, B, C, D, output Z);
|
module LUT4(input A, B, C, D, output Z);
|
||||||
parameter [15:0] INIT = 16'h0000;
|
parameter [15:0] INIT = 16'h0000;
|
||||||
wire [7:0] s3 = D ? INIT[15:8] : INIT[7:0];
|
wire [7:0] s3 = D ? INIT[15:8] : INIT[7:0];
|
||||||
|
@ -31,13 +32,8 @@ module CCU2C(
|
||||||
|
|
||||||
// First half
|
// First half
|
||||||
wire LUT4_0, LUT2_0;
|
wire LUT4_0, LUT2_0;
|
||||||
`ifdef _ABC
|
|
||||||
assign LUT4_0 = INIT0[{D0, C0, B0, A0}];
|
|
||||||
assign LUT2_0 = INIT0[{2'b00, B0, A0}];
|
|
||||||
`else
|
|
||||||
LUT4 #(.INIT(INIT0)) lut4_0(.A(A0), .B(B0), .C(C0), .D(D0), .Z(LUT4_0));
|
LUT4 #(.INIT(INIT0)) lut4_0(.A(A0), .B(B0), .C(C0), .D(D0), .Z(LUT4_0));
|
||||||
LUT2 #(.INIT(INIT0[3:0])) lut2_0(.A(A0), .B(B0), .Z(LUT2_0));
|
LUT2 #(.INIT(INIT0[3:0])) lut2_0(.A(A0), .B(B0), .Z(LUT2_0));
|
||||||
`endif
|
|
||||||
wire gated_cin_0 = (INJECT1_0 == "YES") ? 1'b0 : CIN;
|
wire gated_cin_0 = (INJECT1_0 == "YES") ? 1'b0 : CIN;
|
||||||
assign S0 = LUT4_0 ^ gated_cin_0;
|
assign S0 = LUT4_0 ^ gated_cin_0;
|
||||||
|
|
||||||
|
@ -46,13 +42,8 @@ module CCU2C(
|
||||||
|
|
||||||
// Second half
|
// Second half
|
||||||
wire LUT4_1, LUT2_1;
|
wire LUT4_1, LUT2_1;
|
||||||
`ifdef _ABC
|
|
||||||
assign LUT4_1 = INIT1[{D1, C1, B1, A1}];
|
|
||||||
assign LUT2_1 = INIT1[{2'b00, B1, A1}];
|
|
||||||
`else
|
|
||||||
LUT4 #(.INIT(INIT1)) lut4_1(.A(A1), .B(B1), .C(C1), .D(D1), .Z(LUT4_1));
|
LUT4 #(.INIT(INIT1)) lut4_1(.A(A1), .B(B1), .C(C1), .D(D1), .Z(LUT4_1));
|
||||||
LUT2 #(.INIT(INIT1[3:0])) lut2_1(.A(A1), .B(B1), .Z(LUT2_1));
|
LUT2 #(.INIT(INIT1[3:0])) lut2_1(.A(A1), .B(B1), .Z(LUT2_1));
|
||||||
`endif
|
|
||||||
wire gated_cin_1 = (INJECT1_1 == "YES") ? 1'b0 : cout_0;
|
wire gated_cin_1 = (INJECT1_1 == "YES") ? 1'b0 : cout_0;
|
||||||
assign S1 = LUT4_1 ^ gated_cin_1;
|
assign S1 = LUT4_1 ^ gated_cin_1;
|
||||||
|
|
||||||
|
@ -209,6 +200,7 @@ endmodule
|
||||||
|
|
||||||
// ---------------------------------------
|
// ---------------------------------------
|
||||||
|
|
||||||
|
(* lib_whitebox *)
|
||||||
module LUT2(input A, B, output Z);
|
module LUT2(input A, B, output Z);
|
||||||
parameter [3:0] INIT = 4'h0;
|
parameter [3:0] INIT = 4'h0;
|
||||||
wire [1:0] s1 = B ? INIT[ 3:2] : INIT[1:0];
|
wire [1:0] s1 = B ? INIT[ 3:2] : INIT[1:0];
|
||||||
|
|
|
@ -230,7 +230,7 @@ struct SynthEcp5Pass : public ScriptPass
|
||||||
{
|
{
|
||||||
if (check_label("begin"))
|
if (check_label("begin"))
|
||||||
{
|
{
|
||||||
run("read_verilog -D_ABC -lib +/ecp5/cells_sim.v +/ecp5/cells_bb.v");
|
run("read_verilog -lib +/ecp5/cells_sim.v +/ecp5/cells_bb.v");
|
||||||
run(stringf("hierarchy -check %s", help_mode ? "-top <top>" : top_opt.c_str()));
|
run(stringf("hierarchy -check %s", help_mode ? "-top <top>" : top_opt.c_str()));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -39,8 +39,8 @@ proc
|
||||||
equiv_opt -assert -map +/ecp5/cells_sim.v synth_ecp5 # equivalency check
|
equiv_opt -assert -map +/ecp5/cells_sim.v synth_ecp5 # equivalency check
|
||||||
design -load postopt # load the post-opt design (otherwise equiv_opt loads the pre-opt design)
|
design -load postopt # load the post-opt design (otherwise equiv_opt loads the pre-opt design)
|
||||||
cd mux16 # Constrain all select calls below inside the top module
|
cd mux16 # Constrain all select calls below inside the top module
|
||||||
select -assert-count 8 t:L6MUX21
|
select -assert-count 12 t:L6MUX21
|
||||||
select -assert-count 26 t:LUT4
|
select -assert-count 34 t:LUT4
|
||||||
select -assert-count 12 t:PFUMX
|
select -assert-count 17 t:PFUMX
|
||||||
|
|
||||||
select -assert-none t:LUT4 t:L6MUX21 t:PFUMX %% t:* %D
|
select -assert-none t:LUT4 t:L6MUX21 t:PFUMX %% t:* %D
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue