Replies: 1 comment 4 replies
-
Yes, you can traverse all of the leaf cells in a netlist and count up the number of instances of each primitive type to get an estimate of the utilization. As for logic LUTs, multiple smaller instances (LUT2, LUT3, LUT4, etc) can be placed into the same LUT6 BEL site if they share enough inputs to fit within the LUT6 (the A6 input is tied to VCC when placing multiple LUTs into the BEL site). For example, a LUT2 and a LUT3 could be placed into the same LUT6, even if their inputs don't overlap, however, two LUT3s that would require the sharing of at least one input to make a valid placement. You can refer to the CLB user Guides for specific rules around placement (Versal: https://docs.amd.com/r/en-US/am005-versal-clb/IMUX-Register, UltraScale+: https://docs.amd.com/v/u/en-US/ug574-ultrascale-clb). Ultimately, the packing of LUTs into BEL sites occurs during placement, so you would have to devise a search algorithm that could group LUTs based on their packing/placement criteria. If you would like to get specific, feel free to share a design that we can look at and compare/contrast with what Vivado reports. |
Beta Was this translation helpful? Give feedback.
-
Hello RW team,
I'm trying to get the utilization of each kind of resource from a synthesized netlist in RapidWright. To do this, I traverse all leaf EDIFCellInsts and count the number of instances corresponding to each kind of resource? For example, I count the total number of cell instances of LUT2, LUT3, LUT4, LUT5 and LUT6 as the number of used LUTL(LUT as Logic). I found that this method works well for most resource types including DSP, BRAM, FF and CARRY, except for LUTL. The number of LUTL estimated by this method is significantly larger than the number reported by Vivado? I guess that this is because some smaller LUTs, like LUT4, LUT3 or LUT2, may be packed into a single LUT6 by Vivado. I would like to know what are the rules Vivado follows for packing smaller LUTs into LUT6. Additionally, I also want to know if it's possible to estimate more accurate number of used LUTL from the synthesized netlist in RapidWright according to these rules?
Beta Was this translation helpful? Give feedback.
All reactions