Altera Home Page
Literature Licensing
Buy On-Line Download

  Home   |   Products   |   Support   |   End Markets   |   Technology Center   |   Education & Events   |   Corporate   |   Buy On-Line  
  Knowledge Database   |   Devices   |   Design Software   |   Intellectual Property   |   Design Examples   |   mySupport   |   Reference Designs  

 Products
      MAX/MAX II
      Stratix/Stratix GX
      Nios II
  
 Functionality
      Arithmetic
      Memory
      Bus & I/O
      Logic
      Interfaces & Peripherals
      DSP
      Communications
      PLL & Clocking
  
 Design Entry
      Quartus II Project
      Tcl
      VHDL
      Verilog HDL
      C Code Examples
      DSP Builder
      TimeQuest
   On-Chip Debugging
  
 Simulation Tools
      Mentor Graphics ModelSim
      Cadence NCsim
      Synopsys VCS
  
 Legacy Examples
      Graphic Editor
      AHDL
  

TimeQuest Example: Basic Source Synchronous Output

These examples show two ways you can constrain source synchronous output timing with Synopsys Design Contraint (SDC). To constrain source synchronous output timing, you must have a way to specify the output delay relative to the clock driving out of the FPGA.

Generated Clock

You can create a generated clock on the clock output port of your FPGA. A generated clock automatically computes the latency from its source clock. You must make the following three constraints to constrain the output for the simple circuit in Figure 1.

  • A base clock driving the clk_in port
  • A generated clock on the clk_out port
  • An output delay constraint on the data_out port, relative to the generated clock on the clk_out port.

Figure 1. Source Synchronous Constraints with a Generated Clock

Figure 1: Source Synchronous Constraints with a Generated Clock 

The following SDC commands constrain the output.

# Define the input clock
create_clock -period 10 -name clk_100 [get_ports clk_in]

# Apply a generated clock to the output of the PLL
create_generated_clock -name pll_output \
    -source [get_pins inst|altpll_component|pll|INCLK[0]] \
    [get_pins inst|altpll_component|pll|CLK[0]]
    
# Apply a generated clock to the clk_out port
create_generated_clock -name clk_out \
    -source [get_pins inst|altpll_component|pll|CLK[0]] \
    [get_ports clk_out]

set_output_delay -clock clk_out 1.200 [get_ports data_out]

-reference_pin Option

The -reference_pin option is an Altera-specific extension to SDC that makes it easy to constrain source synchronous outputs. When you use the -reference_pin option with the set_input_delay/set_output_delay commands, you specify the input or output delay relative to a pin or port in the netlist.

The -reference_pin option automatically includes the clock latencies to the specified port or pin. For a source synchronous output, the output delay is relative to the output clock port. In the circuit in Figure 2, the latency from the clk_in port to the clk_out port is included by the -reference_pin option.

Figure 2. Source Synchronous Constraints with the -reference_pin Option

Figure 2. Source Synchronous Constraints with the -reference_pin Option

The following SDC commands constrain the output. No generated clock is necessary in this example, because the -reference_pin option includes the latency.

# Define the input clock
create_clock -period 10 -name clk_100 [get_ports clk_in]

# Apply a generated clock to the output of the PLL
create_generated_clock -name pll_output \
    -source [get_pins inst|altpll_component|pll|INCLK[0]] \
    [get_pins inst|altpll_component|pll|CLK[0]]
    
# Set the output delay with the -reference_pin option
set_output_delay -clock pll_output -reference_pin [get_ports clk_out] \
    1.200 [get_ports data_out]

  Please Give Us Feedback