| Author |
Message |
always@smart
Joined: 08 Feb 2002 Posts: 308 Helped: 7 Location: ASIA
|
05 Dec 2003 3:34 Hold Time Issue!!?? |
|
|
|
|
Hi all,
I understand that Hold time violation happens when the data retain too short after the active edge...
But what about, say the data retain for 2 clock cycle, but it falls on the 2nd active edge, does this still consider hold time violation!!??
If yes, so how could I solve the hold time violation for this data signal which comes from external module(Micro-controller), which is not synchronize with the FPGA design clock, but both having same clock frequency(50Mhz).
Thank you for reply and advice.
Regards,
|
|
| Back to top |
|
 |
it_boy
Joined: 18 Jul 2002 Posts: 181 Helped: 4
|
05 Dec 2003 5:02 Re: Hold Time Issue!!?? |
|
|
|
|
| If you are using xilinx FPGAs, you can add delay for input signals in the IOBs to meet your hold time requirements.
|
|
| Back to top |
|
 |
Google AdSense

|
05 Dec 2003 5:02 Ads |
|
|
|
|
|
|
| Back to top |
|
 |
brmadhukar
Joined: 21 Jun 2002 Posts: 844 Helped: 29
|
05 Dec 2003 5:19 Re: Hold Time Issue!!?? |
|
|
|
|
It can cause Hold time violation.
To avoid this put synchronizers.
|
|
| Back to top |
|
 |
r_e_m_y
Joined: 02 Oct 2003 Posts: 77 Helped: 1
|
05 Dec 2003 9:39 Re: Hold Time Issue!!?? |
|
|
|
|
Hi,
The probelm with hold (or setup) time violation is that the output of your flip flop mayu not be at the expected value. So you should consider this output as invalid.
If your input signal stays for 2 clock cycles, and if you can know when the input changes (may be with chip select signal ...), you can use the output of your flip flop only after the first clock , and ignore if for the second one.
Build a small state machine for this data validation system.
I hope this will help you.
|
|
| Back to top |
|
 |
always@smart
Joined: 08 Feb 2002 Posts: 308 Helped: 7 Location: ASIA
|
05 Dec 2003 11:00 Re: Hold Time Issue!!?? |
|
|
|
|
Hi all,
Thank you for reply, very appreciate..
I'm using Alter@ Fpga and Qu(at)rtus II v2.2, can you please tell me how should i fix the hold time violatatin from the input port.
Secondly, how could I synchronize with the external module, since the external clock is not going to the FPGA!!?
Regards,
|
|
| Back to top |
|
 |
it_boy
Joined: 18 Jul 2002 Posts: 181 Helped: 4
|
05 Dec 2003 15:47 Re: Hold Time Issue!!?? |
|
|
|
|
As the external clock and the internal clock are both operating at same frequency (50MHz) and the data is retained on the bus for 2 clocks, the best way to operate is to latch the data on the first clock cycle if you are having hold time issues as in r_e_m_y's post.
I dont know if @ltera supports, if it does, delaying data bus in the IOBs with the period by which it is missing the hold time.
|
|
| Back to top |
|
 |
dll_embed
Joined: 04 Sep 2003 Posts: 116 Helped: 1
|
09 Dec 2003 8:23 Re: Hold Time Issue!!?? |
|
|
|
|
If i understand your question correctly, asynchronous fifo maybe a better choice. If you use a 50M clock to sample a signal generated by another 50M clock, you have a high chance to lose data.
regards
|
|
| Back to top |
|
 |
always@smart
Joined: 08 Feb 2002 Posts: 308 Helped: 7 Location: ASIA
|
30 Dec 2003 15:59 Re: Hold Time Issue!!?? |
|
|
|
|
Hi all,
what about now the external module data only retain for 1 cycle, is there any method to avoid meta-stable of the FPGA register??
Regards,
always(at)smart
|
|
| Back to top |
|
 |
AXE Guest
|
02 Jan 2004 10:58 |
|
|
|
|
| add one register
|
|
| Back to top |
|
 |
VladZ
Joined: 11 Dec 2001 Posts: 45
|
04 Jan 2004 12:44 Re: Hold Time Issue!!?? |
|
|
|
|
See the Synthesis and Scripting Techniques for Designing Multi-Asynchronous Clock Designs on by Clifford E. Cummings. This paper is available for download at [url]http://www.sunburst-design.com/papers/ [/url]
He explanes "metastability" and "synchronizers"
best reards
vladz
|
|
| Back to top |
|
 |
andromeda
Joined: 26 Sep 2002 Posts: 71 Helped: 1
|
05 Jan 2004 5:03 Re: Hold Time Issue!!?? |
|
|
|
|
Answer for your question depends on clock sources used in data source and data destination:
- if it is the same clock, with some latency in between, you could try to play with (I work with Xilinx FPGA) feedback for clock de-skew in internal PLL and add/remove delay in IOB to compensate this latency (by the way, in PCB design clock is supposed to be routed to avoid those latencies)
- if those two 50MHz clock are generated independently you could treat them as asynchronous clock sources and do real synchronization (Cumming’s paper is definitely best source which cover this)
If you could, instead of simple flop, on destination side to qualify sampling only to first clock edge, where data is stable, it is of course the simplest way to solve this.
|
|
| Back to top |
|
 |