Xilinx HDL Synthesis Flow: Y.T.Chang/2001.02/XLNX - HDL
Xilinx HDL Synthesis Flow: Y.T.Chang/2001.02/XLNX - HDL
Xilinx HDL Synthesis Flow: Y.T.Chang/2001.02/XLNX - HDL
Flow
Y.T.Chang/2001.02/XLNX_HDL flow-1
HDL Flow - Design Entry
CIC
Y.T.Chang/2001.02/XLNX_HDL flow-2
HDL Flow - Synthesis
CIC
Y.T.Chang/2001.02/XLNX_HDL flow-3
HDL Flow - Implementation & Programming
CIC
Y.T.Chang/2001.02/XLNX_HDL flow-4
Top-level Design I CIC
Y.T.Chang/2001.02/XLNX_HDL flow-5
Top-level Design II CIC
Y.T.Chang/2001.02/XLNX_HDL flow-6
Create a HDL Project CIC
! New a Project
! Start Foundation Express and Select “Create a New Project”
! In Foundation Project Manger, File > New Project
! Select HDL Flow
Y.T.Chang/2001.02/XLNX_HDL flow-7
Creating the Design I CIC
Y.T.Chang/2001.02/XLNX_HDL flow-9
Creating the Design II CIC
Y.T.Chang/2001.02/XLNX_HDL flow-10
Creating the Design III CIC
Y.T.Chang/2001.02/XLNX_HDL flow-11
Creating the Design IV CIC
Y.T.Chang/2001.02/XLNX_HDL flow-12
Analyzing Design File Syntax CIC
Y.T.Chang/2001.02/XLNX_HDL flow-13
CIC
Performing HDL Behavioral Simulation
Y.T.Chang/2001.02/XLNX_HDL flow-14
Synthesizing the Design I CIC
Y.T.Chang/2001.02/XLNX_HDL flow-15
Synthesizing the Design II CIC
! 4. The Synthesis/Implementation
dialog box is displayed.
! 5. Select the name of the top-level
VHDL entity or Verilog module.
! Processing will start from the file
named here and proceed through
all its underlying HDL modules.
! 6. Enter a version name.
Y.T.Chang/2001.02/XLNX_HDL flow-16
Synthesizing the Design III CIC
Y.T.Chang/2001.02/XLNX_HDL flow-17
Synthesizing the Design IV CIC
Y.T.Chang/2001.02/XLNX_HDL flow-18
Express Constraints Editor I CIC
Y.T.Chang/2001.02/XLNX_HDL flow-20
Express Constraints Editor III CIC
Y.T.Chang/2001.02/XLNX_HDL flow-21
Express Constraints Editor IV CIC
Y.T.Chang/2001.02/XLNX_HDL flow-22
Clocks Constraint Entry I CIC
Y.T.Chang/2001.02/XLNX_HDL flow-23
Clocks Constraint Entry II CIC
! This displays the Define Clock dialog box where you can
enter the period, rise time, and fall time of the signal.
Y.T.Chang/2001.02/XLNX_HDL flow-24
Paths Constraint Entry I CIC
Y.T.Chang/2001.02/XLNX_HDL flow-25
Paths Constraint Entry II CIC
Y.T.Chang/2001.02/XLNX_HDL flow-26
Paths Constraint Entry III CIC
! Required Delay
! This is the maximum delay of the path, computed from the
waveforms of the periodic signals.
! This value is the difference between the active edge of the
end group of the path and the active edge of the starting
group of the path.
! To enter a new value for a path group, click the Required
Delay column to highlight the default value and type in the
new value.
! Default Delay Values
! FPGA Express computes default timing values using the default
waveforms of the periodic signals.
Y.T.Chang/2001.02/XLNX_HDL flow-27
Sub Path I CIC
! Subpath
! A subset of the actual paths within a primary timing path need a
tighter constraint to
ensure correct behavior.
! Note that you cannot specify a false or multicycle path by making
the subpath delay
longer than that of the primary path.
! Create / Edit Timing Subpath
! Create a new subpath by clicking the right mouse button on either
the appropriate primary path or any subpath of the primary path,
and selecting New Sub path.
! To edit an existing subpath, click the right mouse button on it and
select Edit Sub path
Y.T.Chang/2001.02/XLNX_HDL flow-28
Sub Path II CIC
! In the Create/Edit Timing Sub Path dialog box, enter the desired
delay, and then double-click all of cells making up the subpath. The
controls below each list give an alternate way of adding named
cells to the list using global-style regular expressions (similar to
filename wildcards).
Y.T.Chang/2001.02/XLNX_HDL flow-29
Ports Constraint Entry I CIC
Y.T.Chang/2001.02/XLNX_HDL flow-30
Ports Constraint Entry II CIC
! Input Delay
! To define an input delay other than the default, click the Input Delay
cell for a port and select Define.
! Output Delay
! To define an output delay other than the default, click the Output
Delay cell for a port and select Define.
Y.T.Chang/2001.02/XLNX_HDL flow-31
Ports Constraint Entry III CIC
! Global Buffer
! To specify insertion of a global buffer for a port or to select
automatic global buffer insertion, click the Global Buffer cell
for a port and make the appropriate selection.
! AUTOMATIC (default), DONT USE.
! You cannot define global buffers for a design that has the Do
Not Insert I/O Pads option selected.
! Pad Direction
! Use the pull-down list in this cell to specify this port as three-
state (bidirectional).
! Resistance
! Resistance options for a port or pad are specific to the
implementation's target device.
! NONE (default), PULLUP, PULLDOWN
Y.T.Chang/2001.02/XLNX_HDL flow-32
Ports Constraint Entry IV CIC
Y.T.Chang/2001.02/XLNX_HDL flow-33
Ports Constraint Entry V CIC
! Pad Location
! To specify the location of pads for a port, enter it in this cell.
! Pad locations are vendor-specific.
! You cannot specify pad locations for a design that has the Do
Not Insert I/O Pads option selected.
Y.T.Chang/2001.02/XLNX_HDL flow-34
Modules Constraint Entry I CIC
Y.T.Chang/2001.02/XLNX_HDL flow-35
Modules Constraint Entry II CIC
Y.T.Chang/2001.02/XLNX_HDL flow-36
Modules Constraint Entry III CIC
! Operator Sharing
! Use this setting to control sharing the operators in the module.
! Off : FPGA Express implements each operator using a separate
hardware resource and selects the best implementation of
each of these resources.
! On : FPGA Express determines which operators can be
implemented sharing the same hardware resource in order to
improve the area and speed of your design. It also selects the
best implementation of every hardware resource it uses.
! default : On
! Optimize for Speed or Area
! Use this setting to control whether you want to optimize for
faster speed or smaller area.
! default : speed
Y.T.Chang/2001.02/XLNX_HDL flow-37
Modules Constraint Entry IV CIC
! Effort
! Use this setting to control whether the mapping effort for this
design is high or low.
! This option affects timing optimization most with little
influence on area.
! Low effort takes the least time to compile. Use low if you are
running a test to check the logic. Low is not recommended if
the design must meet area or timing goals.
! High effort takes longer to compile but should produce better
designs. The mapping process proceeds until it has tried all
strategies.
! default : High
! Duplicate Register Merge
! Removes duplicate cells. Values include Enable, Disable.
Y.T.Chang/2001.02/XLNX_HDL flow-38
Xilinx Options CIC
Y.T.Chang/2001.02/XLNX_HDL flow-39
Express Time Tracker CIC
Y.T.Chang/2001.02/XLNX_HDL flow-40
Analyzing Timing - Clocks CIC
Y.T.Chang/2001.02/XLNX_HDL flow-41
Analyzing Timing - Paths CIC
Y.T.Chang/2001.02/XLNX_HDL flow-42
Analyzing Timing - Ports CIC
Y.T.Chang/2001.02/XLNX_HDL flow-43
Analyzing Resources - Modules CIC
Y.T.Chang/2001.02/XLNX_HDL flow-44
CIC
Performing Functional Simulation I
Y.T.Chang/2001.02/XLNX_HDL flow-45
CIC
Performing Functional Simulation II
! 3. Add signals
! By selecting Signal > Add Signals.
! From the Signals Selection portion of the Components Selection for
Waveform Viewer window, select the signals that you want to see in the
simulator.
! Use CTRL-click to select multiple signals. Make sure you add output signals
as well as input signals.
! Click Add and then Close. The signals are added to the Waveform Viewer
in the Logic Simulator screen.
! 4. Attach Stimulus
! Invoke Stimulator Selection window
! Select Signal > Add Stimulators from
the Logic Simulator menu.
! Create the waveform stimulus by
attaching stimulus to the inputs.
! For more details on how to use the
Stimulus Selection window, click Help.
Y.T.Chang/2001.02/XLNX_HDL flow-46
CIC
Performing Functional Simulation III
! 5. Run Simulation
! After the stimulus has been applied to all inputs, click the Simulator
Step icon on the Logic Simulator toolbar to perform a simulation
step.
! The length of the step can be changed in the Simulation Step Value
box to the right of the Simulation Step box. (If the Simulator
window is not open, select View > Main Toolbar.)
Y.T.Chang/2001.02/XLNX_HDL flow-48
Implementing the Design II CIC
Y.T.Chang/2001.02/XLNX_HDL flow-51
Verifying the Design II CIC
Y.T.Chang/2001.02/XLNX_HDL flow-52
Programming the Device CIC
! 2. From the Select Program box, choose the Hardware Debugger, the
PROM File Formatter, or the JTAG Programmer.
! For CPLD designs, use the JTAG Programmer.
! For instructions, select Help > Foundation Help Contents > Advanced
Tools > JTAG Programmer.
! For FPGA designs, use the JTAG Programmer, Hardware Debugger, or
PROM File Formatter.
! For instructions, select Help > Foundation Help Contents > Advanced
Tools and then select the desired tool.
Y.T.Chang/2001.02/XLNX_HDL flow-53