mirror of
				https://github.com/YosysHQ/yosys
				synced 2025-10-30 19:22:31 +00:00 
			
		
		
		
	Add RAM{32,64}M to abc9_map.v
This commit is contained in:
		
							parent
							
								
									ff2645ce0b
								
							
						
					
					
						commit
						7928eb113c
					
				
					 1 changed files with 78 additions and 0 deletions
				
			
		|  | @ -88,6 +88,84 @@ module RAM128X1D ( | ||||||
|   \$__ABC9_LUT7 dpo (.A(\$DPO ), .S(DPRA), .Y(DPO)); |   \$__ABC9_LUT7 dpo (.A(\$DPO ), .S(DPRA), .Y(DPO)); | ||||||
| endmodule | endmodule | ||||||
| 
 | 
 | ||||||
|  | module RAM32M ( | ||||||
|  |   output [1:0] DOA, | ||||||
|  |   output [1:0] DOB, | ||||||
|  |   output [1:0] DOC, | ||||||
|  |   output [1:0] DOD, | ||||||
|  |   (* techmap_autopurge *) input [4:0] ADDRA, | ||||||
|  |   (* techmap_autopurge *) input [4:0] ADDRB, | ||||||
|  |   (* techmap_autopurge *) input [4:0] ADDRC, | ||||||
|  |   (* techmap_autopurge *) input [4:0] ADDRD, | ||||||
|  |   (* techmap_autopurge *) input [1:0] DIA, | ||||||
|  |   (* techmap_autopurge *) input [1:0] DIB, | ||||||
|  |   (* techmap_autopurge *) input [1:0] DIC, | ||||||
|  |   (* techmap_autopurge *) input [1:0] DID, | ||||||
|  |   (* techmap_autopurge *) input WCLK, | ||||||
|  |   (* techmap_autopurge *) input WE | ||||||
|  | ); | ||||||
|  |   parameter [63:0] INIT_A = 64'h0000000000000000; | ||||||
|  |   parameter [63:0] INIT_B = 64'h0000000000000000; | ||||||
|  |   parameter [63:0] INIT_C = 64'h0000000000000000; | ||||||
|  |   parameter [63:0] INIT_D = 64'h0000000000000000; | ||||||
|  |   parameter [0:0] IS_WCLK_INVERTED = 1'b0; | ||||||
|  |   wire [1:0] \$DOA , \$DOB , \$DOC , \$DOD ; | ||||||
|  |   RAM32M #( | ||||||
|  |     .INIT_A(INIT_A), .INIT_B(INIT_B), .INIT_C(INIT_C), .INIT_D(INIT_D), | ||||||
|  |     .IS_WCLK_INVERTED(IS_WCLK_INVERTED) | ||||||
|  |   ) _TECHMAP_REPLACE_ ( | ||||||
|  |     .DOA(\$DOA ), .DOB(\$DOB ), .DOC(\$DOC ), .DOD(\$DOD ), | ||||||
|  |     .WCLK(WCLK), .WE(WE), | ||||||
|  |     .ADDRA(ADDRA), .ADDRB(ADDRB), .ADDRC(ADDRC), .ADDRD(ADDRD), | ||||||
|  |     .DIA(DIA), .DIB(DIB), .DIC(DIC), .DID(DID) | ||||||
|  |   ); | ||||||
|  |   \$__ABC9_LUT6 doa0 (.A(\$DOA [0]), .S({1'b1, ADDRA}), .Y(DOA[0])); | ||||||
|  |   \$__ABC9_LUT6 doa1 (.A(\$DOA [1]), .S({1'b1, ADDRA}), .Y(DOA[1])); | ||||||
|  |   \$__ABC9_LUT6 dob0 (.A(\$DOB [0]), .S({1'b1, ADDRB}), .Y(DOB[0])); | ||||||
|  |   \$__ABC9_LUT6 dob1 (.A(\$DOB [1]), .S({1'b1, ADDRB}), .Y(DOB[1])); | ||||||
|  |   \$__ABC9_LUT6 doc0 (.A(\$DOC [0]), .S({1'b1, ADDRC}), .Y(DOC[0])); | ||||||
|  |   \$__ABC9_LUT6 doc1 (.A(\$DOC [1]), .S({1'b1, ADDRC}), .Y(DOC[1])); | ||||||
|  |   \$__ABC9_LUT6 dod0 (.A(\$DOD [0]), .S({1'b1, ADDRD}), .Y(DOD[0])); | ||||||
|  |   \$__ABC9_LUT6 dod1 (.A(\$DOD [1]), .S({1'b1, ADDRD}), .Y(DOD[1])); | ||||||
|  | endmodule | ||||||
|  | 
 | ||||||
|  | module RAM64M ( | ||||||
|  |   output DOA, | ||||||
|  |   output DOB, | ||||||
|  |   output DOC, | ||||||
|  |   output DOD, | ||||||
|  |   (* techmap_autopurge *) input [5:0] ADDRA, | ||||||
|  |   (* techmap_autopurge *) input [5:0] ADDRB, | ||||||
|  |   (* techmap_autopurge *) input [5:0] ADDRC, | ||||||
|  |   (* techmap_autopurge *) input [5:0] ADDRD, | ||||||
|  |   (* techmap_autopurge *) input DIA, | ||||||
|  |   (* techmap_autopurge *) input DIB, | ||||||
|  |   (* techmap_autopurge *) input DIC, | ||||||
|  |   (* techmap_autopurge *) input DID, | ||||||
|  |   (* techmap_autopurge *) input WCLK, | ||||||
|  |   (* techmap_autopurge *) input WE | ||||||
|  | ); | ||||||
|  |   parameter [63:0] INIT_A = 64'h0000000000000000; | ||||||
|  |   parameter [63:0] INIT_B = 64'h0000000000000000; | ||||||
|  |   parameter [63:0] INIT_C = 64'h0000000000000000; | ||||||
|  |   parameter [63:0] INIT_D = 64'h0000000000000000; | ||||||
|  |   parameter [0:0] IS_WCLK_INVERTED = 1'b0; | ||||||
|  |   wire \$DOA , \$DOB , \$DOC , \$DOD ; | ||||||
|  |   RAM64M #( | ||||||
|  |     .INIT_A(INIT_A), .INIT_B(INIT_B), .INIT_C(INIT_C), .INIT_D(INIT_D), | ||||||
|  |     .IS_WCLK_INVERTED(IS_WCLK_INVERTED) | ||||||
|  |   ) _TECHMAP_REPLACE_ ( | ||||||
|  |     .DOA(\$DOA ), .DOB(\$DOB ), .DOC(\$DOC ), .DOD(\$DOD ), | ||||||
|  |     .WCLK(WCLK), .WE(WE), | ||||||
|  |     .ADDRA(ADDRA), .ADDRB(ADDRB), .ADDRC(ADDRC), .ADDRD(ADDRD), | ||||||
|  |     .DIA(DIA), .DIB(DIB), .DIC(DIC), .DID(DID) | ||||||
|  |   ); | ||||||
|  |   \$__ABC9_LUT6 doa (.A(\$DOA ), .S(ADDRA), .Y(DOA)); | ||||||
|  |   \$__ABC9_LUT6 dob (.A(\$DOB ), .S(ADDRB), .Y(DOB)); | ||||||
|  |   \$__ABC9_LUT6 doc (.A(\$DOC ), .S(ADDRC), .Y(DOC)); | ||||||
|  |   \$__ABC9_LUT6 dod (.A(\$DOD ), .S(ADDRD), .Y(DOD)); | ||||||
|  | endmodule | ||||||
|  | 
 | ||||||
| module SRL16E ( | module SRL16E ( | ||||||
|   output Q, |   output Q, | ||||||
|   (* techmap_autopurge *) input A0, A1, A2, A3, CE, CLK, D |   (* techmap_autopurge *) input A0, A1, A2, A3, CE, CLK, D | ||||||
|  |  | ||||||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue