<azonenberg> Are LUTRAMs particularly expensive or something from a transistor count / routing perspective?
<azonenberg> Curious why none of the efinix parts seem to have them
<azonenberg> (I just tried building one of my modules originally written for 7 series to Trion/Titanium and it's getting much worse synthesis results because some combinatorial-read register files got synthesized as DFFs since they don't map to BRAM)
galibert[m] has joined #prjcombine
<galibert[m]> iirc the mlabs on the cyclone are 30-50% bigger than the non-ram-able labs
<_whitenotifier-8> [prjunnamed/prjcombine] wanda-phi pushed 1 commit to main [+24/-0/±28] https://github.com/prjunnamed/prjcombine/compare/6d7fb6a66c5d...76fae809a351
<_whitenotifier-8> [prjunnamed/prjcombine] wanda-phi 76fae80 - ecp: add ECP2.
<_whitenotifier-8> [prjunnamed/prjcombine] github-actions[bot] pushed 1 commit to gh-pages [+19/-0/±10] https://github.com/prjunnamed/prjcombine/compare/9b175f690531...06b09caf86d0
<_whitenotifier-8> [prjunnamed/prjcombine] wanda-phi 06b09ca - Deploying to gh-pages from @ prjunnamed/prjcombine@76fae809a3515aa098afd4ac2010327084f498d9 🚀
Wanda[cis] has joined #prjcombine
<Wanda[cis]> azonenberg: from routing perspective, they're pretty much identical to plain LUT (maybe a few more inputs, maybe not); however, LUTRAM does have significant complexity
<Wanda[cis]> you need memory cells which are writable by both the configuration logic and a second write path; you need address decoders; you need write pulse generators
<Wanda[cis]> and now your configuration memory becomes mutable, so if you have any kind of configuration ECC or readback CRC, you need to make a mechanism to mask off LUTRAM contents so LUTRAM changes don't register as configuration damage
<Wanda[cis]> further, nobody does only single-port LUTRAM; the usual thing to do is grab write address from one LUT within the logic block in particular and broadcast it over the block or something; you need to carefully design your logic block structure so that composes well with its other features
<Wanda[cis]> like, look at the Virtex 7 SLICE and its mux paths; it's a lot of careful design to create a block with like 4 different LUTRAM depth/width combinations
<Wanda[cis]> now, all of that may not seem like much logic, but the SLICE is already a pretty thin block of logic, so it adds a significant percentage
<Wanda[cis]> there's a reason Xilinx only makes like 25% of their LUTs into LUTRAMs
<azonenberg> Wanda[cis]: yeah i figured you wouldnt want to do *all* of your luts (although i assumed it was routing limitations not logic)
<azonenberg> more of a question of *none*
Wanda[cis] has quit [Quit: Bridge terminating on SIGTERM]
galibert[m] has quit [Quit: Bridge terminating on SIGTERM]
whitequark[cis] has quit [Quit: Bridge terminating on SIGTERM]
_catircservices has quit [Quit: Bridge terminating on SIGTERM]
_catircservices has joined #prjcombine