Home > Community > Forums > Digital Implementation > Propagated clock for reg2out

Email

* Required Fields

Recipients email * (separate multiple addresses with commas)

Your name *

Your email *

Message *

Contact Us

* Required Fields
First Name *

Last Name *

Email *

Company / Institution *

Comments: *

 Propagated clock for reg2out 

Last post Mon, Sep 9 2013 2:12 AM by Aram Shahinyan. 8 replies.
Started by Aram Shahinyan 03 Sep 2013 12:25 AM. Topic has 8 replies and 933 views
Page 1 of 1 (9 items)
Sort Posts:
  • Tue, Sep 3 2013 12:25 AM

    Propagated clock for reg2out Reply

    Dear Friends,

    I'm looking into Solution with ID 11327942. Can't figure out how clock latency 2.5ns is decided for reg2out paths

    set_clock_latency 2.5 -rise clk2

     Can you please give me a hint?

     Thanks,

    Aram

    • Post Points: 20
  • Tue, Sep 3 2013 7:50 AM

    • fitz
    • Top 150 Contributor
    • Joined on Wed, Aug 4 2010
    • Kanata, Ontario
    • Posts 56
    • Points 745
    Re: Propagated clock for reg2out Reply

    Aram

    We always referenced ip / op delays relative to a "virtual" clock.
    This virtual clock must track the real clock before and after CTS.
    You can automatically update the virtual clock after CTS with the command update_io_latency.
    I know this whole flow / syntax sucks, but primeTime has been doing it this way since the beginning of time.

    Cadence  set_output_delay supports -reference_pin pin_name syntax which would be perfect IF pt_shell also supported it.

    Shawn

     

    preCTS ideal .............................................
    create_clock -name LINE_CLK -period 3.236 -waveform { 0 1.618 } [get_ports {i_LINE_CLK}]
    set_clock_transition         0.150 [get_clocks {LINE_CLK}]
    set_clock_uncertainty -setup 0.110 [get_clocks {LINE_CLK}]
    set_clock_latency            2.200 [get_clocks {LINE_CLK}]

    create_clock -name LINE_VIRT_CLK -period 3.236 -waveform { 0 1.618 }
    set_clock_transition         0.150 [get_clocks {LINE_VIRT_CLK}]
    set_clock_uncertainty -setup 0.110 [get_clocks {LINE_VIRT_CLK}]
    set_clock_latency            2.200 [get_clocks {LINE_VIRT_CLK}]

    set_output_delay  1.6 -clock [get_clocks {LINE_VIRT_CLK}]  [get_ports {ov_fltr_y_din[1537]}]


    postCTS propagated & virtual clock updated .............................................
    create_clock -name LINE_CLK -period 3.236 -waveform { 0 1.618 } [get_ports {i_LINE_CLK}]
    set_clock_transition         0.150 [get_clocks {LINE_CLK}]
    set_clock_uncertainty -setup 0.110 [get_clocks {LINE_CLK}]
    set_propagated_clock               [get_clocks {LINE_CLK}]


    create_clock -name LINE_VIRT_CLK -period 3.236 -waveform { 0 1.618 }
    set_clock_transition         0.150 [get_clocks {LINE_VIRT_CLK}]
    set_clock_uncertainty -setup 0.110 [get_clocks {LINE_VIRT_CLK}]
    set_clock_latency -fall 1.99566  [get_clocks {LINE_VIRT_CLK}]
    set_clock_latency -rise 1.97041  [get_clocks {LINE_VIRT_CLK}]

    set_output_delay  1.6 -clock [get_clocks {LINE_VIRT_CLK}]  [get_ports {ov_fltr_y_din[1537]}]
     

    • Post Points: 20
  • Tue, Sep 3 2013 10:32 PM

    Re: Propagated clock for reg2out Reply

     Hello Shawn,

    Thanks for your responce. This gives an idea how it works, but my question really is how the numbers are calculated. 

    Have you looked into Solution ID:11327942 ?

     

    create_clock -name clk2 -period 2.0 -waveform {0 1.0} [get_ports {CK}]

    set_propagated_clock [get_ports {CK}]

     set_clock_latency 2.5 -rise clk2 <==== To insert clock delay

    So the question really is how 2.5ns is calculated?

    Thanks,

    Aram

    • Post Points: 20
  • Wed, Sep 4 2013 5:51 AM

    • fitz
    • Top 150 Contributor
    • Joined on Wed, Aug 4 2010
    • Kanata, Ontario
    • Posts 56
    • Points 745
    Re: Propagated clock for reg2out Reply

    Sorry. I did not read Solution ID:11327942 before responding.
    The clock network latency is not calculated, initially it is a  educated guess-timate until CTS is run multiple times and it's results stabilize.
    On subsequent runs the new value becomes an accurate preCTS estimate until the final CTS at which point it becomes the actual measured / reported value.
    set_clock_latency evolves ......  guess > estimate > measured

     Shawn

    • Post Points: 20
  • Wed, Sep 4 2013 6:10 AM

    Re: Propagated clock for reg2out Reply

     Thanks You Shawn,

    In other words I can look into timing report to see the time from clock pin (going through buffers) to the flop and put it as

    clock latency, right?

    Best Regards,

    Aram

     

    • Post Points: 20
  • Wed, Sep 4 2013 6:53 AM

    • fitz
    • Top 150 Contributor
    • Joined on Wed, Aug 4 2010
    • Kanata, Ontario
    • Posts 56
    • Points 745
    Re: Propagated clock for reg2out Reply
    Aram : Bingo
    Normally  I parse the detailed CTS reports for  "Rise Phase Delay".
    The automated "update_io_latency" flow becomes essential as you get into  nodes > 65 nm ......... too many corners to do manually.

    Shawn
    • Post Points: 20
  • Wed, Sep 4 2013 10:36 PM

    Re: Propagated clock for reg2out Reply

     Hello Shawn,

    I have tried to set set vars(update_io_latency) {true} in my foundation flow, but clock latency is still not propagatedin reg2out

    Am I missing anything?

    Thanks,

    Aram

    • Post Points: 20
  • Thu, Sep 5 2013 4:48 AM

    • fitz
    • Top 150 Contributor
    • Joined on Wed, Aug 4 2010
    • Kanata, Ontario
    • Posts 56
    • Points 745
    Re: Propagated clock for reg2out Reply

    See my first response....................

    We always referenced ip / op delays relative to a "virtual" clock.
    This virtual clock must track the real clock before and after CTS.
    You can automatically update the virtual clock after CTS with the command update_io_latency.

    We have been doing it this way for so long I forgot  the reason why, but there must be a valid reason to put me through decades of pain .
    If you are doing anything different, like setting the output delay relative to the "actual" clock, sorry you are on your own.


    Shawn

    • Post Points: 20
  • Mon, Sep 9 2013 2:12 AM

    Re: Propagated clock for reg2out Reply

    Hi Shawn,

     Thanks a lot for your help! It worked for me!

    Best Regards,

    Aram

    • Post Points: 5
Page 1 of 1 (9 items)
Sort Posts:
Started by Aram Shahinyan at 03 Sep 2013 12:25 AM. Topic has 8 replies.