Problem with TBUF-Placing

Hello everybody!

I have a problem with placing my tbuf-elements. Modules using bus operations are coupled to top-level switching them to a bidirectional bus. See, like this:

---

entity my_struct is port ( ... BD : inout std_logic_vector(15 downto 0); ...); end my_struct;

architecture Behavioral of my_struct is ... signal de, di : std_logic_vector(15 downto 0); ... begin ... my_external_connector : process (de, BD, ext_read) begin if (ext_read = '1') then BD internal_output, CS => ..., ...);

my_toplevel_bus_read_process: process (internal_output, read_condition) begin if (read_condition = '1') then de

Reply to
Thomas Bartzick
Loading thread data ...

Hello Thomas,

When considering TBUF placement issues, it's necessary to understand the placement limitations of the TBUF sets as a whole. How large a set can the device handle? How many total sets of a particular size can it handle? These are limitations that come into play long before the total number of TBUF sites available becomes a factor.

Spartan-II devices can not handle multi-row TBUF placement within a set (Virtex-II can) so the largest possible TBUF set is equal to the number of columns in the device. The TBUF long lines can be segmented in groups of four TBUFs, so the number of sites consumed by each set should be rounded up to a factor of four, then the total number of possible sets calculated. For example, if the set size is greater than half the number of TBUFs on a long line, then the number of possible sets is equal to two times the number of rows (two TBUFs per CLB), even though TBUF site utilization may only be slightly greater than

50%.

If you're unsure of the size of your TBUF sets and the number of sets, see the following Answer record for a perl script that can be used to count them:

formatting link

Regarding constraining TBUF placement, it's often enough to LOC a single TBUF from each set to a site on a particular longline. The rest of the TBUFs in the set are then implicitly LOC'd to the same long line.

One possibility is to allow Map to transform some of the TBUFs to slice logic by using the -tx switch.

Regards, Bret

Reply to
Bret Wade

Hi Bret,

well, thanks for your hints! I could not test them yet, because I have to deal with other problems first, but I will try your solution as soon as possible!

Bye, Thomas.

Reply to
Thomas Bartzick

ElectronDepot website is not affiliated with any of the manufacturers or service providers discussed here. All logos and trade names are the property of their respective owners.