Xapp1104 S6FailSafe Design
Xapp1104 S6FailSafe Design
Xapp1104 S6FailSafe Design
Revision History
The following table shows the revision history for this document.
Fail-Safe Design in Spartan-6 Family with ISE 12.4 www.xilinx.com XAPP1104 (v1.0.1) June 19, 2013
Table of Contents
Revision History . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2
Appendix A: Tactical Patch Needed for ISE Tools 12.3 and 12.4
Tactical Patch for ISE Tools 12.3 or 12.4 for Windows PC . . . . . . . . . . . . . . . . . . . . 109
Tactical Patch for ISE Tools 12.3 or 12.4 for the Linux Server . . . . . . . . . . . . . . . . 109
Guide Contents
This manual contains the following chapters:
• Chapter 1, Single Chip Crypto Design Overview, describes the SCC design and the
goals of the lab.
• Chapter 2, Synthesizing Modules for the Isolation Design Flow, describes the steps in
the bottom-up synthesis flow.
• Chapter 3, Floorplanning the System, gives step-by-step instructions for
implementing the SCC design.
• Chapter 4, Running the Isolation Verification Tool Against the UCF, covers running
the Isolation Verification Tool (IVT) against the pre-placed-and-routed design.
• Chapter 5, Implementing the Design with the PlanAhead Tool, details placing and
routing the SCC design.
• Chapter 6, Verifying the Design with the NCD Isolation Verification Tool, describes
running the verification tool on the placed-and-routed design.
• Appendix A, Tactical Patch Needed for ISE Tools 12.3 and 12.4, describes the tactical
patches needed for ISE tools 12.3 and 12.4 for the Windows PC and Linux server.
Additional Resources
To find additional documentation, see the Xilinx website at:
http://www.xilinx.com/support/documentation/index.htm.
To search the Answer Database of silicon, software, and IP questions and answers, or to
create a technical support WebCase, see the Xilinx website at:
http://www.xilinx.com/support/mysupport.htm.
Conventions
This document uses the following conventions. An example illustrates each convention.
Typographical
The following typographical conventions are used in this document:
Online Document
The following conventions are used in this document:
SCC_LAB_TOP
KEY_EXPANDER KEY_EXPANDER
X1104_c1_01_101210
Figure 1-2 shows the IDF used for the SCC lab.
X-Ref Target - Figure 1-2
Module Synthesis
System Floorplanning
Timing Analysis
Design Implementation
X1104_c1_02_101210
Figure 1-3 shows the partitioning and I/O mapping for an XC6SLX150T-3FGG676 device.
X-Ref Target - Figure 1-3
reset
push_button
AES
COMPARE
led
AES_R
clk
X1104_c1_03_110210
Figure 1-4 is a view of the completed SCC reference design displayed in the Xilinx FPGA
Editor tool. The design incorporates two AES algorithm blocks: aes and aes_r. Both of
the AES blocks are driven by the same input data and key. In Figure 1-4, the two AES
blocks are the angle-shaped regions. Both of the AES blocks are tied to the compare block,
which compares the outputs of the AES blocks. If the outputs of the AES blocks do not
match, the compare block sends an alert to the user indicated by an LED. Both AES blocks
have an input that allows the user to inject an error. However, only the aes block has the
error injection input tied to an external pushbutton.
X1104_c1_04_062411
X1104_c2_01_102510
6. Make the following selections for the target device (see Figure 2-2):
• Family: Spartan6
• Device: XC6SLX150T
• Package: FGG676
• Speed: -3
• Preferred Language: VHDL
X-Ref Target - Figure 2-2
X1104_c2_02_102510
X1104_c2_03_102510
9. Add source files to the project. There are two ways of doing this:
a. Select Project → Add Source.
b. Click the Add Source button on the left side of the Design window in the Project
Navigator of the ISE tool (see Figure 2-4).
X-Ref Target - Figure 2-4
X1104_c2_04_062411
X1104_c2_05_102510
The ISE Project Navigator window should look like Figure 2-6.
Note: The question marks (?) by all blocks that are not coded at the top level are expected because
only the top level is being synthesized at this time. All other blocks are out of context and are treated
as black boxes.
X-Ref Target - Figure 2-6
X1104_c2_06_062411
12. Select SCC_LAB_TOP - Behavioral in the Design Hierarchy window, right-click the
Synthesize-XST icon in the Processes window, and select Process Properties (see
Figure 2-7).
X-Ref Target - Figure 2-7
X1104_c2_07_102510
13. Set the Property display level to Advanced, set Optimization Goal to Area, set
Optimization Effort to High, and click OK. Keep Hierarchy does not have to be set on
this module for this flow.
14. To run XST synthesis, either right-click the Synthesize-XST icon in the Processes
window and click Run, or double-click Synthesize-XST. After synthesis is complete,
close the SCC_LAB_TOP project.
X1104_c2_08_102510
6. Make the following selections for the target device (see Figure 2-9):
• Family: Spartan6
• Device: XC6SLX150T
• Package: FGG676
• Speed: -3
• Preferred Language: VHDL
X-Ref Target - Figure 2-9
X1104_c2_09_102510
X1104_c2_10_102510
9. Add source files to the project by selecting Project → Add Source. Navigate to the
source\design directory, and add the aes.vhd, aes_package.vhd, and
key_expander.vhd files to the project. This is done by holding down the Ctrl key on
the keyboard and left-clicking each of the filenames once such that all filenames are
selected, then clicking Open. Click OK (see Figure 2-11).
X-Ref Target - Figure 2-11
X1104_c2_11_102510
The ISE Project Navigator Window should look as shown in Figure 2-12.
Note: All blocks are defined. There should be no question marks (?) by any module. All
modules at this level and below are in context.
X-Ref Target - Figure 2-12
X1104_c2_12_062411
lut_reset_out : LUT1
GENERIC MAP (INIT => X"2")
PORT MAP (I0 => reset, O => reset_out );
lut_done_aes1_out : LUT1
GENERIC MAP (INIT => X"2")
PORT MAP (I0 => done_d2, O => done );
12. Select aes - Behavioral in the Design Hierarchy window, right-click the Synthesize-
XST icon in the Processes window, and select Process Properties (see Figure 2-13).
X1104_c2_13_102510
X1104_c2_14_102510
6. Make the following selections for the target device (see Figure 2-15):
• Family: Spartan6
• Device: XC6SLX150T
• Package: FGG676
• Speed: -3
• Preferred Language: VHDL
X-Ref Target - Figure 2-15
X1104_c2_15_102510
7. Click Next.
X1104_c2_16_102510
9. Add source files to the project by selecting Project → Add Source. Navigate to the
source\design directory and add the aes_r.vhd, aes_package.vhd, and
key_expander.vhd files to the project. This is done by holding down the Ctrl key on
the keyboard and left-clicking each of the filenames once such that all filenames are
selected, then clicking Open. Click OK (see Figure 2-17).
X-Ref Target - Figure 2-17
X1104_c2_17_102510
The ISE Project Navigator Window should look like Figure 2-18.
Note: All blocks are defined. There should be no question marks (?) by any module. All modules at
this level and below are in context.
X-Ref Target - Figure 2-18
X1104_c2_18_062411
lut_done_aes2_out : LUT1
GENERIC MAP (INIT => X"2")
PORT MAP (I0 => done_d2, O => done );
12. Right-click the Synthesize-XST icon in the Processes window and select Process
Properties (see Figure 2-19).
X-Ref Target - Figure 2-19
X1104_c2_19_102510
13. Set Optimization Goal to Area, and set Optimization Effort to High. Keep Hierarchy
does not have to be set.
14. Within the Process Properties window, click HDL Options in the column on the left,
and uncheck Resource Sharing. Click Xilinx Specific Options in the column on the
left, and uncheck Equivalent Register Removal.
15. Click OK.
16. To run XST synthesis, either right-click the Synthesize-XST icon in the Processes
window and select Run, or double-click Synthesize-XST.
17. After synthesis is complete, close the aes_r project.
X1104_c2_20_102510
6. Make the following selections for the target device (see Figure 2-21):
• Family: Spartan6
• Device: XC6SLX150T
• Package: FGG676
• Speed: -3
• Preferred Language: VHDL
X-Ref Target - Figure 2-21
X1104_c2_21_102510
7. Click Next.
X1104_c2_22_102510
9. Add source files to the project by selecting Project → Add Source. Navigate to the
source\design directory, and add the compare.vhd by left-clicking once on the
filename such that it is selected, then clicking Open. Click OK (see Figure 2-23).
X-Ref Target - Figure 2-23
X1104_c2_23_102510
The ISE Project Navigator Window should look like Figure 2-24.
Note: All modules are defined. There should be no question marks (?) by any module. All modules
at this level and below are in context.
X-Ref Target - Figure 2-24
X1104_c2_24_062411
lut_reset_out : LUT1
GENERIC MAP (INIT => X"2")
PORT MAP (I0 => reset_i, O => reset_out );
lut_start_aes1_out : LUT1
GENERIC MAP (INIT => X"2")
PORT MAP (I0 => start_i, O => start_aes1 );
lut_start_aes2_out : LUT1
GENERIC MAP (INIT => X"2")
PORT MAP (I0 => start_i, O => start_aes2 );
lut_load_aes1_out : LUT1
GENERIC MAP (INIT => X"2")
PORT MAP (I0 => load_i, O => load_aes1 );
lut_load_aes2_out : LUT1
GENERIC MAP (INIT => X"2")
PORT MAP (I0 => load_i, O => load_aes2 );
12. Right-click the Synthesize-XST icon in the Processes window and select Process
Properties (see Figure 2-25).
X-Ref Target - Figure 2-25
X1104_c2_25_102510
13. Set the Optimization Goal to Area and the Optimization Effort to High. Keep
Hierarchy does not have to be set.
14. Within the Process Properties window, click HDL Options in the column on the left
and uncheck Resource Sharing. Click Xilinx Specific Options in the column on the
left and uncheck Equivalent Register Removal.
15. Click OK.
16. To run XST synthesis, either right-click the Synthesize-XST icon in the Processes
window and select Run, or double-click Synthesize-XST.
17. After synthesis is complete, close the compare project.
Module Synthesis
System Floorplanning
Timing Analysis
Design Implementation
X1104_c2_26_110110
Figure 2-26: Isolation Design Flow with Module Synthesis Block Complete
X1104_c3_01_102510
4. Select Import a synthesized (EDIF or NGC) netlist (see Figure 3-2) because the
modules have already been synthesized. Click Next.
Note: The Spartan-6 FPGA does not support partial reconfiguration, so do not select the Set
PR Project option.
X-Ref Target - Figure 3-2
X1104_c3_02_102510
X1104_c3_03_102510
9. Select the product, family, and sub-family for the default part (see Figure 3-4). For this
lab, make the following selections:
a. Product: General Purpose
b. Family: Spartan6
c. Sub-Family: Spartan6 LXT
X-Ref Target - Figure 3-4
X1104_c3_04_102510
12. The PlanAhead tool project is created. Figure 3-5 shows the PlanAhead tool Project
Manager window and the Open Netlist Manager window for the FloorPlan_SCC
project.
X-Ref Target - Figure 3-5
X1104_c3_05_062411
13. To open the netlist design in the PlanAhead tool, under the Project Manager pane on
the left, select Netlist Design → Open Netlist Design....
14. Set the design name to SCC_LAB_1. Click OK.
15. The floor plan of the FPGA device appears, as shown in Figure 3-6.
X-Ref Target - Figure 3-6
X1104_c3_06_062711
As stated in step 4, the Spartan-6 FPGA does not support partial reconfiguration.
Therefore, the File → Set PR Project option is grayed out and not selectable.
X1104_c3_07_102510
2. To specify the I/O pin for the clk, select Edit → Find (shortcut: Ctrl-F). A Find window
appears, as shown in Figure 3-8.
X-Ref Target - Figure 3-8
X1104_c3_08_102510
6. Select the find result and press F9 to zoom to the current selection, as shown in
Figure 3-9. Alternatively, select View → Fit Selection from the top menu bar to
perform the same task.
X-Ref Target - Figure 3-9
X1104_c3_09_062411
7. To place clk on pin U25, select Edit → Find (shortcut: Ctrl-F). A Find window
appears, as shown in Figure 3-10.
X-Ref Target - Figure 3-10
X1104_c3_10_102510
11. Click and drag the result clk to the site identified in step 2 through step 6, as shown in
Figure 3-11.
X-Ref Target - Figure 3-11
X1104_c3_11_062411
X1104_c3_12_062411
19. In the Netlist window, expand Primitives, and then drag TOP_DCM_SP to the
DCM_X0Y5 box, as shown in Figure 3-13.
X-Ref Target - Figure 3-13
X1104_c3_13_062411
X1104_c3_14_062411
2. Add a Basic period constraint of 20 ns to the design by entering the value, as shown
in Figure 3-15.
X-Ref Target - Figure 3-15
X1104_c3_15_102510
3. Click OK.
4. Create a new timing constraint for Input pad to clk offset. For Data arrival, select
Before clock, check the Delay value box, and add a global input constraint of 6 ns to
the design by entering the value, as shown in Figure 3-16.
X-Ref Target - Figure 3-16
X1104_c3_16_102510
5. Click OK.
6. Create a new timing constraint for Clk to output pad offset. For Data arrival, select
After clock, check the Delay value box, and add a global output constraint of 6 ns to
the design by entering the value, as shown in Figure 3-17.
X-Ref Target - Figure 3-17
X1104_c3_17_102510
7. Click OK.
X1104_c3_18_062411
4. A new Pblock must be created for each block. In the Netlist tab, select the U1_AES1
(aes) partition, and right-click to select New Pblock from the menu (see Figure 3-19).
Keep the default name, pblock_U1_AES1, and click OK.
X-Ref Target - Figure 3-19
X1104_c3_19_062411
5. Repeat step 4 for the U2_AES2 (aes_r) partition while keeping the default name,
pblock_U2_AES2.
6. Repeat step 4 for the U3_Comp (compare) partition while keeping the default name,
pblock_U3_Comp.
Defining Attributes for Each ISO Partition with the PlanAhead Tool
IDF rules have many additional constraint rules as opposed to a traditional partial
reconfiguration flow. It is necessary to define several attributes for each partition as
follows:
1. Under the Netlist tab, select the U1_AES1 (aes) partition, right-click the selection, and
click Instance Properties in the resulting menu.
2. Click the Attributes tab of the Instance Properties window, and click the Add Pre-
defined Attributes button (a green “+” symbol).
3. Click the SCC_ ISOLATED general attribute to select it, and click OK (see Figure 3-20).
X-Ref Target - Figure 3-20
X1104_c3_20_102510
4. Select the checkbox for SCC_ ISOLATED in the general attributes list in the Instance
Properties window, and click Apply (see Figure 3-21).
X-Ref Target - Figure 3-21
X1104_c3_21_102510
9. Click the PRIVATE attribute to select it, and click OK (see Figure 3-22).
X-Ref Target - Figure 3-22
X1104_c3_22_102510
10. Select the attribute PRIVATE in the general attributes list in the Pblock Properties
window, and select NONE (see Figure 3-23).
X-Ref Target - Figure 3-23
X1104_c3_23_102510
Set Up the Area Groups for the ISO Regions with the
PlanAhead Tool
Area groups constrain FPGA resources. Their size can be changed by the user with the
PlanAhead tool. For the purpose of this exercise, the dimensions for the area groups are
made known and are presented. However, a general method of configuring an area group
for an arbitrary ISO region is demonstrated in this section:
1. Under the Physical Constraints tab, select the block pblock_U1_AES1 (aes).
2. Right-click pblock_U1_AES1 (aes) and select Set Pblock Size from the pull-down
menu.
3. Draw a rectangle in the upper-right area of the Design Planner window, as shown in
Figure 3-24. (The rectangle does not have to be 100% accurate—it will be resized
shortly.)
X-Ref Target - Figure 3-24
X1104_c3_24_062411
4. A dialog box (shown in Figure 3-24) appears with various attributes and associated
checkboxes. All boxes must be checked, including (if listed) DCM_ADV, PLL_ADV,
BUFGCTRL, BUFR, and BUFIO. Even though most of these blocks are not used in the
design, it is important to select them to take advantage of their routing resources.
Failure to do so, while not an error, might produce designs that are unnecessarily
difficult to route. Naturally, all used components must be included. The only exception
is the Memory Controller Block (MCB) box, which should not be checked for this lab.
Note: Trusted routing requires that all clocking components be assigned to the AREA GROUP
that physically contains the component, even though the component is not logically instantiated
in the HDL of that module.
5. Click OK.
6. In the Choose LOC mode dialog box, select Leave all location constraints in their
current position.
7. Click OK.
8. Ensure that pblock_U1_AES1 (aes) is selected in the Physical Constraints pane.
9. Select the Rectangles tab in the Pblock Properties window (see Figure 3-25).
X-Ref Target - Figure 3-25
X1104_c3_25_102510
10. After the preliminary U1_AES1 (aes) block is drawn, adjust the rectangle graphically
as necessary to match these coordinates:
• X Lo = 88
• Y Lo = 0
• X Hi = 169
• Y Hi = 43
The final Pblock should look like Figure 3-26.
X1104_c3_26_102510
11. Alternately, the Pblock rectangle (of the size specified in step 10) can be added to the
design by entering this command string into the Tcl command line in the PlanAhead
tool:
resize_pblock pblock_U1_AES1 -add {SLICE_X68Y152:SLICE_X127Y191
BUFDS_X2Y4:BUFDS_X2Y5 BUFH_X0Y320:BUFH_X3Y383
BUFIO2_X1Y26:BUFIO2_X4Y29 BUFIO2FB_X1Y26:BUFIO2FB_X4Y29
BUFPLL_X1Y4:BUFPLL_X2Y5 BUFPLL_MCB_X1Y9:BUFPLL_MCB_X2Y9
DCM_X0Y10:DCM_X0Y11 DSP48_X2Y38:DSP48_X3Y47
GTPA1_DUAL_X1Y1:GTPA1_DUAL_X1Y1 ILOGIC_X19Y136:ILOGIC_X35Y175
IODELAY_X19Y136:IODELAY_X35Y175 IPAD_X1Y8:IPAD_X1Y15
OLOGIC_X19Y136:OLOGIC_X35Y175 OPAD_X1Y4:OPAD_X1Y7
PLL_ADV_X0Y5:PLL_ADV_X0Y5 RAMB16_X3Y76:RAMB16_X5Y94
RAMB8_X3Y76:RAMB8_X5Y95} -locs keep_all -replace
12. The second rectangle is drawn to complete pblock_U1_AES1. Under the Physical
Constraints tab, select the block pblock_U1_AES1.
13. Right-click pblock_U1_AES1 and select Add Pblock Rectangle from the pull-down
menu.
14. Draw a new rectangle below and to the far left side of the first rectangle to make a
resultant L-shaped area, as shown in Figure 3-27. (The second rectangle does not have
to be 100% accurate—it will be resized shortly.)
X-Ref Target - Figure 3-27
X1104_c3_27_102510
15. A dialog box pops up with various attributes and associated checkboxes. All boxes
must be checked, including (if listed) DCM_ADV, PLL_ADV, BUFGCTRL, BUFR, and
BUFIO. Even though most of these blocks are not used in the design, it is important to
select them to take advantage of their routing resources. Failure to do so, while not an
error, might produce designs that are unnecessarily difficult to route. Naturally, all
used components must be included. The only exception is the MCB box, which should
not be checked for this lab.
Note: Trusted routing requires that all clocking components be assigned to the AREA GROUP
that physically contains the component, even though the component is not logically instantiated
in the HDL of that module.
16. Click OK.
17. Ensure that pblock_U1_AES1 is selected in the Physical Constraints pane.
18. Select the Rectangles tab in the Pblock Properties window to view all of the rectangles
created for this Pblock (see Figure 3-28).
X-Ref Target - Figure 3-28
X1104_c3_28_102510
X1104_c3_29_102510
21. Under the Physical Constraints tab, select the block pblock_U2_AES2.
22. Right-click pblock_U2_AES2 to select Set Pblock Size from the pull-down menu.
23. Draw a rectangle in the center right area of the Design Planner window, as shown in
Figure 3-30. (The rectangle does not have to be 100% accurate—it will be resized
shortly.)
X-Ref Target - Figure 3-30
X1104_c3_30_062411
24. A dialog box (shown in Figure 3-30) appears with various attributes and associated
checkboxes. All boxes must be checked, including (if listed) DCM_ADV, PLL_ADV,
BUFGCTRL, BUFR, and BUFIO. Even though most of these blocks are not in the
design, it is important to select them to take advantage of their routing resources.
Failure to do so, while not an error, might produce designs that are unnecessarily
difficult to route. Naturally, all used components must be included. The only exception
is the MCB box, which should not be checked for this lab.
Note: Trusted routing requires that all clocking components be assigned to the AREA GROUP
that physically contains the component, even though the component is not logically instantiated
in the HDL of that module.
25. Click OK.
26. Ensure that pblock_U2_AES2 is selected in the Physical Constraints pane.
27. Select the Rectangles tab in the Pblock Properties window (see Figure 3-31).
X-Ref Target - Figure 3-31
X1104_c3_31_102510
28. After the preliminary U2_AES2 block is drawn, adjust the rectangle graphically as
necessary to match these coordinates:
• X Lo = 88
• Y Lo = 96
• X Hi = 169
• Y Hi = 138
The Pblock area should look like Figure 3-32.
X1104_c3_32_102510
29. Alternately, the Pblock rectangle (of the size specified in step 28) can be added to the
design by entering the following command string into the Tcl command line in the
PlanAhead tools:
resize_pblock pblock_U2_AES2 -add {SLICE_X68Y64:SLICE_X127Y103
BUFGMUX_X2Y1:BUFGMUX_X3Y16 BUFH_X0Y128:BUFH_X3Y191
BUFIO2_X1Y8:BUFIO2_X4Y23 BUFIO2FB_X1Y8:BUFIO2FB_X4Y23
BUFPLL_X1Y2:BUFPLL_X2Y3 BUFPLL_MCB_X1Y5:BUFPLL_MCB_X2Y5
DCM_X0Y4:DCM_X0Y5 DSP48_X2Y16:DSP48_X3Y25 ILOGIC_X19Y60:ILOGIC_X35Y101
IODELAY_X19Y60:IODELAY_X35Y101 OLOGIC_X19Y60:OLOGIC_X35Y101
PCILOGIC_X1Y0:PCILOGIC_X1Y0 PLL_ADV_X0Y2:PLL_ADV_X0Y2
RAMB16_X3Y32:RAMB16_X5Y50 RAMB8_X3Y32:RAMB8_X5Y51} -locs keep_all -
replace
Note: The fence between the AES1 and AES2 isolated partitions contains DSP tiles. Fence rules
dictate that there must be two adjacent vertical DSP tiles in a horizontal fence to provide the required
isolation.
30. The next rectangle for pblock_U2_AES2 is drawn up to, but not including, the DSP tile
column. To complete the area needed for pblock_U2_AES2, multiple rectangles should
be drawn to exclude the two DSP fence tiles. Under the Physical Constraints tab, select
the block pblock_U2_AES2.
31. Right-click pblock_U2_AES2 and select Add Pblock Rectangle from the pull-down
menu.
32. Draw a new rectangle above and to the far left side of the first rectangle to make a
resultant L-shape area, as shown in Figure 3-33. (The second rectangle does not have to
be 100% accurate—it will be resized shortly.)
Note: Remember to leave one fence tile of isolation between the AES1 and AES2 partitions.
X-Ref Target - Figure 3-33
X1104_c3_33_062411
33. A dialog box appears with various attributes and associated checkboxes. All boxes
must be checked, including (if listed) DCM_ADV, PLL_ADV, BUFGCTRL, BUFR, and
BUFIO. Even though most of these blocks are not in the design, it is important to select
them to take advantage of their routing resources. Failure to do so, while not an error,
might produce designs that are unnecessarily difficult to route. Naturally, all used
components must be included. The only exception is the MCB box, which should not
be checked for this lab.
Note: Trusted routing requires that all clocking components be assigned to the AREA GROUP
that physically contains the component, even though the component is not logically instantiated
in the HDL of that module.
34. Click OK.
35. Use the Add Pblock Rectangle option to draw the remaining two rectangles needed
to complete the pblock_U2_AES2 area group. One rectangle should include the DSP
tiles in this area group, and the last rectangle should include the remaining CLB tiles
needed for this area group.
36. Ensure that pblock_U2_AES2 is selected in the Physical Constraints pane.
37. Select the Rectangles tab in the Pblock Properties window to view all of the rectangles
created for this pblock (see Figure 3-34).
X-Ref Target - Figure 3-34
X1104_c3_34_062711
Note: The PlanAhead tool might resize the rectangle to many different combinations of smaller
rectangles. Make sure that all of the resources (such as block RAMs and DCMs) inside the area
group are fully enclosed. The user should ensure that there is a fence of one configurable logic
block (CLB) tile, one BRAM tile, and two DSP tiles separation between the pblocks AES1, AES2,
and Comp.
38. The completed pblock for pblock_U2_AES2 (aes_r) is shown in Figure 3-35.
X-Ref Target - Figure 3-35
X1104_c3_35_062411
Note: The fence between the COMPARE isolated partition and AES1 and AES2 also contains DSP
tiles. There must also be two adjacent vertical DSP tiles in these horizontal fences to provide the
required isolation. Therefore, multiple rectangles are needed to define this pblock region to
accommodate the DSP fence tiles.
39. Under the Physical Constraints tab, select the block pblock_U3_Comp.
40. Right-click pblock_U3_Comp to select Set Pblock Size from the pull-down menu.
41. Draw the first rectangle between the AES1 and AES2 blocks up to, but not including,
the DSP column, as shown in Figure 3-36. (The rectangle does not have to be 100%
accurate—it will be resized shortly.)
X-Ref Target - Figure 3-36
X1104_c3_36_062411
42. A dialog box (shown in Figure 3-36) appears with various attributes and associated
checkboxes. All boxes must be checked, including (if listed) DCM_ADV, PLL_ADV,
BUFGCTRL, BUFR, and BUFIO. Even though most of these blocks are not used in the
design, it is important to select them to take advantage of their routing resources.
Failure to do so, while not an error, might produce designs that are unnecessarily
difficult to route. Naturally, all used components must be included. The only exception
is the MCB box, which should not be checked for this lab.
Note: Trusted routing requires that all clocking components be assigned to the AREA GROUP
that physically contains the component, even though the component is not logically instantiated
in the HDL of that module.
43. Click OK.
44. In the Choose LOC Mode dialog box, select Leave all location constraints in their
current position.
45. Click OK.
46. Use the Add Pblock Rectangle option to draw the remaining two rectangles needed
to complete the pblock_U3_Comp area group. One rectangle should include the DSP
tiles in this area group, and the last rectangle should include the remaining CLB tiles
needed for this area group.
47. Ensure that pblock_U3_Comp is selected in the Physical Constraints pane.
48. Select the Rectangles tab in the Pblock Properties window (see Figure 3-37).
X-Ref Target - Figure 3-37
X1104_c3_37_062711
50. The completed pblock for pblock_U3_Comp (aes_r) is shown in Figure 3-38.
X-Ref Target - Figure 3-38
X1104_c3_38_062411
For the Spartan-6 FPGA, the pad ranges need to be set manually for the I/O blocks (IOBs)
or pads used in the design to include them in each ISO partition with I/O pins. The pad
range attribute (RANGE_PADXXX) can be set for each pblock in the PlanAhead tool GUI
as follows:
51. Under the Physical Constraints tab, select the pblock pblock_U1_AES.
52. Right-click pblock_U1_AES and click Pblock Properties in the pull-down menu.
53. Click the Attributes tab of the Pblock Properties window, and click the Add Pre-
defined Attributes button (a green “+” symbol).
54. Click the RANGE_PADXXX general attribute to select it, and click OK (see
Figure 3-39).
X1104_c3_39_102510
55. Select the attribute RANGE_PADXXX in the general attributes list in the Pblock
Properties window, and enter the pad range of PAD133,PAD158 for pblock_U1_AES.
Note: Do not insert a space between pads when entering the pad ranges into the Pblock
Properties window.
X1104_c3_40_102510
57. Repeat step 51 to step 56 for pblock_U2_AES2 and set the attribute
RANGE_PADXXX to PAD217.
58. Repeat step 51 to step 56 for pblock_U3_Comp and set the attribute
RANGE_PADXXX to PAD190.
59. The final layout is shown in Figure 3-41. Each block is separated by one user tile
(except the DSP tile which is two tiles for a horizontal fence) to ensure IDF isolation. A
CLB, block RAM, DSP, IOB, or any other site type that contains a global switch (GSM),
can be used for this isolation.
X-Ref Target - Figure 3-41
X1104_c3_41_062411
Module Synthesis
System Floorplanning
Timing Analysis
Design Implementation
X1104_c3_42_102710
Figure 3-42: Isolation Design Flow with System Floorplanning Block Complete
X1104_c3_43_102510
2. A new tab, Timing Results - Report Timing, appears at the bottom with a sub-tab
named as specified in the Run Report Timing window (results_1 in this case). As
specified when launched, TimeAhead reports the 10 paths closest to missing timing.
Note: The timing analysis performed through the PlanAhead tool is just a timing estimate and
not a timing design sign-off step. The Xilinx® trce tool needs to be run after implementation to
obtain the actual timing results.
Module Synthesis
System Floorplanning
Timing Analysis
Design Implementation
Figure 3-44: Isolation Design Flow with Timing Analysis Block Complete
# Output file
-output SCC_LAB_TOP_ucf.rpt
X1104_c4_01_062411
Module Synthesis
System Floorplanning
Timing Analysis
Design Implementation
Figure 4-2: Isolation Design Flow with IVT on UCF File Block Complete
X1104_c5_01_062411
b. An Implementation Settings dialog box appears (see Figure 5-2). To launch a run,
change or accept the defaults and click Run.
X-Ref Target - Figure 5-2
X1104_c5_02_102510
5. A new tab named Design Runs is created, and a single entry named impl_1 is
generated. It immediately starts the run: NGDBUILD → MAP → Place and Route.
6. An Implementation Completed dialog box appears after the design run is completed.
Select the Open Implemented Design option and click OK.
7. The Device tab in the Design Planner pane shows the placed, routed, and partitioned
design (see Figure 5-3).
X-Ref Target - Figure 5-3
X1104_c5_03_062711
8. The file name for the combined and routed design is SCC_LAB_TOP_routed.ncd,
and its view in FPGA Editor is shown in Figure 5-4.
X-Ref Target - Figure 5-4
X1104_c5_04_070711
Module Synthesis
System Floorplanning
Timing Analysis
Design Implementation
Figure 5-5: Isolation Design Flow with Design Implementation Block Complete
# Combined design
..\PlanAhead\FloorPlan_SCC\FloorPlan_SCC.runs\impl_1\
SCC_LAB_TOP_routed.ncd
clk_ibufg
clk0_buf
clkdev_buf
3. In the Categorized Nets section, ensure that all remaining Clocks are listed in the Nets
Driven by Global Clock Sources section:
The nets listed below present lesser risk than uncategorized nets due to
their physical extents or signal sources.
Nets Driven by Global Clock Sources (BUFG, DCM, PLL, and PMCD)
clk_fb_i
clk_i
4. Ensure that only trusted bus macros are listed in the Trusted Bus Macro section.
Tile Adjacency
Tile Content
Inter-region Signals
DSP Violations: 0
I/O Isolation
X1104_c6_01_062411
Module Synthesis
System Floorplanning
Timing Analysis
Design Implementation
Figure 6-2: Isolation Design Flow with IVT on NCD File Block Complete
Tactical Patch for ISE Tools 12.3 or 12.4 for the Linux Server
This section describes how to apply the tactical patch for the ISE tools 12.3 or 12.4 for the
Linux server:
1. Obtain the tactical patch ZIP file for the ISE tools 12.3 or 12.4 at the Isolation Design
Flow page on Xilinx.com.
2. Unzip and place the tactical patch in a known location, as shown in the following
example (the example shows the installation on a Linux server):
$ setenv MYXILINX <install_path>/TacticalPatch_12.4/rtf
3. When the ISE software is invoked, the updated patch for XST runs automatically.