+ Post New Thread
Results 1 to 3 of 3
  1. #1
    Junior Member level 3
    Points: 606, Level: 5

    Join Date
    Aug 2016
    Posts
    30
    Helped
    0 / 0
    Points
    606
    Level
    5

    How to slove setup violation without changing rtl

    Hello All,

    I wanted to know what all are the options I have when I have to fix set up violation in a design ( with no hold time violation ) without changing anything in rtl.

    What are the stratagies I can use ( not the tool stratagies of vivado )

    Thanks

    •   AltAdvertisment

        
       

  2. #2
    Advanced Member level 5
    Points: 37,449, Level: 47
    Achievements:
    7 years registered

    Join Date
    Jun 2010
    Posts
    6,805
    Helped
    1997 / 1997
    Points
    37,449
    Level
    47

    Re: How to slove setup violation without changing rtl

    Changing RTL is always the easiest option.
    Have you got register merging turned off? Than can help reduce the register fan outs.
    All false paths and multi cycle paths specified?
    Finally you can try overconstraining a single path using a set max delay, but this can often make it harder to route adjacent nets and is a rather tedious job.

    Why can't you change the RTL, it is by far, the easiest method to fix setup problems


    1 members found this post helpful.

    •   AltAdvertisment

        
       

  3. #3
    Full Member level 5
    Points: 1,575, Level: 9

    Join Date
    Oct 2015
    Posts
    247
    Helped
    36 / 36
    Points
    1,575
    Level
    9

    Re: How to slove setup violation without changing rtl

    Quote Originally Posted by UltraGreen View Post
    Hello All,

    I wanted to know what all are the options I have when I have to fix set up violation in a design ( with no hold time violation ) without changing anything in rtl.

    What are the stratagies I can use ( not the tool stratagies of vivado )

    Thanks
    If you have enough Math background, please take a look at how Setup Slack was calculated.
    Then, you can obviously make the Slack become positive by changing some factors in the equation.

    For example, if I have this simple equation of Slack:
    Slack = ( Tcycle + Tcapture_clock_path ) - ( Tlaunch_clock_path + Tdata_delay )

    If Slack is negative, it means setup timing violation.
    Then, Slack will be positive value if:
    1/ Increasing Tcapture_clock_path
    2/ Reducing Tdata_delay
    3/ Reducing Tlaunch_clock_path
    4/ Increase Tcycle, or slower the speed

    In FPGA, mostly we need to make change on port/cell/buffer.. location.
    It would give some effect to the delay.
    To improve one's brain, the doors are needed over the keys.



--[[ ]]--