Forum Discussion

Altera_Forum's avatar
Altera_Forum
Icon for Honored Contributor rankHonored Contributor
12 years ago

Using set_input_delay? When to use -add_delay, -rise, and -fall?

Hello, I was doing some research on the Multicyle Exceptions and found a great example:

http://www.altera.com/support/examples/timequest/exm-tq-sdc-exceptions.html?gsa_pos=4&wt.oss_r=1&wt.oss=set_multicycle_path examples

When I was looking over the example I decided to download the Quartus .qar archive. I then looked at the .sdc file and it was different that the example on the page.

For example the web page has:

# Constrain the input and output ports

set_input_delay -clock clk_in 1.2 [get_ports data_in]

set_input_delay -clock clk_in 1.5 [get_ports async_rst]

set_output_delay -clock clk_in 2 [get_ports data_out]

But the .sdc file in the .qar has:

# **************************************************************

# Set Input Delay

# **************************************************************

set_input_delay -add_delay -rise -max -clock clk_in 1.500 [get_ports async_rst]

set_input_delay -add_delay -rise -min -clock clk_in 1.500 [get_ports async_rst]

set_input_delay -add_delay -fall -max -clock clk_in 1.500 [get_ports async_rst]

set_input_delay -add_delay -fall -min -clock clk_in 1.500 [get_ports async_rst]

set_input_delay -add_delay -rise -max -clock clk_in 1.200 [get_ports data_in]

set_input_delay -add_delay -rise -min -clock clk_in 1.200 [get_ports data_in]

set_input_delay -add_delay -fall -max -clock clk_in 1.200 [get_ports data_in]

set_input_delay -add_delay -fall -min -clock clk_in 1.200 [get_ports data_in]

So here's my question, why is there a -add_delay and why is there a -rise and -fall? Are those required?

Thanks,

joe

2 Replies

  • Altera_Forum's avatar
    Altera_Forum
    Icon for Honored Contributor rankHonored Contributor

    --- Quote Start ---

    Hello, I was doing some research on the Multicyle Exceptions and found a great example:

    http://www.altera.com/support/examples/timequest/exm-tq-sdc-exceptions.html?gsa_pos=4&wt.oss_r=1&wt.oss=set_multicycle_path examples

    When I was looking over the example I decided to download the Quartus .qar archive. I then looked at the .sdc file and it was different that the example on the page.

    For example the web page has:

    # Constrain the input and output ports

    set_input_delay -clock clk_in 1.2 [get_ports data_in]

    set_input_delay -clock clk_in 1.5 [get_ports async_rst]

    set_output_delay -clock clk_in 2 [get_ports data_out]

    But the .sdc file in the .qar has:

    # **************************************************************# Set Input Delay# **************************************************************

    set_input_delay -add_delay -rise -max -clock clk_in 1.500 [get_ports async_rst]

    set_input_delay -add_delay -rise -min -clock clk_in 1.500 [get_ports async_rst]

    set_input_delay -add_delay -fall -max -clock clk_in 1.500 [get_ports async_rst]

    set_input_delay -add_delay -fall -min -clock clk_in 1.500 [get_ports async_rst]

    set_input_delay -add_delay -rise -max -clock clk_in 1.200 [get_ports data_in]

    set_input_delay -add_delay -rise -min -clock clk_in 1.200 [get_ports data_in]

    set_input_delay -add_delay -fall -max -clock clk_in 1.200 [get_ports data_in]

    set_input_delay -add_delay -fall -min -clock clk_in 1.200 [get_ports data_in]

    So here's my question, why is there a -add_delay and why is there a -rise and -fall? Are those required?

    Thanks,

    joe

    --- Quote End ---

    DDR interface requires rise & fall naturally. SDR relates to one clock edge. For DDR you set delay on same signal and so you need to

    tell the tool "add" though this could have been inferred by the tool but that is how it is done.