mirror of
https://github.com/YosysHQ/yosys
synced 2025-10-24 08:24:35 +00:00
xilinx: Use memory_libmap pass.
This commit is contained in:
parent
e4d811561c
commit
3b2f95953c
40 changed files with 4540 additions and 2315 deletions
162
techlibs/xilinx/lutrams_xcu.txt
Normal file
162
techlibs/xilinx/lutrams_xcu.txt
Normal file
|
|
@ -0,0 +1,162 @@
|
|||
# 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;
|
||||
}
|
||||
}
|
||||
Loading…
Add table
Add a link
Reference in a new issue