mirror of
				https://github.com/YosysHQ/yosys
				synced 2025-10-30 11:12:29 +00:00 
			
		
		
		
	
		
			
				
	
	
		
			162 lines
		
	
	
	
		
			2.1 KiB
		
	
	
	
		
			Text
		
	
	
	
	
	
			
		
		
	
	
			162 lines
		
	
	
	
		
			2.1 KiB
		
	
	
	
		
			Text
		
	
	
	
	
	
| # LUT RAMs for Ultrascale.
 | |
| # The corresponding mapping file is lutrams_xc5v_map.v
 | |
| 
 | |
| # Single-port RAMs.
 | |
| 
 | |
| ram distributed $__XILINX_LUTRAM_SP_ {
 | |
| 	cost 16;
 | |
| 	widthscale;
 | |
| 	option "ABITS" 5 {
 | |
| 		abits 5;
 | |
| 		widths 16 global;
 | |
| 	}
 | |
| 	option "ABITS" 6 {
 | |
| 		abits 6;
 | |
| 		widths 8 global;
 | |
| 	}
 | |
| 	option "ABITS" 7 {
 | |
| 		abits 7;
 | |
| 		widths 4 global;
 | |
| 	}
 | |
| 	option "ABITS" 8 {
 | |
| 		abits 8;
 | |
| 		widths 2 global;
 | |
| 	}
 | |
| 	option "ABITS" 16 {
 | |
| 		abits 16;
 | |
| 		widths 1 global;
 | |
| 	}
 | |
| 	init any;
 | |
| 	prune_rom;
 | |
| 	port arsw "RW" {
 | |
| 		clock posedge;
 | |
| 	}
 | |
| }
 | |
| 
 | |
| # Dual-port RAMs.
 | |
| 
 | |
| ram distributed $__XILINX_LUTRAM_DP_ {
 | |
| 	cost 16;
 | |
| 	widthscale;
 | |
| 	option "ABITS" 5 {
 | |
| 		abits 5;
 | |
| 		widths 8 global;
 | |
| 	}
 | |
| 	option "ABITS" 6 {
 | |
| 		abits 6;
 | |
| 		widths 4 global;
 | |
| 	}
 | |
| 	option "ABITS" 7 {
 | |
| 		abits 7;
 | |
| 		widths 2 global;
 | |
| 	}
 | |
| 	option "ABITS" 8 {
 | |
| 		abits 8;
 | |
| 		widths 1 global;
 | |
| 	}
 | |
| 	init any;
 | |
| 	prune_rom;
 | |
| 	port arsw "RW" {
 | |
| 		clock posedge;
 | |
| 	}
 | |
| 	port ar "R" {
 | |
| 	}
 | |
| }
 | |
| 
 | |
| # Quad-port RAMs.
 | |
| 
 | |
| ram distributed $__XILINX_LUTRAM_QP_ {
 | |
| 	cost 16;
 | |
| 	widthscale;
 | |
| 	option "ABITS" 5 {
 | |
| 		abits 5;
 | |
| 		widths 4 global;
 | |
| 	}
 | |
| 	option "ABITS" 6 {
 | |
| 		abits 6;
 | |
| 		widths 2 global;
 | |
| 	}
 | |
| 	init any;
 | |
| 	prune_rom;
 | |
| 	port arsw "RW" {
 | |
| 		clock posedge;
 | |
| 	}
 | |
| 	port ar "R0" "R1" "R2" {
 | |
| 	}
 | |
| }
 | |
| 
 | |
| # Octal-port RAMs.
 | |
| 
 | |
| ram distributed $__XILINX_LUTRAM_OP_ {
 | |
| 	cost 16;
 | |
| 	widthscale;
 | |
| 	option "ABITS" 5 {
 | |
| 		abits 5;
 | |
| 		widths 2 global;
 | |
| 	}
 | |
| 	option "ABITS" 6 {
 | |
| 		abits 6;
 | |
| 		widths 1 global;
 | |
| 	}
 | |
| 	init any;
 | |
| 	prune_rom;
 | |
| 	port arsw "RW" {
 | |
| 		clock posedge;
 | |
| 	}
 | |
| 	port ar "R0" "R1" "R2" "R3" "R4" "R5" "R6" {
 | |
| 	}
 | |
| }
 | |
| 
 | |
| # Simple dual port RAMs.
 | |
| 
 | |
| ram distributed $__XILINX_LUTRAM_SDP_ {
 | |
| 	cost 16;
 | |
| 	widthscale;
 | |
| 	option "ABITS" 5 {
 | |
| 		abits 5;
 | |
| 		widths 14 global;
 | |
| 	}
 | |
| 	option "ABITS" 6 {
 | |
| 		abits 6;
 | |
| 		widths 7 global;
 | |
| 	}
 | |
| 	init any;
 | |
| 	prune_rom;
 | |
| 	port sw "W" {
 | |
| 		clock posedge;
 | |
| 	}
 | |
| 	port ar "R" {
 | |
| 	}
 | |
| }
 | |
| 
 | |
| # Wide-read RAM.
 | |
| 
 | |
| ram distributed $__XILINX_LUTRAM_64X8SW_ {
 | |
| 	cost 16;
 | |
| 	abits 9;
 | |
| 	widths 1 2 4 8 per_port;
 | |
| 	init any;
 | |
| 	prune_rom;
 | |
| 	port arsw "RW" {
 | |
| 		width rd 8 wr 1;
 | |
| 		clock posedge;
 | |
| 	}
 | |
| }
 | |
| 
 | |
| # Wide-write RAM.
 | |
| 
 | |
| ram distributed $__XILINX_LUTRAM_32X16DR8_ {
 | |
| 	cost 16;
 | |
| 	widthscale;
 | |
| 	abits 6;
 | |
| 	widths 7 14 per_port;
 | |
| 	# Yes, no initialization capability.
 | |
| 	prune_rom;
 | |
| 	port sw "W" {
 | |
| 		width 14;
 | |
| 		clock posedge;
 | |
| 	}
 | |
| 	port ar "R" {
 | |
| 		width 7;
 | |
| 	}
 | |
| }
 |