mirror of
				https://github.com/YosysHQ/yosys
				synced 2025-11-04 05:19:11 +00:00 
			
		
		
		
	ecp5: synth_ecp5 to no longer need +/ecp5/abc9_{,un}map.v
This commit is contained in:
		
							parent
							
								
									39759d5f0e
								
							
						
					
					
						commit
						fdc340db8e
					
				
					 4 changed files with 3 additions and 43 deletions
				
			
		| 
						 | 
					@ -23,9 +23,6 @@ $(eval $(call add_share_file,share/ecp5,techlibs/ecp5/brams.txt))
 | 
				
			||||||
$(eval $(call add_share_file,share/ecp5,techlibs/ecp5/arith_map.v))
 | 
					$(eval $(call add_share_file,share/ecp5,techlibs/ecp5/arith_map.v))
 | 
				
			||||||
$(eval $(call add_share_file,share/ecp5,techlibs/ecp5/latches_map.v))
 | 
					$(eval $(call add_share_file,share/ecp5,techlibs/ecp5/latches_map.v))
 | 
				
			||||||
$(eval $(call add_share_file,share/ecp5,techlibs/ecp5/dsp_map.v))
 | 
					$(eval $(call add_share_file,share/ecp5,techlibs/ecp5/dsp_map.v))
 | 
				
			||||||
 | 
					 | 
				
			||||||
$(eval $(call add_share_file,share/ecp5,techlibs/ecp5/abc9_map.v))
 | 
					 | 
				
			||||||
$(eval $(call add_share_file,share/ecp5,techlibs/ecp5/abc9_unmap.v))
 | 
					 | 
				
			||||||
$(eval $(call add_share_file,share/ecp5,techlibs/ecp5/abc9_model.v))
 | 
					$(eval $(call add_share_file,share/ecp5,techlibs/ecp5/abc9_model.v))
 | 
				
			||||||
 | 
					
 | 
				
			||||||
EXTRA_OBJS += techlibs/ecp5/brams_init.mk techlibs/ecp5/brams_connect.mk
 | 
					EXTRA_OBJS += techlibs/ecp5/brams_init.mk techlibs/ecp5/brams_connect.mk
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -1,27 +0,0 @@
 | 
				
			||||||
// ---------------------------------------
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
// Attach a (combinatorial) black-box onto the output
 | 
					 | 
				
			||||||
//   of this LUTRAM primitive to capture its
 | 
					 | 
				
			||||||
//   asynchronous read behaviour
 | 
					 | 
				
			||||||
module TRELLIS_DPR16X4 (
 | 
					 | 
				
			||||||
	(* techmap_autopurge *) input  [3:0] DI,
 | 
					 | 
				
			||||||
	(* techmap_autopurge *) input  [3:0] WAD,
 | 
					 | 
				
			||||||
	(* techmap_autopurge *) input        WRE,
 | 
					 | 
				
			||||||
	(* techmap_autopurge *) input        WCK,
 | 
					 | 
				
			||||||
	(* techmap_autopurge *) input  [3:0] RAD,
 | 
					 | 
				
			||||||
	output [3:0] DO
 | 
					 | 
				
			||||||
);
 | 
					 | 
				
			||||||
	parameter WCKMUX = "WCK";
 | 
					 | 
				
			||||||
	parameter WREMUX = "WRE";
 | 
					 | 
				
			||||||
	parameter [63:0] INITVAL = 64'h0000000000000000;
 | 
					 | 
				
			||||||
    wire [3:0] $DO;
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    TRELLIS_DPR16X4 #(
 | 
					 | 
				
			||||||
      .WCKMUX(WCKMUX), .WREMUX(WREMUX), .INITVAL(INITVAL)
 | 
					 | 
				
			||||||
    ) _TECHMAP_REPLACE_ (
 | 
					 | 
				
			||||||
      .DI(DI), .WAD(WAD), .WRE(WRE), .WCK(WCK),
 | 
					 | 
				
			||||||
      .RAD(RAD), .DO($DO)
 | 
					 | 
				
			||||||
    );
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    $__ABC9_DPR16X4_COMB do (.$DO($DO), .RAD(RAD), .DO(DO));
 | 
					 | 
				
			||||||
endmodule
 | 
					 | 
				
			||||||
| 
						 | 
					@ -1,5 +0,0 @@
 | 
				
			||||||
// ---------------------------------------
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
module \$__ABC9_DPR16X4_COMB (input [3:0] $DO, RAD, output [3:0] DO);
 | 
					 | 
				
			||||||
    assign DO = $DO;
 | 
					 | 
				
			||||||
endmodule
 | 
					 | 
				
			||||||
| 
						 | 
					@ -328,14 +328,10 @@ struct SynthEcp5Pass : public ScriptPass
 | 
				
			||||||
 | 
					
 | 
				
			||||||
		if (check_label("map_luts"))
 | 
							if (check_label("map_luts"))
 | 
				
			||||||
		{
 | 
							{
 | 
				
			||||||
			if (abc2 || help_mode) {
 | 
								if (abc2 || help_mode)
 | 
				
			||||||
				run("abc", "      (only if -abc2)");
 | 
									run("abc", "      (only if -abc2)");
 | 
				
			||||||
			}
 | 
								if (asyncprld || help_mode)
 | 
				
			||||||
			std::string techmap_args = asyncprld ? "" : "-map +/ecp5/latches_map.v";
 | 
									run("techmap -map +/ecp5/latches_map.v", "(only if -asyncprld)");
 | 
				
			||||||
			if (abc9)
 | 
					 | 
				
			||||||
				techmap_args += " -map +/ecp5/abc9_map.v -max_iter 1";
 | 
					 | 
				
			||||||
			if (!techmap_args.empty())
 | 
					 | 
				
			||||||
				run("techmap " + techmap_args);
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
			if (abc9) {
 | 
								if (abc9) {
 | 
				
			||||||
				run("read_verilog -icells -lib -specify +/ecp5/abc9_model.v");
 | 
									run("read_verilog -icells -lib -specify +/ecp5/abc9_model.v");
 | 
				
			||||||
| 
						 | 
					@ -352,7 +348,6 @@ struct SynthEcp5Pass : public ScriptPass
 | 
				
			||||||
				if (dff)
 | 
									if (dff)
 | 
				
			||||||
					abc9_opts += " -dff";
 | 
										abc9_opts += " -dff";
 | 
				
			||||||
				run("abc9" + abc9_opts);
 | 
									run("abc9" + abc9_opts);
 | 
				
			||||||
				run("techmap -map +/ecp5/abc9_unmap.v");
 | 
					 | 
				
			||||||
			} else {
 | 
								} else {
 | 
				
			||||||
				std::string abc_args = " -dress";
 | 
									std::string abc_args = " -dress";
 | 
				
			||||||
				if (nowidelut)
 | 
									if (nowidelut)
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue