mirror of
				https://github.com/YosysHQ/yosys
				synced 2025-10-30 19:22:31 +00:00 
			
		
		
		
	Merge pull request #3727 from YosysHQ/micko/pll_bram
MachXO2: Add PLL and EBR related primitives
This commit is contained in:
		
						commit
						b377a39b73
					
				
					 5 changed files with 325 additions and 124 deletions
				
			
		|  | @ -4,6 +4,7 @@ OBJS += techlibs/machxo2/synth_machxo2.o | |||
| $(eval $(call add_share_file,share/machxo2,techlibs/ecp5/cells_io.vh)) | ||||
| $(eval $(call add_share_file,share/machxo2,techlibs/machxo2/cells_map.v)) | ||||
| $(eval $(call add_share_file,share/machxo2,techlibs/machxo2/cells_sim.v)) | ||||
| $(eval $(call add_share_file,share/machxo2,techlibs/machxo2/cells_bb.v)) | ||||
| 
 | ||||
| $(eval $(call add_share_file,share/machxo2,techlibs/ecp5/lutrams.txt)) | ||||
| $(eval $(call add_share_file,share/machxo2,techlibs/ecp5/lutrams_map.v)) | ||||
|  |  | |||
|  | @ -45,38 +45,38 @@ assign PORT_A_RD_DATA = DOA; | |||
| assign PORT_B_RD_DATA = DOB; | ||||
| 
 | ||||
| DP8KC #( | ||||
| 	.INITVAL_00($sformatf("0x%080x", init_slice('h00))), | ||||
| 	.INITVAL_01($sformatf("0x%080x", init_slice('h01))), | ||||
| 	.INITVAL_02($sformatf("0x%080x", init_slice('h02))), | ||||
| 	.INITVAL_03($sformatf("0x%080x", init_slice('h03))), | ||||
| 	.INITVAL_04($sformatf("0x%080x", init_slice('h04))), | ||||
| 	.INITVAL_05($sformatf("0x%080x", init_slice('h05))), | ||||
| 	.INITVAL_06($sformatf("0x%080x", init_slice('h06))), | ||||
| 	.INITVAL_07($sformatf("0x%080x", init_slice('h07))), | ||||
| 	.INITVAL_08($sformatf("0x%080x", init_slice('h08))), | ||||
| 	.INITVAL_09($sformatf("0x%080x", init_slice('h09))), | ||||
| 	.INITVAL_0A($sformatf("0x%080x", init_slice('h0a))), | ||||
| 	.INITVAL_0B($sformatf("0x%080x", init_slice('h0b))), | ||||
| 	.INITVAL_0C($sformatf("0x%080x", init_slice('h0c))), | ||||
| 	.INITVAL_0D($sformatf("0x%080x", init_slice('h0d))), | ||||
| 	.INITVAL_0E($sformatf("0x%080x", init_slice('h0e))), | ||||
| 	.INITVAL_0F($sformatf("0x%080x", init_slice('h0f))), | ||||
| 	.INITVAL_10($sformatf("0x%080x", init_slice('h10))), | ||||
| 	.INITVAL_11($sformatf("0x%080x", init_slice('h11))), | ||||
| 	.INITVAL_12($sformatf("0x%080x", init_slice('h12))), | ||||
| 	.INITVAL_13($sformatf("0x%080x", init_slice('h13))), | ||||
| 	.INITVAL_14($sformatf("0x%080x", init_slice('h14))), | ||||
| 	.INITVAL_15($sformatf("0x%080x", init_slice('h15))), | ||||
| 	.INITVAL_16($sformatf("0x%080x", init_slice('h16))), | ||||
| 	.INITVAL_17($sformatf("0x%080x", init_slice('h17))), | ||||
| 	.INITVAL_18($sformatf("0x%080x", init_slice('h18))), | ||||
| 	.INITVAL_19($sformatf("0x%080x", init_slice('h19))), | ||||
| 	.INITVAL_1A($sformatf("0x%080x", init_slice('h1a))), | ||||
| 	.INITVAL_1B($sformatf("0x%080x", init_slice('h1b))), | ||||
| 	.INITVAL_1C($sformatf("0x%080x", init_slice('h1c))), | ||||
| 	.INITVAL_1D($sformatf("0x%080x", init_slice('h1d))), | ||||
| 	.INITVAL_1E($sformatf("0x%080x", init_slice('h1e))), | ||||
| 	.INITVAL_1F($sformatf("0x%080x", init_slice('h1f))), | ||||
| 	.INITVAL_00(init_slice('h00)), | ||||
| 	.INITVAL_01(init_slice('h01)), | ||||
| 	.INITVAL_02(init_slice('h02)), | ||||
| 	.INITVAL_03(init_slice('h03)), | ||||
| 	.INITVAL_04(init_slice('h04)), | ||||
| 	.INITVAL_05(init_slice('h05)), | ||||
| 	.INITVAL_06(init_slice('h06)), | ||||
| 	.INITVAL_07(init_slice('h07)), | ||||
| 	.INITVAL_08(init_slice('h08)), | ||||
| 	.INITVAL_09(init_slice('h09)), | ||||
| 	.INITVAL_0A(init_slice('h0a)), | ||||
| 	.INITVAL_0B(init_slice('h0b)), | ||||
| 	.INITVAL_0C(init_slice('h0c)), | ||||
| 	.INITVAL_0D(init_slice('h0d)), | ||||
| 	.INITVAL_0E(init_slice('h0e)), | ||||
| 	.INITVAL_0F(init_slice('h0f)), | ||||
| 	.INITVAL_10(init_slice('h10)), | ||||
| 	.INITVAL_11(init_slice('h11)), | ||||
| 	.INITVAL_12(init_slice('h12)), | ||||
| 	.INITVAL_13(init_slice('h13)), | ||||
| 	.INITVAL_14(init_slice('h14)), | ||||
| 	.INITVAL_15(init_slice('h15)), | ||||
| 	.INITVAL_16(init_slice('h16)), | ||||
| 	.INITVAL_17(init_slice('h17)), | ||||
| 	.INITVAL_18(init_slice('h18)), | ||||
| 	.INITVAL_19(init_slice('h19)), | ||||
| 	.INITVAL_1A(init_slice('h1a)), | ||||
| 	.INITVAL_1B(init_slice('h1b)), | ||||
| 	.INITVAL_1C(init_slice('h1c)), | ||||
| 	.INITVAL_1D(init_slice('h1d)), | ||||
| 	.INITVAL_1E(init_slice('h1e)), | ||||
| 	.INITVAL_1F(init_slice('h1f)), | ||||
| 	.DATA_WIDTH_A(PORT_A_WIDTH), | ||||
| 	.DATA_WIDTH_B(PORT_B_WIDTH), | ||||
| 	.REGMODE_A("NOREG"), | ||||
|  | @ -211,38 +211,38 @@ wire [17:0] DO; | |||
| assign PORT_R_RD_DATA = PORT_R_WIDTH == 18 ? DO : DO[17:9]; | ||||
| 
 | ||||
| DP8KC #( | ||||
| 	.INITVAL_00($sformatf("0x%080x", init_slice('h00))), | ||||
| 	.INITVAL_01($sformatf("0x%080x", init_slice('h01))), | ||||
| 	.INITVAL_02($sformatf("0x%080x", init_slice('h02))), | ||||
| 	.INITVAL_03($sformatf("0x%080x", init_slice('h03))), | ||||
| 	.INITVAL_04($sformatf("0x%080x", init_slice('h04))), | ||||
| 	.INITVAL_05($sformatf("0x%080x", init_slice('h05))), | ||||
| 	.INITVAL_06($sformatf("0x%080x", init_slice('h06))), | ||||
| 	.INITVAL_07($sformatf("0x%080x", init_slice('h07))), | ||||
| 	.INITVAL_08($sformatf("0x%080x", init_slice('h08))), | ||||
| 	.INITVAL_09($sformatf("0x%080x", init_slice('h09))), | ||||
| 	.INITVAL_0A($sformatf("0x%080x", init_slice('h0a))), | ||||
| 	.INITVAL_0B($sformatf("0x%080x", init_slice('h0b))), | ||||
| 	.INITVAL_0C($sformatf("0x%080x", init_slice('h0c))), | ||||
| 	.INITVAL_0D($sformatf("0x%080x", init_slice('h0d))), | ||||
| 	.INITVAL_0E($sformatf("0x%080x", init_slice('h0e))), | ||||
| 	.INITVAL_0F($sformatf("0x%080x", init_slice('h0f))), | ||||
| 	.INITVAL_10($sformatf("0x%080x", init_slice('h10))), | ||||
| 	.INITVAL_11($sformatf("0x%080x", init_slice('h11))), | ||||
| 	.INITVAL_12($sformatf("0x%080x", init_slice('h12))), | ||||
| 	.INITVAL_13($sformatf("0x%080x", init_slice('h13))), | ||||
| 	.INITVAL_14($sformatf("0x%080x", init_slice('h14))), | ||||
| 	.INITVAL_15($sformatf("0x%080x", init_slice('h15))), | ||||
| 	.INITVAL_16($sformatf("0x%080x", init_slice('h16))), | ||||
| 	.INITVAL_17($sformatf("0x%080x", init_slice('h17))), | ||||
| 	.INITVAL_18($sformatf("0x%080x", init_slice('h18))), | ||||
| 	.INITVAL_19($sformatf("0x%080x", init_slice('h19))), | ||||
| 	.INITVAL_1A($sformatf("0x%080x", init_slice('h1a))), | ||||
| 	.INITVAL_1B($sformatf("0x%080x", init_slice('h1b))), | ||||
| 	.INITVAL_1C($sformatf("0x%080x", init_slice('h1c))), | ||||
| 	.INITVAL_1D($sformatf("0x%080x", init_slice('h1d))), | ||||
| 	.INITVAL_1E($sformatf("0x%080x", init_slice('h1e))), | ||||
| 	.INITVAL_1F($sformatf("0x%080x", init_slice('h1f))), | ||||
| 	.INITVAL_00(init_slice('h00)), | ||||
| 	.INITVAL_01(init_slice('h01)), | ||||
| 	.INITVAL_02(init_slice('h02)), | ||||
| 	.INITVAL_03(init_slice('h03)), | ||||
| 	.INITVAL_04(init_slice('h04)), | ||||
| 	.INITVAL_05(init_slice('h05)), | ||||
| 	.INITVAL_06(init_slice('h06)), | ||||
| 	.INITVAL_07(init_slice('h07)), | ||||
| 	.INITVAL_08(init_slice('h08)), | ||||
| 	.INITVAL_09(init_slice('h09)), | ||||
| 	.INITVAL_0A(init_slice('h0a)), | ||||
| 	.INITVAL_0B(init_slice('h0b)), | ||||
| 	.INITVAL_0C(init_slice('h0c)), | ||||
| 	.INITVAL_0D(init_slice('h0d)), | ||||
| 	.INITVAL_0E(init_slice('h0e)), | ||||
| 	.INITVAL_0F(init_slice('h0f)), | ||||
| 	.INITVAL_10(init_slice('h10)), | ||||
| 	.INITVAL_11(init_slice('h11)), | ||||
| 	.INITVAL_12(init_slice('h12)), | ||||
| 	.INITVAL_13(init_slice('h13)), | ||||
| 	.INITVAL_14(init_slice('h14)), | ||||
| 	.INITVAL_15(init_slice('h15)), | ||||
| 	.INITVAL_16(init_slice('h16)), | ||||
| 	.INITVAL_17(init_slice('h17)), | ||||
| 	.INITVAL_18(init_slice('h18)), | ||||
| 	.INITVAL_19(init_slice('h19)), | ||||
| 	.INITVAL_1A(init_slice('h1a)), | ||||
| 	.INITVAL_1B(init_slice('h1b)), | ||||
| 	.INITVAL_1C(init_slice('h1c)), | ||||
| 	.INITVAL_1D(init_slice('h1d)), | ||||
| 	.INITVAL_1E(init_slice('h1e)), | ||||
| 	.INITVAL_1F(init_slice('h1f)), | ||||
| 	.DATA_WIDTH_A(PORT_W_WIDTH), | ||||
| 	.DATA_WIDTH_B(PORT_R_WIDTH), | ||||
| 	.REGMODE_A("NOREG"), | ||||
|  |  | |||
							
								
								
									
										227
									
								
								techlibs/machxo2/cells_bb.v
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										227
									
								
								techlibs/machxo2/cells_bb.v
									
										
									
									
									
										Normal file
									
								
							|  | @ -0,0 +1,227 @@ | |||
| (* blackbox *) | ||||
| module EHXPLLJ ( | ||||
|     input CLKI, CLKFB, | ||||
|     input PHASESEL1, PHASESEL0, PHASEDIR, PHASESTEP,  | ||||
|     input LOADREG, STDBY, PLLWAKESYNC, RST, RESETM, RESETC, RESETD,  | ||||
|     input ENCLKOP, ENCLKOS, ENCLKOS2, ENCLKOS3, PLLCLK, PLLRST, PLLSTB, PLLWE,  | ||||
|     input PLLDATI7, PLLDATI6, PLLDATI5, PLLDATI4, PLLDATI3, PLLDATI2, PLLDATI1, PLLDATI0,  | ||||
|     input PLLADDR4, PLLADDR3, PLLADDR2, PLLADDR1, PLLADDR0, | ||||
|     output CLKOP, CLKOS, CLKOS2, CLKOS3, LOCK, INTLOCK, REFCLK,  | ||||
|     output PLLDATO7, PLLDATO6, PLLDATO5, PLLDATO4, PLLDATO3, PLLDATO2, PLLDATO1, PLLDATO0, PLLACK,  | ||||
|     output DPHSRC, CLKINTFB | ||||
| ); | ||||
|     parameter CLKI_DIV = 1; | ||||
|     parameter CLKFB_DIV = 1; | ||||
|     parameter CLKOP_DIV = 8; | ||||
|     parameter CLKOS_DIV = 8; | ||||
|     parameter CLKOS2_DIV = 8; | ||||
|     parameter CLKOS3_DIV = 8; | ||||
|     parameter CLKOP_ENABLE = "ENABLED"; | ||||
|     parameter CLKOS_ENABLE = "ENABLED"; | ||||
|     parameter CLKOS2_ENABLE = "ENABLED"; | ||||
|     parameter CLKOS3_ENABLE = "ENABLED"; | ||||
|     parameter VCO_BYPASS_A0 = "DISABLED"; | ||||
|     parameter VCO_BYPASS_B0 = "DISABLED"; | ||||
|     parameter VCO_BYPASS_C0 = "DISABLED"; | ||||
|     parameter VCO_BYPASS_D0 = "DISABLED"; | ||||
|     parameter CLKOP_CPHASE = 0; | ||||
|     parameter CLKOS_CPHASE = 0; | ||||
|     parameter CLKOS2_CPHASE = 0; | ||||
|     parameter CLKOS3_CPHASE = 0; | ||||
|     parameter CLKOP_FPHASE = 0; | ||||
|     parameter CLKOS_FPHASE = 0; | ||||
|     parameter CLKOS2_FPHASE = 0; | ||||
|     parameter CLKOS3_FPHASE = 0; | ||||
|     parameter FEEDBK_PATH = "CLKOP"; | ||||
|     parameter FRACN_ENABLE = "DISABLED"; | ||||
|     parameter FRACN_DIV = 0; | ||||
|     parameter CLKOP_TRIM_POL = "RISING"; | ||||
|     parameter CLKOP_TRIM_DELAY = 0; | ||||
|     parameter CLKOS_TRIM_POL = "RISING"; | ||||
|     parameter CLKOS_TRIM_DELAY = 0; | ||||
|     parameter PLL_USE_WB = "DISABLED"; | ||||
|     parameter PREDIVIDER_MUXA1 = 0; | ||||
|     parameter PREDIVIDER_MUXB1 = 0; | ||||
|     parameter PREDIVIDER_MUXC1 = 0; | ||||
|     parameter PREDIVIDER_MUXD1 = 0; | ||||
|     parameter OUTDIVIDER_MUXA2 = "DIVA"; | ||||
|     parameter OUTDIVIDER_MUXB2 = "DIVB"; | ||||
|     parameter OUTDIVIDER_MUXC2 = "DIVC"; | ||||
|     parameter OUTDIVIDER_MUXD2 = "DIVD"; | ||||
|     parameter PLL_LOCK_MODE = 0; | ||||
|     parameter STDBY_ENABLE = "DISABLED"; | ||||
|     parameter DPHASE_SOURCE = "DISABLED"; | ||||
|     parameter PLLRST_ENA = "DISABLED"; | ||||
|     parameter MRST_ENA = "DISABLED"; | ||||
|     parameter DCRST_ENA = "DISABLED"; | ||||
|     parameter DDRST_ENA = "DISABLED"; | ||||
|     parameter INTFB_WAKE = "DISABLED"; | ||||
| endmodule | ||||
| 
 | ||||
| (* blackbox *) | ||||
| module OSCH #( | ||||
| 	parameter NOM_FREQ = "2.08" | ||||
| ) ( | ||||
| 	input STDBY, | ||||
| 	output OSC, | ||||
| 	output SEDSTDBY | ||||
| ); | ||||
| endmodule | ||||
| 
 | ||||
| (* blackbox *) | ||||
| module DCCA ( | ||||
| 	input CLKI, | ||||
| 	input CE, | ||||
| 	output CLKO | ||||
| ); | ||||
| endmodule | ||||
| 
 | ||||
| (* blackbox *) | ||||
| module DCMA ( | ||||
| 	input CLK0, | ||||
| 	input CLK1, | ||||
| 	input SEL, | ||||
| 	output DCMOUT | ||||
| ); | ||||
| endmodule | ||||
| 
 | ||||
| (* blackbox *) | ||||
| module PDPW8KC ( | ||||
|     input DI17, DI16, DI15, DI14, DI13, DI12, DI11, DI10, DI9, DI8, DI7, DI6, DI5, DI4, DI3, DI2, DI1, DI0, | ||||
|     input ADW8, ADW7, ADW6, ADW5, ADW4, ADW3, ADW2, ADW1, ADW0, | ||||
|     input BE1, BE0, | ||||
|     input CEW, CLKW, CSW2, CSW1, CSW0, | ||||
|     input ADR12, ADR11, ADR10, ADR9, ADR8, ADR7, ADR6, ADR5, ADR4,  ADR3,  ADR2, ADR1, ADR0, | ||||
|     input CER, OCER, CLKR, CSR2, CSR1, CSR0, RST, | ||||
|     output DO17, DO16, DO15, DO14, DO13, DO12, DO11, DO10, DO9, DO8, DO7, DO6, DO5, DO4, DO3, DO2, DO1, DO0 | ||||
| ); | ||||
|     parameter DATA_WIDTH_W = 18; | ||||
|     parameter DATA_WIDTH_R = 9; | ||||
| 
 | ||||
|     parameter GSR = "ENABLED"; | ||||
| 
 | ||||
|     parameter REGMODE = "NOREG"; | ||||
| 
 | ||||
|     parameter RESETMODE = "SYNC"; | ||||
|     parameter ASYNC_RESET_RELEASE = "SYNC"; | ||||
| 
 | ||||
|     parameter CSDECODE_W = "0b000"; | ||||
|     parameter CSDECODE_R = "0b000"; | ||||
| 
 | ||||
|     parameter INITVAL_00 = 320'h00000000000000000000000000000000000000000000000000000000000000000000000000000000; | ||||
|     parameter INITVAL_01 = 320'h00000000000000000000000000000000000000000000000000000000000000000000000000000000; | ||||
|     parameter INITVAL_02 = 320'h00000000000000000000000000000000000000000000000000000000000000000000000000000000; | ||||
|     parameter INITVAL_03 = 320'h00000000000000000000000000000000000000000000000000000000000000000000000000000000; | ||||
|     parameter INITVAL_04 = 320'h00000000000000000000000000000000000000000000000000000000000000000000000000000000; | ||||
|     parameter INITVAL_05 = 320'h00000000000000000000000000000000000000000000000000000000000000000000000000000000; | ||||
|     parameter INITVAL_06 = 320'h00000000000000000000000000000000000000000000000000000000000000000000000000000000; | ||||
|     parameter INITVAL_07 = 320'h00000000000000000000000000000000000000000000000000000000000000000000000000000000; | ||||
|     parameter INITVAL_08 = 320'h00000000000000000000000000000000000000000000000000000000000000000000000000000000; | ||||
|     parameter INITVAL_09 = 320'h00000000000000000000000000000000000000000000000000000000000000000000000000000000; | ||||
|     parameter INITVAL_0A = 320'h00000000000000000000000000000000000000000000000000000000000000000000000000000000; | ||||
|     parameter INITVAL_0B = 320'h00000000000000000000000000000000000000000000000000000000000000000000000000000000; | ||||
|     parameter INITVAL_0C = 320'h00000000000000000000000000000000000000000000000000000000000000000000000000000000; | ||||
|     parameter INITVAL_0D = 320'h00000000000000000000000000000000000000000000000000000000000000000000000000000000; | ||||
|     parameter INITVAL_0E = 320'h00000000000000000000000000000000000000000000000000000000000000000000000000000000; | ||||
|     parameter INITVAL_0F = 320'h00000000000000000000000000000000000000000000000000000000000000000000000000000000; | ||||
|     parameter INITVAL_10 = 320'h00000000000000000000000000000000000000000000000000000000000000000000000000000000; | ||||
|     parameter INITVAL_11 = 320'h00000000000000000000000000000000000000000000000000000000000000000000000000000000; | ||||
|     parameter INITVAL_12 = 320'h00000000000000000000000000000000000000000000000000000000000000000000000000000000; | ||||
|     parameter INITVAL_13 = 320'h00000000000000000000000000000000000000000000000000000000000000000000000000000000; | ||||
|     parameter INITVAL_14 = 320'h00000000000000000000000000000000000000000000000000000000000000000000000000000000; | ||||
|     parameter INITVAL_15 = 320'h00000000000000000000000000000000000000000000000000000000000000000000000000000000; | ||||
|     parameter INITVAL_16 = 320'h00000000000000000000000000000000000000000000000000000000000000000000000000000000; | ||||
|     parameter INITVAL_17 = 320'h00000000000000000000000000000000000000000000000000000000000000000000000000000000; | ||||
|     parameter INITVAL_18 = 320'h00000000000000000000000000000000000000000000000000000000000000000000000000000000; | ||||
|     parameter INITVAL_19 = 320'h00000000000000000000000000000000000000000000000000000000000000000000000000000000; | ||||
|     parameter INITVAL_1A = 320'h00000000000000000000000000000000000000000000000000000000000000000000000000000000; | ||||
|     parameter INITVAL_1B = 320'h00000000000000000000000000000000000000000000000000000000000000000000000000000000; | ||||
|     parameter INITVAL_1C = 320'h00000000000000000000000000000000000000000000000000000000000000000000000000000000; | ||||
|     parameter INITVAL_1D = 320'h00000000000000000000000000000000000000000000000000000000000000000000000000000000; | ||||
|     parameter INITVAL_1E = 320'h00000000000000000000000000000000000000000000000000000000000000000000000000000000; | ||||
|     parameter INITVAL_1F = 320'h00000000000000000000000000000000000000000000000000000000000000000000000000000000; | ||||
|     parameter INIT_DATA = "STATIC"; | ||||
| 
 | ||||
| endmodule | ||||
| 
 | ||||
| (* blackbox *) | ||||
| module SP8KC ( | ||||
|     input DI8, DI7, DI6, DI5, DI4, DI3, DI2, DI1, DI0, | ||||
|     input AD12, AD11, AD10, AD9, AD8, AD7, AD6, AD5, AD4, AD3, AD2, AD1, AD0, | ||||
|     input CE, OCE, CLK, WE, CS2, CS1, CS0, RST, | ||||
|     output DO8, DO7, DO6, DO5, DO4, DO3, DO2, DO1, DO0 | ||||
| ); | ||||
|     parameter DATA_WIDTH = 9; | ||||
|     parameter GSR = "ENABLED"; | ||||
| 
 | ||||
|     parameter REGMODE = "NOREG"; | ||||
| 
 | ||||
|     parameter RESETMODE = "SYNC"; | ||||
|     parameter ASYNC_RESET_RELEASE = "SYNC"; | ||||
| 
 | ||||
|     parameter CSDECODE = "0b000"; | ||||
| 
 | ||||
|     parameter WRITEMODE = "NORMAL"; | ||||
| 
 | ||||
|     parameter INITVAL_00 = 320'h00000000000000000000000000000000000000000000000000000000000000000000000000000000; | ||||
|     parameter INITVAL_01 = 320'h00000000000000000000000000000000000000000000000000000000000000000000000000000000; | ||||
|     parameter INITVAL_02 = 320'h00000000000000000000000000000000000000000000000000000000000000000000000000000000; | ||||
|     parameter INITVAL_03 = 320'h00000000000000000000000000000000000000000000000000000000000000000000000000000000; | ||||
|     parameter INITVAL_04 = 320'h00000000000000000000000000000000000000000000000000000000000000000000000000000000; | ||||
|     parameter INITVAL_05 = 320'h00000000000000000000000000000000000000000000000000000000000000000000000000000000; | ||||
|     parameter INITVAL_06 = 320'h00000000000000000000000000000000000000000000000000000000000000000000000000000000; | ||||
|     parameter INITVAL_07 = 320'h00000000000000000000000000000000000000000000000000000000000000000000000000000000; | ||||
|     parameter INITVAL_08 = 320'h00000000000000000000000000000000000000000000000000000000000000000000000000000000; | ||||
|     parameter INITVAL_09 = 320'h00000000000000000000000000000000000000000000000000000000000000000000000000000000; | ||||
|     parameter INITVAL_0A = 320'h00000000000000000000000000000000000000000000000000000000000000000000000000000000; | ||||
|     parameter INITVAL_0B = 320'h00000000000000000000000000000000000000000000000000000000000000000000000000000000; | ||||
|     parameter INITVAL_0C = 320'h00000000000000000000000000000000000000000000000000000000000000000000000000000000; | ||||
|     parameter INITVAL_0D = 320'h00000000000000000000000000000000000000000000000000000000000000000000000000000000; | ||||
|     parameter INITVAL_0E = 320'h00000000000000000000000000000000000000000000000000000000000000000000000000000000; | ||||
|     parameter INITVAL_0F = 320'h00000000000000000000000000000000000000000000000000000000000000000000000000000000; | ||||
|     parameter INITVAL_10 = 320'h00000000000000000000000000000000000000000000000000000000000000000000000000000000; | ||||
|     parameter INITVAL_11 = 320'h00000000000000000000000000000000000000000000000000000000000000000000000000000000; | ||||
|     parameter INITVAL_12 = 320'h00000000000000000000000000000000000000000000000000000000000000000000000000000000; | ||||
|     parameter INITVAL_13 = 320'h00000000000000000000000000000000000000000000000000000000000000000000000000000000; | ||||
|     parameter INITVAL_14 = 320'h00000000000000000000000000000000000000000000000000000000000000000000000000000000; | ||||
|     parameter INITVAL_15 = 320'h00000000000000000000000000000000000000000000000000000000000000000000000000000000; | ||||
|     parameter INITVAL_16 = 320'h00000000000000000000000000000000000000000000000000000000000000000000000000000000; | ||||
|     parameter INITVAL_17 = 320'h00000000000000000000000000000000000000000000000000000000000000000000000000000000; | ||||
|     parameter INITVAL_18 = 320'h00000000000000000000000000000000000000000000000000000000000000000000000000000000; | ||||
|     parameter INITVAL_19 = 320'h00000000000000000000000000000000000000000000000000000000000000000000000000000000; | ||||
|     parameter INITVAL_1A = 320'h00000000000000000000000000000000000000000000000000000000000000000000000000000000; | ||||
|     parameter INITVAL_1B = 320'h00000000000000000000000000000000000000000000000000000000000000000000000000000000; | ||||
|     parameter INITVAL_1C = 320'h00000000000000000000000000000000000000000000000000000000000000000000000000000000; | ||||
|     parameter INITVAL_1D = 320'h00000000000000000000000000000000000000000000000000000000000000000000000000000000; | ||||
|     parameter INITVAL_1E = 320'h00000000000000000000000000000000000000000000000000000000000000000000000000000000; | ||||
|     parameter INITVAL_1F = 320'h00000000000000000000000000000000000000000000000000000000000000000000000000000000; | ||||
|     parameter INIT_DATA = "STATIC"; | ||||
| endmodule | ||||
| 
 | ||||
| (* blackbox *) | ||||
| module FIFO8KB ( | ||||
|     input DI0, DI1, DI2, DI3, DI4, DI5, DI6, DI7, DI8, DI9, DI10, DI11, DI12, DI13, DI14, DI15, DI16, DI17, | ||||
|     input CSW0, CSW1, CSR0, CSR1, WE, RE, ORE, CLKW, CLKR, RST, RPRST, FULLI, EMPTYI, | ||||
|     output DO0, DO1, DO2, DO3, DO4, DO5, DO6, DO7, DO8, DO9, DO10, DO11, DO12, DO13, DO14, DO15, DO16, DO17, | ||||
|     input EF, AEF, AFF, FF | ||||
| ); | ||||
|     parameter DATA_WIDTH_W = 18; | ||||
|     parameter DATA_WIDTH_R = 18; | ||||
| 
 | ||||
|     parameter GSR = "DISABLED"; | ||||
| 
 | ||||
|     parameter REGMODE = "NOREG"; | ||||
| 
 | ||||
|     parameter RESETMODE = "ASYNC"; | ||||
|     parameter ASYNC_RESET_RELEASE = "SYNC"; | ||||
| 
 | ||||
|     parameter CSDECODE_W = "0b00"; | ||||
|     parameter CSDECODE_R = "0b00"; | ||||
| 
 | ||||
|     parameter AEPOINTER    = "0b00000000000000"; | ||||
|     parameter AEPOINTER1   = "0b00000000000000"; | ||||
|     parameter AFPOINTER    = "0b00000000000000"; | ||||
|     parameter AFPOINTER1   = "0b00000000000000"; | ||||
|     parameter FULLPOINTER  = "0b00000000000000"; | ||||
|     parameter FULLPOINTER1 = "0b00000000000000"; | ||||
| endmodule | ||||
|  | @ -179,33 +179,6 @@ module TRELLIS_IO #( | |||
| 	endgenerate | ||||
| endmodule | ||||
| 
 | ||||
| (* blackbox *) | ||||
| module OSCH #( | ||||
| 	parameter NOM_FREQ = "2.08" | ||||
| ) ( | ||||
| 	input STDBY, | ||||
| 	output OSC, | ||||
| 	output SEDSTDBY | ||||
| ); | ||||
| endmodule | ||||
| 
 | ||||
| (* blackbox *) | ||||
| module DCCA ( | ||||
| 	input CLKI, | ||||
| 	input CE, | ||||
| 	output CLKO | ||||
| ); | ||||
| endmodule | ||||
| 
 | ||||
| (* blackbox *) | ||||
| module DCMA ( | ||||
| 	input CLK0, | ||||
| 	input CLK1, | ||||
| 	input SEL, | ||||
| 	output DCMOUT | ||||
| ); | ||||
| endmodule | ||||
| 
 | ||||
| (* abc9_box, lib_whitebox *) | ||||
| module TRELLIS_DPR16X4 ( | ||||
| 	input  [3:0] DI, | ||||
|  | @ -371,38 +344,38 @@ module DP8KC( | |||
| 	parameter GSR = "ENABLED"; | ||||
| 	parameter INIT_DATA = "STATIC"; | ||||
| 
 | ||||
| 	parameter INITVAL_00 = "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000"; | ||||
| 	parameter INITVAL_01 = "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000"; | ||||
| 	parameter INITVAL_02 = "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000"; | ||||
| 	parameter INITVAL_03 = "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000"; | ||||
| 	parameter INITVAL_04 = "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000"; | ||||
| 	parameter INITVAL_05 = "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000"; | ||||
| 	parameter INITVAL_06 = "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000"; | ||||
| 	parameter INITVAL_07 = "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000"; | ||||
| 	parameter INITVAL_08 = "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000"; | ||||
| 	parameter INITVAL_09 = "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000"; | ||||
| 	parameter INITVAL_0A = "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000"; | ||||
| 	parameter INITVAL_0B = "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000"; | ||||
| 	parameter INITVAL_0C = "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000"; | ||||
| 	parameter INITVAL_0D = "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000"; | ||||
| 	parameter INITVAL_0E = "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000"; | ||||
| 	parameter INITVAL_0F = "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000"; | ||||
| 	parameter INITVAL_10 = "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000"; | ||||
| 	parameter INITVAL_11 = "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000"; | ||||
| 	parameter INITVAL_12 = "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000"; | ||||
| 	parameter INITVAL_13 = "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000"; | ||||
| 	parameter INITVAL_14 = "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000"; | ||||
| 	parameter INITVAL_15 = "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000"; | ||||
| 	parameter INITVAL_16 = "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000"; | ||||
| 	parameter INITVAL_17 = "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000"; | ||||
| 	parameter INITVAL_18 = "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000"; | ||||
| 	parameter INITVAL_19 = "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000"; | ||||
| 	parameter INITVAL_1A = "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000"; | ||||
| 	parameter INITVAL_1B = "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000"; | ||||
| 	parameter INITVAL_1C = "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000"; | ||||
| 	parameter INITVAL_1D = "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000"; | ||||
| 	parameter INITVAL_1E = "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000"; | ||||
| 	parameter INITVAL_1F = "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000"; | ||||
| 	parameter INITVAL_00 = 320'h00000000000000000000000000000000000000000000000000000000000000000000000000000000; | ||||
| 	parameter INITVAL_01 = 320'h00000000000000000000000000000000000000000000000000000000000000000000000000000000; | ||||
| 	parameter INITVAL_02 = 320'h00000000000000000000000000000000000000000000000000000000000000000000000000000000; | ||||
| 	parameter INITVAL_03 = 320'h00000000000000000000000000000000000000000000000000000000000000000000000000000000; | ||||
| 	parameter INITVAL_04 = 320'h00000000000000000000000000000000000000000000000000000000000000000000000000000000; | ||||
| 	parameter INITVAL_05 = 320'h00000000000000000000000000000000000000000000000000000000000000000000000000000000; | ||||
| 	parameter INITVAL_06 = 320'h00000000000000000000000000000000000000000000000000000000000000000000000000000000; | ||||
| 	parameter INITVAL_07 = 320'h00000000000000000000000000000000000000000000000000000000000000000000000000000000; | ||||
| 	parameter INITVAL_08 = 320'h00000000000000000000000000000000000000000000000000000000000000000000000000000000; | ||||
| 	parameter INITVAL_09 = 320'h00000000000000000000000000000000000000000000000000000000000000000000000000000000; | ||||
| 	parameter INITVAL_0A = 320'h00000000000000000000000000000000000000000000000000000000000000000000000000000000; | ||||
| 	parameter INITVAL_0B = 320'h00000000000000000000000000000000000000000000000000000000000000000000000000000000; | ||||
| 	parameter INITVAL_0C = 320'h00000000000000000000000000000000000000000000000000000000000000000000000000000000; | ||||
| 	parameter INITVAL_0D = 320'h00000000000000000000000000000000000000000000000000000000000000000000000000000000; | ||||
| 	parameter INITVAL_0E = 320'h00000000000000000000000000000000000000000000000000000000000000000000000000000000; | ||||
| 	parameter INITVAL_0F = 320'h00000000000000000000000000000000000000000000000000000000000000000000000000000000; | ||||
| 	parameter INITVAL_10 = 320'h00000000000000000000000000000000000000000000000000000000000000000000000000000000; | ||||
| 	parameter INITVAL_11 = 320'h00000000000000000000000000000000000000000000000000000000000000000000000000000000; | ||||
| 	parameter INITVAL_12 = 320'h00000000000000000000000000000000000000000000000000000000000000000000000000000000; | ||||
| 	parameter INITVAL_13 = 320'h00000000000000000000000000000000000000000000000000000000000000000000000000000000; | ||||
| 	parameter INITVAL_14 = 320'h00000000000000000000000000000000000000000000000000000000000000000000000000000000; | ||||
| 	parameter INITVAL_15 = 320'h00000000000000000000000000000000000000000000000000000000000000000000000000000000; | ||||
| 	parameter INITVAL_16 = 320'h00000000000000000000000000000000000000000000000000000000000000000000000000000000; | ||||
| 	parameter INITVAL_17 = 320'h00000000000000000000000000000000000000000000000000000000000000000000000000000000; | ||||
| 	parameter INITVAL_18 = 320'h00000000000000000000000000000000000000000000000000000000000000000000000000000000; | ||||
| 	parameter INITVAL_19 = 320'h00000000000000000000000000000000000000000000000000000000000000000000000000000000; | ||||
| 	parameter INITVAL_1A = 320'h00000000000000000000000000000000000000000000000000000000000000000000000000000000; | ||||
| 	parameter INITVAL_1B = 320'h00000000000000000000000000000000000000000000000000000000000000000000000000000000; | ||||
| 	parameter INITVAL_1C = 320'h00000000000000000000000000000000000000000000000000000000000000000000000000000000; | ||||
| 	parameter INITVAL_1D = 320'h00000000000000000000000000000000000000000000000000000000000000000000000000000000; | ||||
| 	parameter INITVAL_1E = 320'h00000000000000000000000000000000000000000000000000000000000000000000000000000000; | ||||
| 	parameter INITVAL_1F = 320'h00000000000000000000000000000000000000000000000000000000000000000000000000000000; | ||||
| endmodule | ||||
| 
 | ||||
| `ifndef NO_INCLUDES | ||||
|  |  | |||
|  | @ -178,7 +178,7 @@ struct SynthMachXO2Pass : public ScriptPass | |||
| 	{ | ||||
| 		if (check_label("begin")) | ||||
| 		{ | ||||
| 			run("read_verilog -lib -icells +/machxo2/cells_sim.v"); | ||||
| 			run("read_verilog -lib -icells +/machxo2/cells_sim.v +/machxo2/cells_bb.v"); | ||||
| 			run(stringf("hierarchy -check %s", help_mode ? "-top <top>" : top_opt.c_str())); | ||||
| 		} | ||||
| 
 | ||||
|  |  | |||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue