mirror of
				https://github.com/YosysHQ/yosys
				synced 2025-10-31 19:52:31 +00:00 
			
		
		
		
	
		
			
				
	
	
		
			345 lines
		
	
	
		
			No EOL
		
	
	
		
			8.2 KiB
		
	
	
	
		
			Verilog
		
	
	
	
	
	
			
		
		
	
	
			345 lines
		
	
	
		
			No EOL
		
	
	
		
			8.2 KiB
		
	
	
	
		
			Verilog
		
	
	
	
	
	
| 
 | |
| module $__NX_RFB_U_DPREG_ (
 | |
|   input PORT_W_CLK,
 | |
|   input [6-1:0] PORT_W_ADDR,
 | |
|   input [6-1:0] PORT_R_ADDR,
 | |
|   input [36-1:0] PORT_W_WR_DATA,
 | |
|   input PORT_W_WR_EN,
 | |
|   output [36-1:0] PORT_R_RD_DATA
 | |
| );
 | |
|   parameter INIT = 1152'bx;
 | |
|   parameter PORT_W_CLK_POL = 1'b1;
 | |
|   parameter OPTION_MODE = 0;
 | |
|   parameter WIDTH = 18;
 | |
|   parameter BITS_USED = 0;
 | |
|   localparam BLOCK_NUM  = OPTION_MODE == 2 ? 64 : 32;
 | |
|   localparam BLOCK_SIZE = OPTION_MODE == 3 ? 36 : 18;
 | |
| 
 | |
| `include "rf_init.vh"
 | |
| 
 | |
|   // mode 0 - DPREG
 | |
|   // mode 2 - NX_XRFB_64x18
 | |
|   // mode 3 - NX_XRFB_32x36
 | |
|   NX_RFB_U #(
 | |
|     .mode(OPTION_MODE),
 | |
|     .mem_ctxt($sformatf("%s",rf_init_to_string(INIT, BLOCK_NUM, BLOCK_SIZE))),
 | |
|     .wck_edge(PORT_W_CLK_POL == 1 ? 1'b0 : 1'b1)
 | |
|   ) _TECHMAP_REPLACE_ (
 | |
|     .WCK(PORT_W_CLK),
 | |
|     .I1(PORT_W_WR_DATA[0]),
 | |
|     .I2(PORT_W_WR_DATA[1]),
 | |
|     .I3(PORT_W_WR_DATA[2]),
 | |
|     .I4(PORT_W_WR_DATA[3]),
 | |
|     .I5(PORT_W_WR_DATA[4]),
 | |
|     .I6(PORT_W_WR_DATA[5]),
 | |
|     .I7(PORT_W_WR_DATA[6]),
 | |
|     .I8(PORT_W_WR_DATA[7]),
 | |
|     .I9(PORT_W_WR_DATA[8]),
 | |
|     .I10(PORT_W_WR_DATA[9]),
 | |
|     .I11(PORT_W_WR_DATA[10]),
 | |
|     .I12(PORT_W_WR_DATA[11]),
 | |
|     .I13(PORT_W_WR_DATA[12]),
 | |
|     .I14(PORT_W_WR_DATA[13]),
 | |
|     .I15(PORT_W_WR_DATA[14]),
 | |
|     .I16(PORT_W_WR_DATA[15]),
 | |
|     .I17(PORT_W_WR_DATA[16]),
 | |
|     .I18(PORT_W_WR_DATA[17]),
 | |
|     .I19(PORT_W_WR_DATA[18]),
 | |
|     .I20(PORT_W_WR_DATA[19]),
 | |
|     .I21(PORT_W_WR_DATA[20]),
 | |
|     .I22(PORT_W_WR_DATA[21]),
 | |
|     .I23(PORT_W_WR_DATA[22]),
 | |
|     .I24(PORT_W_WR_DATA[23]),
 | |
|     .I25(PORT_W_WR_DATA[24]),
 | |
|     .I26(PORT_W_WR_DATA[25]),
 | |
|     .I27(PORT_W_WR_DATA[26]),
 | |
|     .I28(PORT_W_WR_DATA[27]),
 | |
|     .I29(PORT_W_WR_DATA[28]),
 | |
|     .I30(PORT_W_WR_DATA[29]),
 | |
|     .I31(PORT_W_WR_DATA[30]),
 | |
|     .I32(PORT_W_WR_DATA[31]),
 | |
|     .I33(PORT_W_WR_DATA[32]),
 | |
|     .I34(PORT_W_WR_DATA[33]),
 | |
|     .I35(PORT_W_WR_DATA[34]),
 | |
|     .I36(PORT_W_WR_DATA[35]),
 | |
|     .O1(PORT_R_RD_DATA[0]),
 | |
|     .O2(PORT_R_RD_DATA[1]),
 | |
|     .O3(PORT_R_RD_DATA[2]),
 | |
|     .O4(PORT_R_RD_DATA[3]),
 | |
|     .O5(PORT_R_RD_DATA[4]),
 | |
|     .O6(PORT_R_RD_DATA[5]),
 | |
|     .O7(PORT_R_RD_DATA[6]),
 | |
|     .O8(PORT_R_RD_DATA[7]),
 | |
|     .O9(PORT_R_RD_DATA[8]),
 | |
|     .O10(PORT_R_RD_DATA[9]),
 | |
|     .O11(PORT_R_RD_DATA[10]),
 | |
|     .O12(PORT_R_RD_DATA[11]),
 | |
|     .O13(PORT_R_RD_DATA[12]),
 | |
|     .O14(PORT_R_RD_DATA[13]),
 | |
|     .O15(PORT_R_RD_DATA[14]),
 | |
|     .O16(PORT_R_RD_DATA[15]),
 | |
|     .O17(PORT_R_RD_DATA[16]),
 | |
|     .O18(PORT_R_RD_DATA[17]),
 | |
|     .O19(PORT_R_RD_DATA[18]),
 | |
|     .O20(PORT_R_RD_DATA[19]),
 | |
|     .O21(PORT_R_RD_DATA[20]),
 | |
|     .O22(PORT_R_RD_DATA[21]),
 | |
|     .O23(PORT_R_RD_DATA[22]),
 | |
|     .O24(PORT_R_RD_DATA[23]),
 | |
|     .O25(PORT_R_RD_DATA[24]),
 | |
|     .O26(PORT_R_RD_DATA[25]),
 | |
|     .O27(PORT_R_RD_DATA[26]),
 | |
|     .O28(PORT_R_RD_DATA[27]),
 | |
|     .O29(PORT_R_RD_DATA[28]),
 | |
|     .O30(PORT_R_RD_DATA[29]),
 | |
|     .O31(PORT_R_RD_DATA[30]),
 | |
|     .O32(PORT_R_RD_DATA[31]),
 | |
|     .O33(PORT_R_RD_DATA[32]),
 | |
|     .O34(PORT_R_RD_DATA[33]),
 | |
|     .O35(PORT_R_RD_DATA[34]),
 | |
|     .O36(PORT_R_RD_DATA[35]),
 | |
|     .RA1(PORT_R_ADDR[0]),
 | |
|     .RA2(PORT_R_ADDR[1]),
 | |
|     .RA3(PORT_R_ADDR[2]),
 | |
|     .RA4(PORT_R_ADDR[3]),
 | |
|     .RA5(PORT_R_ADDR[4]),
 | |
|     .RA6(PORT_R_ADDR[5]),
 | |
|     .RA7(),
 | |
|     .RA8(),
 | |
|     .RA9(),
 | |
|     .RA10(),
 | |
|     .WA1(PORT_W_ADDR[0]),
 | |
|     .WA2(PORT_W_ADDR[1]),
 | |
|     .WA3(PORT_W_ADDR[2]),
 | |
|     .WA4(PORT_W_ADDR[3]),
 | |
|     .WA5(PORT_W_ADDR[4]),
 | |
|     .WA6(PORT_W_ADDR[5]),
 | |
|     .WE(PORT_W_WR_EN),
 | |
|     .WEA(1'b0)
 | |
|   );
 | |
| endmodule
 | |
| 
 | |
| module $__NX_RFB_U_SPREG_ (
 | |
|   input PORT_RW_CLK,
 | |
|   input [4:0] PORT_RW_ADDR,
 | |
|   input [17:0] PORT_RW_WR_DATA,
 | |
|   input PORT_RW_WR_EN,
 | |
|   output [17:0] PORT_RW_RD_DATA
 | |
| );
 | |
|   parameter INIT = 576'bx;
 | |
|   parameter PORT_RW_CLK_POL = 1'b1;
 | |
|   parameter BITS_USED = 0;
 | |
| `include "rf_init.vh"
 | |
| 
 | |
|   NX_RFB_U #(
 | |
|     .mode(1),
 | |
|     .mem_ctxt($sformatf("%s",rf_init_to_string(INIT, 32, 18))),
 | |
|     .wck_edge(PORT_RW_CLK_POL == 1 ? 1'b0 : 1'b1)
 | |
|   ) _TECHMAP_REPLACE_ (
 | |
|     .WCK(PORT_RW_CLK),
 | |
|     .I1(PORT_RW_WR_DATA[0]),
 | |
|     .I2(PORT_RW_WR_DATA[1]),
 | |
|     .I3(PORT_RW_WR_DATA[2]),
 | |
|     .I4(PORT_RW_WR_DATA[3]),
 | |
|     .I5(PORT_RW_WR_DATA[4]),
 | |
|     .I6(PORT_RW_WR_DATA[5]),
 | |
|     .I7(PORT_RW_WR_DATA[6]),
 | |
|     .I8(PORT_RW_WR_DATA[7]),
 | |
|     .I9(PORT_RW_WR_DATA[8]),
 | |
|     .I10(PORT_RW_WR_DATA[9]),
 | |
|     .I11(PORT_RW_WR_DATA[10]),
 | |
|     .I12(PORT_RW_WR_DATA[11]),
 | |
|     .I13(PORT_RW_WR_DATA[12]),
 | |
|     .I14(PORT_RW_WR_DATA[13]),
 | |
|     .I15(PORT_RW_WR_DATA[14]),
 | |
|     .I16(PORT_RW_WR_DATA[15]),
 | |
|     .I17(PORT_RW_WR_DATA[16]),
 | |
|     .I18(PORT_RW_WR_DATA[17]),
 | |
|     .I19(),
 | |
|     .I20(),
 | |
|     .I21(),
 | |
|     .I22(),
 | |
|     .I23(),
 | |
|     .I24(),
 | |
|     .I25(),
 | |
|     .I26(),
 | |
|     .I27(),
 | |
|     .I28(),
 | |
|     .I29(),
 | |
|     .I30(),
 | |
|     .I31(),
 | |
|     .I32(),
 | |
|     .I33(),
 | |
|     .I34(),
 | |
|     .I35(),
 | |
|     .I36(),
 | |
|     .O1(PORT_RW_RD_DATA[0]),
 | |
|     .O2(PORT_RW_RD_DATA[1]),
 | |
|     .O3(PORT_RW_RD_DATA[2]),
 | |
|     .O4(PORT_RW_RD_DATA[3]),
 | |
|     .O5(PORT_RW_RD_DATA[4]),
 | |
|     .O6(PORT_RW_RD_DATA[5]),
 | |
|     .O7(PORT_RW_RD_DATA[6]),
 | |
|     .O8(PORT_RW_RD_DATA[7]),
 | |
|     .O9(PORT_RW_RD_DATA[8]),
 | |
|     .O10(PORT_RW_RD_DATA[9]),
 | |
|     .O11(PORT_RW_RD_DATA[10]),
 | |
|     .O12(PORT_RW_RD_DATA[11]),
 | |
|     .O13(PORT_RW_RD_DATA[12]),
 | |
|     .O14(PORT_RW_RD_DATA[13]),
 | |
|     .O15(PORT_RW_RD_DATA[14]),
 | |
|     .O16(PORT_RW_RD_DATA[15]),
 | |
|     .O17(PORT_RW_RD_DATA[16]),
 | |
|     .O18(PORT_RW_RD_DATA[17]),
 | |
|     .O19(),
 | |
|     .O20(),
 | |
|     .O21(),
 | |
|     .O22(),
 | |
|     .O23(),
 | |
|     .O24(),
 | |
|     .O25(),
 | |
|     .O26(),
 | |
|     .O27(),
 | |
|     .O28(),
 | |
|     .O29(),
 | |
|     .O30(),
 | |
|     .O31(),
 | |
|     .O32(),
 | |
|     .O33(),
 | |
|     .O34(),
 | |
|     .O35(),
 | |
|     .O36(),
 | |
|     .RA1(),
 | |
|     .RA2(),
 | |
|     .RA3(),
 | |
|     .RA4(),
 | |
|     .RA5(),
 | |
|     .RA6(),
 | |
|     .RA7(),
 | |
|     .RA8(),
 | |
|     .RA9(),
 | |
|     .RA10(),
 | |
|     .WA1(PORT_RW_ADDR[0]),
 | |
|     .WA2(PORT_RW_ADDR[1]),
 | |
|     .WA3(PORT_RW_ADDR[2]),
 | |
|     .WA4(PORT_RW_ADDR[3]),
 | |
|     .WA5(PORT_RW_ADDR[4]),
 | |
|     .WA6(),
 | |
|     .WE(PORT_RW_WR_EN),
 | |
|     .WEA(1'b0)
 | |
|   );
 | |
| endmodule
 | |
| 
 | |
| module $__NX_XRFB_2R_1W_ (
 | |
|   input PORT_W_CLK,
 | |
|   input [4:0] PORT_W_ADDR,
 | |
|   input [4:0] PORT_A_ADDR,
 | |
|   input [4:0] PORT_B_ADDR,
 | |
|   input [17:0] PORT_W_WR_DATA,
 | |
|   input PORT_W_WR_EN,
 | |
|   output [17:0] PORT_A_RD_DATA,
 | |
|   output [17:0] PORT_B_RD_DATA
 | |
| );
 | |
|   parameter INIT = 576'bx;
 | |
|   parameter PORT_W_CLK_POL = 1'b1;
 | |
|   parameter BITS_USED = 0;
 | |
| `include "rf_init.vh"
 | |
| 
 | |
|   NX_RFB_U #(
 | |
|     .mode(4),
 | |
|     .mem_ctxt($sformatf("%s",rf_init_to_string(INIT, 32, 18))),
 | |
|     .wck_edge(PORT_W_CLK_POL == 1 ? 1'b0 : 1'b1)
 | |
|   ) _TECHMAP_REPLACE_ (
 | |
|     .WCK(PORT_W_CLK),
 | |
|     .I1(PORT_W_WR_DATA[0]),
 | |
|     .I2(PORT_W_WR_DATA[1]),
 | |
|     .I3(PORT_W_WR_DATA[2]),
 | |
|     .I4(PORT_W_WR_DATA[3]),
 | |
|     .I5(PORT_W_WR_DATA[4]),
 | |
|     .I6(PORT_W_WR_DATA[5]),
 | |
|     .I7(PORT_W_WR_DATA[6]),
 | |
|     .I8(PORT_W_WR_DATA[7]),
 | |
|     .I9(PORT_W_WR_DATA[8]),
 | |
|     .I10(PORT_W_WR_DATA[9]),
 | |
|     .I11(PORT_W_WR_DATA[10]),
 | |
|     .I12(PORT_W_WR_DATA[11]),
 | |
|     .I13(PORT_W_WR_DATA[12]),
 | |
|     .I14(PORT_W_WR_DATA[13]),
 | |
|     .I15(PORT_W_WR_DATA[14]),
 | |
|     .I16(PORT_W_WR_DATA[15]),
 | |
|     .I17(PORT_W_WR_DATA[16]),
 | |
|     .I18(PORT_W_WR_DATA[17]),
 | |
|     .I19(),
 | |
|     .I20(),
 | |
|     .I21(),
 | |
|     .I22(),
 | |
|     .I23(),
 | |
|     .I24(),
 | |
|     .I25(),
 | |
|     .I26(),
 | |
|     .I27(),
 | |
|     .I28(),
 | |
|     .I29(),
 | |
|     .I30(),
 | |
|     .I31(),
 | |
|     .I32(),
 | |
|     .I33(),
 | |
|     .I34(),
 | |
|     .I35(),
 | |
|     .I36(),
 | |
|     .O1(PORT_A_RD_DATA[0]),
 | |
|     .O2(PORT_A_RD_DATA[1]),
 | |
|     .O3(PORT_A_RD_DATA[2]),
 | |
|     .O4(PORT_A_RD_DATA[3]),
 | |
|     .O5(PORT_A_RD_DATA[4]),
 | |
|     .O6(PORT_A_RD_DATA[5]),
 | |
|     .O7(PORT_A_RD_DATA[6]),
 | |
|     .O8(PORT_A_RD_DATA[7]),
 | |
|     .O9(PORT_A_RD_DATA[8]),
 | |
|     .O10(PORT_A_RD_DATA[9]),
 | |
|     .O11(PORT_A_RD_DATA[10]),
 | |
|     .O12(PORT_A_RD_DATA[11]),
 | |
|     .O13(PORT_A_RD_DATA[12]),
 | |
|     .O14(PORT_A_RD_DATA[13]),
 | |
|     .O15(PORT_A_RD_DATA[14]),
 | |
|     .O16(PORT_A_RD_DATA[15]),
 | |
|     .O17(PORT_A_RD_DATA[16]),
 | |
|     .O18(PORT_A_RD_DATA[17]),
 | |
|     .O19(PORT_B_RD_DATA[0]),
 | |
|     .O20(PORT_B_RD_DATA[1]),
 | |
|     .O21(PORT_B_RD_DATA[2]),
 | |
|     .O22(PORT_B_RD_DATA[3]),
 | |
|     .O23(PORT_B_RD_DATA[4]),
 | |
|     .O24(PORT_B_RD_DATA[5]),
 | |
|     .O25(PORT_B_RD_DATA[6]),
 | |
|     .O26(PORT_B_RD_DATA[7]),
 | |
|     .O27(PORT_B_RD_DATA[8]),
 | |
|     .O28(PORT_B_RD_DATA[9]),
 | |
|     .O29(PORT_B_RD_DATA[10]),
 | |
|     .O30(PORT_B_RD_DATA[11]),
 | |
|     .O31(PORT_B_RD_DATA[12]),
 | |
|     .O32(PORT_B_RD_DATA[13]),
 | |
|     .O33(PORT_B_RD_DATA[14]),
 | |
|     .O34(PORT_B_RD_DATA[15]),
 | |
|     .O35(PORT_B_RD_DATA[16]),
 | |
|     .O36(PORT_B_RD_DATA[17]),
 | |
|     .RA1(PORT_A_ADDR[0]),
 | |
|     .RA2(PORT_A_ADDR[1]),
 | |
|     .RA3(PORT_A_ADDR[2]),
 | |
|     .RA4(PORT_A_ADDR[3]),
 | |
|     .RA5(PORT_A_ADDR[4]),
 | |
|     .RA6(PORT_B_ADDR[0]),
 | |
|     .RA7(PORT_B_ADDR[1]),
 | |
|     .RA8(PORT_B_ADDR[2]),
 | |
|     .RA9(PORT_B_ADDR[3]),
 | |
|     .RA10(PORT_B_ADDR[4]),
 | |
|     .WA1(PORT_W_ADDR[0]),
 | |
|     .WA2(PORT_W_ADDR[1]),
 | |
|     .WA3(PORT_W_ADDR[2]),
 | |
|     .WA4(PORT_W_ADDR[3]),
 | |
|     .WA5(PORT_W_ADDR[4]),
 | |
|     .WA6(),
 | |
|     .WE(PORT_W_WR_EN),
 | |
|     .WEA(1'b0)
 | |
|   );
 | |
| endmodule |