FPGA Central - World's 1st FPGA / CPLD Portal

FPGA Central

World's 1st FPGA Portal

 

Go Back   FPGA Groups > NewsGroup > FPGA

FPGA comp.arch.fpga newsgroup (usenet)

Reply
 
LinkBack Thread Tools Display Modes
  #1 (permalink)  
Old 05-15-2006, 08:44 AM
srini
Guest
 
Posts: n/a
Default How to decide Setup/Hold time values ?

Hi,
I am using Viretx II as my target FPGA. I use Synplify Pro 8.4 for
synthesis and Xilinx ISE 7.1 for PAR. All my input/ouput data are
registered. Do I have to specify the IO delays in the constraints
editor in Synplify Pro? Even if I have to specify the IO delays, I dont
have any idea as to what values should be given. Any thumb rules to
start with?
Similarly, there is a OFFSET IN/OUT constraint in the Xilinx
constrainst editor. Right now I have left it untouched bcoz I dont know
what values are normally given for it. In my PAR report, I am seeing
the maxilum pin delay to be some 8.6 ns. Has it got something to do
with the OFFSET IN or setup time constraint? Can anyone clear my doubts
and help in specifying the setup/hold times?

Thanks & Regards,
Srini.

Reply With Quote
  #2 (permalink)  
Old 05-15-2006, 04:50 PM
Phil Hays
Guest
 
Posts: n/a
Default Re: How to decide Setup/Hold time values ?

"srini" <[email protected]> wrote:

>I am using Viretx II as my target FPGA. I use Synplify Pro 8.4 for
>synthesis and Xilinx ISE 7.1 for PAR. All my input/ouput data are
>registered. Do I have to specify the IO delays in the constraints
>editor in Synplify Pro? Even if I have to specify the IO delays, I dont
>have any idea as to what values should be given. Any thumb rules to
>start with?


Synthesis constraints are needed to give information to the synthesis
tools to allow it to generate a reasonable implementation of your
design. If all inputs/outputs are in registers in the IOB, there
should be no need for synthesis timing constraints on inputs/outputs.

To avoid confusion, probably best to turn off forward annotation of
timing constraints (or delete the .ncf file after synthesis).


>Similarly, there is a OFFSET IN/OUT constraint in the Xilinx
>constrainst editor. Right now I have left it untouched bcoz I dont know
>what values are normally given for it. In my PAR report, I am seeing
>the maxilum pin delay to be some 8.6 ns. Has it got something to do
>with the OFFSET IN or setup time constraint? Can anyone clear my doubts
>and help in specifying the setup/hold times?


What does your system require? For an input, where is the input
coming from? Is it on the same clock, or a clock with a timing
relationship to the FPGA register clock? If so, then do a calculation
something like the following:

Required setup time = (clock period)
- (external part clock to out)
- (trace delay 80 ps/cm)

My personal habit is to document all of the timing calculations in the
..ucf file as comments. Open it as a text file and type in something
like this:


#
################################################## #############################
#
# Data blah blah blah Output Requirement
#
# Calculate foo to blah
# Based on rev 11.2 of Some Semiconductor Company's Part
# Clock Period = 10.4 ns
# foobar output (Spec reference) = (1.4 ns + 0.15 ns/pf)
# Fanout = 3, estimate cap = 15 pf = (1.4 ns + 0.8 ns)
# = 2.2 ns
# Data (from blah) = 1/2 clk + Yahda = 5.2 ns + 2.2 ns
# = 6.4 ns
# Trace delay = 80ps/cm * 12 cm = 0.96 ns
#
# Allowed time = Clock period - (Foobar) - (Yahda) - Trace
# = 10.4 ns - 2.2 ns - 6.4 ns - 0.96 ns
# = 3.77 ns
# Note: This assumes jitter isn't a factor
#
INST "SOMEPINS<*>" TNM = "DUT_OUT_GRP";
#
TIMEGRP "DUT_OUT_GRP" OFFSET = OUT 3.77 NS AFTER "NAME_OF_CLOCK";
#
################################################## #######################


The example is made up, of course. If it was real, I would have
checked and rechecked any math, checked and recheck the specification
references, and tried to make sure that it was easy to understand.

To make sure that an input with no external timing requirements is in
the IOB, I do something like this:


################################################## #######################
#
# Data from FOO inputs
# These pins should be registered in the IOB FFs. This timespec
# checks that this is correct.
# Data sheet registered time = 1.1 ns
#
INST "FOO<*>" TNM = "FOO_IN_GRP";
#
TIMEGRP "FOO_IN_GRP" OFFSET = IN 1.2 NS BEFORE "CLOCK";
#
################################################## #######################

Look in the data sheet for the registered setup or clock to output
time is. Remember to adjust for IO standard, and for any DCM or PLL
settings.


--
Phil Hays

Reply With Quote
Reply

Bookmarks

Thread Tools
Display Modes

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off
Trackbacks are On
Pingbacks are On
Refbacks are On


Similar Threads
Thread Thread Starter Forum Replies Last Post
setup and hold violations coolblue Verilog 5 03-14-2007 06:26 AM
model which checks setup and hold Andy Luotto Verilog 0 08-28-2006 05:53 PM
setup and hold time violations rsk Verilog 3 03-16-2005 07:09 PM
setup-hold time problems [email protected] FPGA 5 03-03-2005 08:46 AM
Any solution for solving setup or hold time violation? [email protected] FPGA 4 02-01-2005 06:41 PM


All times are GMT +1. The time now is 07:47 PM.


Powered by vBulletin® Version 3.8.0
Copyright ©2000 - 2020, Jelsoft Enterprises Ltd.
Search Engine Friendly URLs by vBSEO 3.2.0
Copyright 2008 @ FPGA Central. All rights reserved