Davy,
You really have not provided enough information to
make any judgment at this point.
What is the desired frequency of your design?
What frequency does your static timing analysis
say it will run at?
What did you set your clock constraints at?
With DC and ASIC libraries, it is very common to
overconstrain the clock by between 10 to 20%.
If you did not do this, I would do this first.
If you are using DC for FPGAs, you are using the
wrong tool, my first step in this case would be
to use the free versions of Xilinx and Altera and
see if that does not fix your issue. If you
do use DC for FPGAs, expect it to be a wrestling
match - there are lots of coding and tool tricks.
Next I would look at the long timing paths.
What caused them? Look at the logic created.
Is it what you expected? If it is not what you
expected, then you need to re-write your code so
that it does create the hardware you want - this
can be a trial and error process. Usually you
start with a picture of what you want and make
the code match it. If that does not work, further
refine the picture until the code does give you
what you want.
Next I would look at potential false and multi-cycle
paths as the others suggested. However, I do not
like doing this unless I have to because if you are
wrong, your final silicon will not work.
Your last alternative is pipelining, architecture
exploration, and changing the clock frequency.
Good Luck,
Jim
Post by DavyHi all,
I am new to Synopsys DC. And I have a basic problem. When I find timing
violation in DC report, what shall I do first?
1. Shall I change the script of DC? To let the tools do something like
retiming?
2. Shall I change the RTL code? To pipeline the comb logic manually?
3. Other choice, please recommend.
What circumstance to do "1" or "2" or "1 and 2 at the same time"?
Best regards,
Shenli