mirror of https://github.com/YosysHQ/yosys.git
163 lines
2.1 KiB
Plaintext
163 lines
2.1 KiB
Plaintext
# 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;
|
|
}
|
|
}
|