cancel
Showing results for 
Show  only  | Search instead for 
Did you mean: 
dwpantio
Visitor
Visitor
7,745 Views
Registered: ‎11-12-2013

bad timing for multiple instances


Hello,

 

I'm using ISE 13.4 and Virtex 6 LX760!

In my desing i have 5 instances (5000-6000 LUT's for each instance) of a module constrained with 200 MHz. I   constrain every instance with a separate
FROM TO constraint in order to evaluate the timing after PAR for every instance. However, the clock of the instances are also constrained with a periode
constrain. The *.ucf file looks like this:


  NET "clk_in" TNM_NET = "clk_in";
  TIMESPEC "TS_clk_in" = PERIOD "clk_in" 5.00 ns HIGH 50.00%;
  ...
  TIMESPEC TS_INST_1_RESULT = FROM FFS("*inst_1*") TO FFS("*inst_1*") 5.00 ns;
  TIMESPEC TS_INST_2_RESULT = FROM FFS("*inst_2*") TO FFS("*inst_2*") 5.00 ns;
  TIMESPEC TS_INST_3_RESULT = FROM FFS("*inst_3*") TO FFS("*inst_3*") 5.00 ns;
  TIMESPEC TS_INST_4_RESULT = FROM FFS("*inst_4*") TO FFS("*inst_4*") 5.00 ns;
  TIMESPEC TS_INST_5_RESULT = FROM FFS("*inst_5*") TO FFS("*inst_5*") 5.00 ns;

 

I do several PAR runs with different seeds (starting-placer-cost-tables).
After PAR some of the instances (most two or three) have a positive slack. However, it is very unlikely that all five instances have a positive slack (sometimes only 1 out of 50 runs).

I saw already that every instance had a positive slack, but not during the same run.
 

There is an interconnection between the instances, however, it is well registered!

I already tried to fix every module with a positive slack (use fix-instances at plan-ahead) -> placment information is stored at *.ucf file
After that I do the next run with different starting placer cost table.
But this strategy also fails, because, if more than two or three instance are fixed i get a very bad timing (max. 150-160 MHz) after Route!


  Note 1: The input and outputs of the related modules are all registered!
  Note 2: The 5 instances are only a small part of a very hughe desing! (60% occupied slices of LX760)

  Now, my questions are:

 1) Are there any techiques to overcome such multi-instance timing problems?
 2) It is possible to place and route one instance and store the results (place and routue information) and include this    instance with good timing as a hard macro! (something like relative place and route constrains)!
      
Thanks in advance for your help!

0 Kudos
1 Reply
graces
Moderator
Moderator
7,720 Views
Registered: ‎07-16-2008

You can take a look at the timing report and see what causes the timing failure.

If the main cause is long net delay, then the instances are good candidates for floorplanning.

The good placement result can be visualized in PlanAhead and guide your floorplanning.

-----------------------------------------------------------------------------------------------------------------------
Don’t forget to reply, kudo, and accept as solution.
If starting with Versal take a look at our Versal Design Process Hub and our Versal Blogs.
-----------------------------------------------------------------------------------------------------------------------
0 Kudos