Previous

How to Interleave Buses

This procedure explains how to interleave buses. The Floorplan Distribute Options command makes interleaving easy. Interleaving spreads out the resources associated with a bus, such that other logic can be interspersed with the bus. A goal of interleaving is to minimize the distance between similar bits of interrelated buses.

Perform the following steps each time you begin this procedure.

  1. Determine the spacing requirements that suits your particular interleave scheme.

  2. Select Floorplan Distribute Options and set the Interleave Factor to change the spacing value.


NOTE

An interleave factor of 2 causes the Floorplanner to place selected logic in every second available resource in the floorplan; a value of 3 causes the Floorplanner to place selected logic in every third available resource.


Design Example

The following figure shows the example design, which contains a 16-bit bus (REGISTER_A/Q) that talks to an 8-bit bus (LITTLE_BUS_OUT).

Figure 4.19 Interleave Design Hierarchy

The following figure shows the expanded hierarchy of the interleave design.

Figure 4.20 Interleave Design Hierarchy Expanded

Four new groups were created from the expanded hierarchy to make floorplanning easier.

The following figure shows the interleave design hierarchy with the four new groups. Note the “Grouped by: User” annotation on the symbol line.

Figure 4.21 Interleave Design with New Groups


NOTE

The placement used throughout this example is exploded to make it easier to view; it is not optimal floorplanning placement. During floorplanning you would choose a placement that is closer together, resulting in shorter interconnections.


The next six figures show step-by-step the sequence for placing the groups of logic into the Floorplan window. The seventh figure shows the final placement in the Floorplan window of the interleave design. The ratsnest display shows the relative distance and connectivity of the nets.

Figure 4.22 Step 1: Placement of the REGISTER_A_MSB Group

Figure 4.23 Step 2: REGISTER_A_LSB Group Interleaved with REGISTER_A_MSB

Figure 4.24 Step 3: DIN_MSB Placed to Align with REGISTER_A_MSB

Figure 4.25 Step 4: DIN_LSB Placed to Align with REGISTER_A_LSB

Figure 4.26 Step 5: 2-in-1 Multiplexers Placed to Align with A/Q Bus

Figure 4.27 Step 6: Little Bus Placed to Align with Multiplexers

Figure 4.28 Final Placement of Interleave Design

Next