mirror of https://github.com/YosysHQ/yosys.git
Test muxes synth one by one
This commit is contained in:
parent
d6ef9b1a6b
commit
3c40c81030
|
@ -64,37 +64,3 @@ assign Y = D[S];
|
||||||
|
|
||||||
endmodule
|
endmodule
|
||||||
|
|
||||||
|
|
||||||
module top (
|
|
||||||
input [3:0] S,
|
|
||||||
input [15:0] D,
|
|
||||||
output M2,M4,M8,M16
|
|
||||||
);
|
|
||||||
|
|
||||||
mux2 u_mux2 (
|
|
||||||
.S (S[0]),
|
|
||||||
.A (D[0]),
|
|
||||||
.B (D[1]),
|
|
||||||
.Y (M2)
|
|
||||||
);
|
|
||||||
|
|
||||||
|
|
||||||
mux4 u_mux4 (
|
|
||||||
.S (S[1:0]),
|
|
||||||
.D (D[3:0]),
|
|
||||||
.Y (M4)
|
|
||||||
);
|
|
||||||
|
|
||||||
mux8 u_mux8 (
|
|
||||||
.S (S[2:0]),
|
|
||||||
.D (D[7:0]),
|
|
||||||
.Y (M8)
|
|
||||||
);
|
|
||||||
|
|
||||||
mux16 u_mux16 (
|
|
||||||
.S (S[3:0]),
|
|
||||||
.D (D[15:0]),
|
|
||||||
.Y (M16)
|
|
||||||
);
|
|
||||||
|
|
||||||
endmodule
|
|
||||||
|
|
|
@ -1,11 +1,46 @@
|
||||||
read_verilog mux.v
|
read_verilog mux.v
|
||||||
|
design -save read
|
||||||
|
|
||||||
proc
|
proc
|
||||||
flatten
|
hierarchy -top mux2
|
||||||
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 top # Constrain all select calls below inside the top module
|
cd mux2 # Constrain all select calls below inside the top module
|
||||||
select -assert-count 32 t:LUT4
|
select -assert-count 1 t:LUT4
|
||||||
select -assert-count 8 t:L6MUX21
|
select -assert-none t:LUT4 %% t:* %D
|
||||||
select -assert-count 14 t:PFUMX
|
|
||||||
|
design -load read
|
||||||
|
proc
|
||||||
|
hierarchy -top mux4
|
||||||
|
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)
|
||||||
|
cd mux4 # Constrain all select calls below inside the top module
|
||||||
|
select -assert-count 1 t:L6MUX21
|
||||||
|
select -assert-count 4 t:LUT4
|
||||||
|
select -assert-count 2 t:PFUMX
|
||||||
|
|
||||||
|
select -assert-none t:LUT4 t:L6MUX21 t:PFUMX %% t:* %D
|
||||||
|
|
||||||
|
design -load read
|
||||||
|
proc
|
||||||
|
hierarchy -top mux8
|
||||||
|
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)
|
||||||
|
cd mux8 # Constrain all select calls below inside the top module
|
||||||
|
select -assert-count 1 t:L6MUX21
|
||||||
|
select -assert-count 7 t:LUT4
|
||||||
|
select -assert-count 2 t:PFUMX
|
||||||
|
|
||||||
|
select -assert-none t:LUT4 t:L6MUX21 t:PFUMX %% t:* %D
|
||||||
|
|
||||||
|
design -load read
|
||||||
|
proc
|
||||||
|
hierarchy -top mux16
|
||||||
|
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)
|
||||||
|
cd mux16 # Constrain all select calls below inside the top module
|
||||||
|
select -assert-count 8 t:L6MUX21
|
||||||
|
select -assert-count 26 t:LUT4
|
||||||
|
select -assert-count 12 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…
Reference in New Issue