mirror of
				https://github.com/YosysHQ/yosys
				synced 2025-10-31 11:42:30 +00:00 
			
		
		
		
	ecp5: do not map FFRAM if explicitly requested otherwise.
This commit is contained in:
		
							parent
							
								
									ebee746ad2
								
							
						
					
					
						commit
						763401fc82
					
				
					 2 changed files with 65 additions and 17 deletions
				
			
		|  | @ -279,7 +279,9 @@ struct SynthEcp5Pass : public ScriptPass | ||||||
| 		if (check_label("map_ffram")) | 		if (check_label("map_ffram")) | ||||||
| 		{ | 		{ | ||||||
| 			run("opt -fast -mux_undef -undriven -fine"); | 			run("opt -fast -mux_undef -undriven -fine"); | ||||||
| 			run("memory_map"); | 			run("memory_map -iattr -attr !ram_block -attr !rom_block -attr logic_block " | ||||||
|  | 			    "-attr syn_ramstyle=auto -attr syn_ramstyle=registers " | ||||||
|  | 			    "-attr syn_romstyle=auto -attr syn_romstyle=logic"); | ||||||
| 			run("opt -undriven -fine"); | 			run("opt -undriven -fine"); | ||||||
| 		} | 		} | ||||||
| 
 | 
 | ||||||
|  |  | ||||||
|  | @ -50,15 +50,25 @@ design -reset; read_verilog ../common/blockram.v | ||||||
| chparam -set ADDRESS_WIDTH 2 -set DATA_WIDTH 36 sync_ram_sdp | chparam -set ADDRESS_WIDTH 2 -set DATA_WIDTH 36 sync_ram_sdp | ||||||
| setattr -set syn_romstyle "ebr" m:memory | setattr -set syn_romstyle "ebr" m:memory | ||||||
| synth_ecp5 -top sync_ram_sdp; cd sync_ram_sdp | synth_ecp5 -top sync_ram_sdp; cd sync_ram_sdp | ||||||
| select -assert-count 0 t:PDPW16KD # requested BROM but this is a RAM | select -assert-count 1 t:$mem # requested BROM but this is a RAM | ||||||
| select -assert-count 180 t:TRELLIS_FF |  | ||||||
| 
 | 
 | ||||||
| design -reset; read_verilog ../common/blockram.v | design -reset; read_verilog ../common/blockram.v | ||||||
| chparam -set ADDRESS_WIDTH 2 -set DATA_WIDTH 36 sync_ram_sdp | chparam -set ADDRESS_WIDTH 2 -set DATA_WIDTH 36 sync_ram_sdp | ||||||
| setattr -set rom_block 1 m:memory | setattr -set rom_block 1 m:memory | ||||||
| synth_ecp5 -top sync_ram_sdp; cd sync_ram_sdp | synth_ecp5 -top sync_ram_sdp; cd sync_ram_sdp | ||||||
| select -assert-count 0 t:PDPW16KD # requested BROM but this is a RAM | select -assert-count 1 t:$mem # requested BROM but this is a RAM | ||||||
| select -assert-count 180 t:TRELLIS_FF | 
 | ||||||
|  | design -reset; read_verilog ../common/blockram.v | ||||||
|  | chparam -set ADDRESS_WIDTH 2 -set DATA_WIDTH 36 sync_ram_sdp | ||||||
|  | setattr -set syn_ramstyle "block_ram" m:memory | ||||||
|  | synth_ecp5 -top sync_ram_sdp -nobram; cd sync_ram_sdp | ||||||
|  | select -assert-count 1 t:$mem # requested BRAM but BRAM is disabled | ||||||
|  | 
 | ||||||
|  | design -reset; read_verilog ../common/blockram.v | ||||||
|  | chparam -set ADDRESS_WIDTH 2 -set DATA_WIDTH 36 sync_ram_sdp | ||||||
|  | setattr -set ram_block 1 m:memory | ||||||
|  | synth_ecp5 -top sync_ram_sdp -nobram; cd sync_ram_sdp | ||||||
|  | select -assert-count 1 t:$mem # requested BRAM but BRAM is disabled | ||||||
| 
 | 
 | ||||||
| # RAM bits <= 18K; Data width <= 18; Address width <= 10: -> DP16KD | # RAM bits <= 18K; Data width <= 18; Address width <= 10: -> DP16KD | ||||||
| 
 | 
 | ||||||
|  | @ -131,15 +141,25 @@ design -reset; read_verilog ../common/blockram.v | ||||||
| chparam -set ADDRESS_WIDTH 2 -set DATA_WIDTH 18 sync_ram_sdp | chparam -set ADDRESS_WIDTH 2 -set DATA_WIDTH 18 sync_ram_sdp | ||||||
| setattr -set syn_romstyle "ebr" m:memory | setattr -set syn_romstyle "ebr" m:memory | ||||||
| synth_ecp5 -top sync_ram_sdp; cd sync_ram_sdp | synth_ecp5 -top sync_ram_sdp; cd sync_ram_sdp | ||||||
| select -assert-count 0 t:DP16KD # requested BROM but this is a RAM | select -assert-count 1 t:$mem # requested BROM but this is a RAM | ||||||
| select -assert-count 90 t:TRELLIS_FF |  | ||||||
| 
 | 
 | ||||||
| design -reset; read_verilog ../common/blockram.v | design -reset; read_verilog ../common/blockram.v | ||||||
| chparam -set ADDRESS_WIDTH 2 -set DATA_WIDTH 18 sync_ram_sdp | chparam -set ADDRESS_WIDTH 2 -set DATA_WIDTH 18 sync_ram_sdp | ||||||
| setattr -set rom_block 1 m:memory | setattr -set rom_block 1 m:memory | ||||||
| synth_ecp5 -top sync_ram_sdp; cd sync_ram_sdp | synth_ecp5 -top sync_ram_sdp; cd sync_ram_sdp | ||||||
| select -assert-count 0 t:DP16KD # requested BROM but this is a RAM | select -assert-count 1 t:$mem # requested BROM but this is a RAM | ||||||
| select -assert-count 90 t:TRELLIS_FF | 
 | ||||||
|  | design -reset; read_verilog ../common/blockram.v | ||||||
|  | chparam -set ADDRESS_WIDTH 2 -set DATA_WIDTH 18 sync_ram_sdp | ||||||
|  | setattr -set syn_ramstyle "block_ram" m:memory | ||||||
|  | synth_ecp5 -top sync_ram_sdp -nobram; cd sync_ram_sdp | ||||||
|  | select -assert-count 1 t:$mem # requested BRAM but BRAM is disabled | ||||||
|  | 
 | ||||||
|  | design -reset; read_verilog ../common/blockram.v | ||||||
|  | chparam -set ADDRESS_WIDTH 2 -set DATA_WIDTH 18 sync_ram_sdp | ||||||
|  | setattr -set ram_block 1 m:memory | ||||||
|  | synth_ecp5 -top sync_ram_sdp -nobram; cd sync_ram_sdp | ||||||
|  | select -assert-count 1 t:$mem # requested BRAM but BRAM is disabled | ||||||
| 
 | 
 | ||||||
| # RAM bits <= 64; Data width <= 4; Address width <= 4: -> DPR16X4 | # RAM bits <= 64; Data width <= 4; Address width <= 4: -> DPR16X4 | ||||||
| 
 | 
 | ||||||
|  | @ -170,6 +190,12 @@ synth_ecp5 -top sync_ram_sdp; cd sync_ram_sdp | ||||||
| select -assert-count 0 t:TRELLIS_DPR16X4 # requested FFRAM explicitly | select -assert-count 0 t:TRELLIS_DPR16X4 # requested FFRAM explicitly | ||||||
| select -assert-count 68 t:TRELLIS_FF | select -assert-count 68 t:TRELLIS_FF | ||||||
| 
 | 
 | ||||||
|  | design -reset; read_verilog ../common/blockram.v | ||||||
|  | chparam -set ADDRESS_WIDTH 4 -set DATA_WIDTH 4 sync_ram_sdp | ||||||
|  | setattr -set syn_ramstyle "distributed" m:memory | ||||||
|  | synth_ecp5 -top sync_ram_sdp -nolutram; cd sync_ram_sdp | ||||||
|  | select -assert-count 1 t:$mem # requested LUTRAM but LUTRAM is disabled | ||||||
|  | 
 | ||||||
| # ================================ ROM ================================ | # ================================ ROM ================================ | ||||||
| # ROM bits <= 18K; Data width <= 36; Address width <= 9: -> PDPW16KD | # ROM bits <= 18K; Data width <= 36; Address width <= 9: -> PDPW16KD | ||||||
| 
 | 
 | ||||||
|  | @ -217,15 +243,25 @@ design -reset; read_verilog ../common/blockrom.v | ||||||
| chparam -set ADDRESS_WIDTH 2 -set DATA_WIDTH 36 sync_rom | chparam -set ADDRESS_WIDTH 2 -set DATA_WIDTH 36 sync_rom | ||||||
| setattr -set syn_ramstyle "block_ram" m:memory | setattr -set syn_ramstyle "block_ram" m:memory | ||||||
| synth_ecp5 -top sync_rom; cd sync_rom | synth_ecp5 -top sync_rom; cd sync_rom | ||||||
| select -assert-count 0 t:PDPW16KD # requested BRAM but this is a ROM | select -assert-count 1 t:$mem # requested BRAM but this is a ROM | ||||||
| select -assert-min 18 t:LUT4 |  | ||||||
| 
 | 
 | ||||||
| design -reset; read_verilog ../common/blockrom.v | design -reset; read_verilog ../common/blockrom.v | ||||||
| chparam -set ADDRESS_WIDTH 2 -set DATA_WIDTH 36 sync_rom | chparam -set ADDRESS_WIDTH 2 -set DATA_WIDTH 36 sync_rom | ||||||
| setattr -set ram_block 1 m:memory | setattr -set ram_block 1 m:memory | ||||||
| synth_ecp5 -top sync_rom; cd sync_rom | synth_ecp5 -top sync_rom; cd sync_rom | ||||||
| select -assert-count 0 t:PDPW16KD # requested BRAM but this is a ROM | select -assert-count 1 t:$mem # requested BRAM but this is a ROM | ||||||
| select -assert-min 18 t:LUT4 | 
 | ||||||
|  | design -reset; read_verilog ../common/blockrom.v | ||||||
|  | chparam -set ADDRESS_WIDTH 2 -set DATA_WIDTH 36 sync_rom | ||||||
|  | setattr -set syn_ramstyle "block_rom" m:memory | ||||||
|  | synth_ecp5 -top sync_rom -nobram; cd sync_rom | ||||||
|  | select -assert-count 1 t:$mem # requested BROM but BRAM is disabled | ||||||
|  | 
 | ||||||
|  | design -reset; read_verilog ../common/blockrom.v | ||||||
|  | chparam -set ADDRESS_WIDTH 2 -set DATA_WIDTH 36 sync_rom | ||||||
|  | setattr -set rom_block 1 m:memory | ||||||
|  | synth_ecp5 -top sync_rom -nobram; cd sync_rom | ||||||
|  | select -assert-count 1 t:$mem # requested BROM but BRAM is disabled | ||||||
| 
 | 
 | ||||||
| # ROM bits <= 18K; Data width <= 18; Address width <= 10: -> DP16KD | # ROM bits <= 18K; Data width <= 18; Address width <= 10: -> DP16KD | ||||||
| 
 | 
 | ||||||
|  | @ -273,12 +309,22 @@ design -reset; read_verilog ../common/blockrom.v | ||||||
| chparam -set ADDRESS_WIDTH 2 -set DATA_WIDTH 18 sync_rom | chparam -set ADDRESS_WIDTH 2 -set DATA_WIDTH 18 sync_rom | ||||||
| setattr -set syn_ramstyle "block_ram" m:memory | setattr -set syn_ramstyle "block_ram" m:memory | ||||||
| synth_ecp5 -top sync_rom; cd sync_rom | synth_ecp5 -top sync_rom; cd sync_rom | ||||||
| select -assert-count 0 t:DP16KD # requested BRAM but this is a ROM | select -assert-count 1 t:$mem # requested BRAM but this is a ROM | ||||||
| select -assert-min 9 t:LUT4 |  | ||||||
| 
 | 
 | ||||||
| design -reset; read_verilog ../common/blockrom.v | design -reset; read_verilog ../common/blockrom.v | ||||||
| chparam -set ADDRESS_WIDTH 2 -set DATA_WIDTH 18 sync_rom | chparam -set ADDRESS_WIDTH 2 -set DATA_WIDTH 18 sync_rom | ||||||
| setattr -set ram_block 1 m:memory | setattr -set ram_block 1 m:memory | ||||||
| synth_ecp5 -top sync_rom; cd sync_rom | synth_ecp5 -top sync_rom; cd sync_rom | ||||||
| select -assert-count 0 t:DP16KD # requested BRAM but this is a ROM | select -assert-count 1 t:$mem # requested BRAM but this is a ROM | ||||||
| select -assert-min 9 t:LUT4 | 
 | ||||||
|  | design -reset; read_verilog ../common/blockrom.v | ||||||
|  | chparam -set ADDRESS_WIDTH 2 -set DATA_WIDTH 18 sync_rom | ||||||
|  | setattr -set syn_ramstyle "block_rom" m:memory | ||||||
|  | synth_ecp5 -top sync_rom -nobram; cd sync_rom | ||||||
|  | select -assert-count 1 t:$mem # requested BROM but BRAM is disabled | ||||||
|  | 
 | ||||||
|  | design -reset; read_verilog ../common/blockrom.v | ||||||
|  | chparam -set ADDRESS_WIDTH 2 -set DATA_WIDTH 18 sync_rom | ||||||
|  | setattr -set rom_block 1 m:memory | ||||||
|  | synth_ecp5 -top sync_rom -nobram; cd sync_rom | ||||||
|  | select -assert-count 1 t:$mem # requested BROM but BRAM is disabled | ||||||
|  |  | ||||||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue