nextpnr/himbaechel/uarch/xilinx
Joris van Zwieten a652a752de himbaechel/xilinx: don't override driven ADDR*L15 on cascaded RAMB36E1
pack_bram unconditionally disconnected ADDRARDADDRL15/ADDRBWRADDRL15
on every RAMB36E1 and tied them to VCC. Tying high is correct for
non-cascaded modes, but in a depth-cascaded pair (RAM_EXTENSION_A/B =
LOWER/UPPER) these pins carry the address MSB that selects between
the two 32K halves, and the port multixform has already wired
ADDRARDADDR[15] onto them. Overriding that with VCC pinned both reads
and writes to the upper half: address bit 15 was simply ignored.

Keep the tie as a fallback for undriven pins only.

Hardware-verified on xc7a100t: a 128K ROM built from cascaded
RAMB36E1 pairs passes a full 32/32 content fingerprint check that
failed before this change.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-07-30 15:47:34 +02:00
..
examples himbaechel: Switch default back to router1 for now 2023-11-17 09:09:59 +01:00
gen xilinx: Add LUT route-thru pips (#1703) 2026-04-20 11:47:38 +02:00
meta@491aefcc15 xilinx: Add MMCM support 2026-02-21 20:17:34 +01:00
CMakeLists.txt xilinx: Use proper xray-db device family subfolder (#1680) 2026-04-01 11:10:07 +02:00
cells.cc himbaechel: Adding a xilinx uarch for xc7 with prjxray 2023-11-14 17:12:09 +01:00
constids.inc xilinx: Derive clock constraints through PLLs 2026-03-24 14:08:37 +01:00
extra_data.h himbaechel: Adding a xilinx uarch for xc7 with prjxray 2023-11-14 17:12:09 +01:00
fasm.cc himbaechel/xilinx: emit RAM_EXTENSION_{A,B}_LOWER for cascaded RAMB36E1 2026-07-30 15:46:21 +02:00
mmcm_tables.cc run clangformat 2026-02-25 11:18:14 +01:00
pack.cc himbaechel/xilinx: don't override driven ADDR*L15 on cascaded RAMB36E1 2026-07-30 15:47:34 +02:00
pack.h xilinx: Better use global clocking resources 2026-04-09 13:37:52 +02:00
pack_carry.cc himbaechel: Adding a xilinx uarch for xc7 with prjxray 2023-11-14 17:12:09 +01:00
pack_clocking.cc xilinx: Use clock router for MMCMs too 2026-04-09 14:22:06 +02:00
pack_dram.cc xilinx: Fix RAM256X1S packing 2026-02-21 20:17:34 +01:00
pack_dsp_xc7.cc xilinx: Fix BRAM placement, clangformat 2024-09-27 16:24:47 +02:00
pack_io.cc fix: handle string DRIVE property in pack_io without crashing (#1668) 2026-03-14 07:01:10 +00:00
pins.cc himbaechel: Adding a xilinx uarch for xc7 with prjxray 2023-11-14 17:12:09 +01:00
pins.h himbaechel: Adding a xilinx uarch for xc7 with prjxray 2023-11-14 17:12:09 +01:00
xdc.cc Improve file open error messages (#1700) 2026-04-19 16:41:47 +02:00
xilinx.cc xilinx: Better model how LUTs pack for static 2026-05-06 11:27:52 +02:00
xilinx.h xilinx: Allow loading post-place JSON for router dev 2026-04-17 10:47:04 +02:00
xilinx_place.cc xilinx: Improve LUT/CARRY->FF packing (#1683) 2026-04-01 11:22:00 +02:00