UPGRADE YOUR BROWSER

We have detected your current browser version is not the latest one. Xilinx.com uses the latest web technologies to bring you the best online experience possible. Please upgrade to a Xilinx.com supported browser:Chrome, Firefox, Internet Explorer 11, Safari. Thank you!

cancel
Showing results for 
Search instead for 
Did you mean: 
Explorer
Explorer
2,352 Views
Registered: ‎05-31-2017

Non periodic signal as clock source : Error

Jump to solution

Hello everybody!

 

I'm back with new trouble!

 

I am now with the timing constraints. First time...

I can't find the good answer to my problem :

 

A module (including a MIG) generate an output signal used as input clock of a counter (increment every rising edge).

This signal, used as clock, isn't a clock! Sometimes it can be low during multiples seconds.

So, the timing report say "No clock".

 

Is there a way to ignore timing constraint s in this case, or my code is very very bad :) ?

 

Thanks

 

Paul

0 Kudos
1 Solution

Accepted Solutions
Guide avrumw
Guide
4,044 Views
Registered: ‎01-23-2009

Re: Non periodic signal as clock source : Error

Jump to solution

or my code is very very bad :) ?

 

Yes. It is.

 

In synchronous digital design (particularly in FPGAs) we don't do this.

 

If you want to increment a counter on a rising edge of an aperiodic signal, then you:

  - sample the aperiodic signal on a "fast enough" clock

     - this needs to use a synchronizer to ensure the signal is not metastable

     - this will also need a timing exception

  - use the synchronized version of the signal to determine when it has transitioned from a 0 to a 1

     - it it was a 0 on the last clock cycle, and is a 1 on this clock cycle then it experienced a rising edge

  - run the counter on the same high speed clock as the synchronizer

     - increment it on the clock cycle where the 0->1 transition was detected

 

Now your entire system runs on a single clock. If you specify a create_clock for that clock input, your design will be timed correctly.

 

Avrum

View solution in original post

2 Replies
Guide avrumw
Guide
4,045 Views
Registered: ‎01-23-2009

Re: Non periodic signal as clock source : Error

Jump to solution

or my code is very very bad :) ?

 

Yes. It is.

 

In synchronous digital design (particularly in FPGAs) we don't do this.

 

If you want to increment a counter on a rising edge of an aperiodic signal, then you:

  - sample the aperiodic signal on a "fast enough" clock

     - this needs to use a synchronizer to ensure the signal is not metastable

     - this will also need a timing exception

  - use the synchronized version of the signal to determine when it has transitioned from a 0 to a 1

     - it it was a 0 on the last clock cycle, and is a 1 on this clock cycle then it experienced a rising edge

  - run the counter on the same high speed clock as the synchronizer

     - increment it on the clock cycle where the 0->1 transition was detected

 

Now your entire system runs on a single clock. If you specify a create_clock for that clock input, your design will be timed correctly.

 

Avrum

View solution in original post

Explorer
Explorer
2,096 Views
Registered: ‎05-31-2017

Re: Non periodic signal as clock source : Error

Jump to solution

Hi @avrumw

 

Thank you for you answer.

 

It was the solution i wanted to avoid :) But it's the only good solution so... I will correct it!

 

 

0 Kudos