Programmable Devices
CPLDs, FPGAs, SoC FPGAs, Configuration, and Transceivers
21271 Discussions

Signal falsely changes to '1' after clock starts

lounug
Novice
1,840 Views

Hi, 

 

I got a very rare case that I have never seen before after years developing Intel FPGA Design and verifying the design using SignalTap.

 

A std_logic signal that has initial value of '0' and reset to '0' (asynchronous reset) somehow toggles to '1'. I found this out by using the SignalTap Power-Up Trigger.

 

A simplified code snippet that assigns this signal would be:

 

question_code_snippet.png

I expect the signal "init_w" will ONLY go to '1' when STATE = sPATH_1.

But it goes to '1' immediately after clock is ticking.

This is shown by "cnt_debug" signal, which is a 24-bit counter that counts at every rising edge of "clk" after FPGA is booted up.

question.png

 

Did anyone have ever this problem/bug/case before?

Any ideas/solution/any comment from Intel Devs or Admin would be greatly appreciated.

 

Thank you in advance.

0 Kudos
1 Solution
FvM
Honored Contributor II
1,778 Views
You should definitely try a reset synchronizer. For implementation, see paragraph recommended design practice - asynchronous reset in Quartus manual.

View solution in original post

9 Replies
FvM
Honored Contributor II
1,819 Views

How is reset generated in the design, is it released synchronous to clock? If not state machine may have irregular transitional states that are not seen in SignalTap recording. Also is clk PLL generated or directly driven form an external source?

lounug
Novice
1,795 Views

Hi FvM, 

 

thanks for your reply.

 

Regarding your question about reset, I just checked with my colleagues, the reset pin is indeed always toggled to inactive, as soon as the FPGA is booted up.

Regarding the clocking, the clock is 50MHz generated by PLL, and the PLL itself gets 25MHz clock from external oscillator on the circuit board that is connected to the FPGA clock pin.

 

Do you think the problem can be caused by the reset?

 

We have tested this design/FPGA with more than 50000 power on/off cycle, and the error trigger (shown above) is seen at most in random, in average once every 750 power on/off cycle. 

But when the product does not function properly (hence the error trigger is latched by SignalTap) it is always because of this one specific signal "init_w", not any other signal.

So I really wonder, if the problem comes from any reset behaviour, why doesn't this affect other signals in the design?

 

Look forward for your reply again.

In parallel, I will try to modify the reset behaviour to test if it changes the error events. 

0 Kudos
FvM
Honored Contributor II
1,779 Views
You should definitely try a reset synchronizer. For implementation, see paragraph recommended design practice - asynchronous reset in Quartus manual.
lounug
Novice
1,691 Views

Thank you for the suggestion, I will test the design using synchronous reset

0 Kudos
SyafieqS
Employee
1,708 Views

Did you manage work on previous suggestion?


0 Kudos
lounug
Novice
1,691 Views

I am currently running test using the suggestion! It will be running for a few days

0 Kudos
SyafieqS
Employee
1,602 Views

Let me know if there is any update


0 Kudos
lounug
Novice
1,585 Views

It is working until now, yesterday I already marked the reply as solution as you can see above

0 Kudos
SyafieqS
Employee
1,516 Views

I’m glad that your question has been addressed, I now transition this thread to community support. If you have a new question, Please login to ‘https://supporttickets.intel.com’, view details of the desire request, and post a feed/response within the next 15 days to allow me to continue to support you. After 15 days, this thread will be transitioned to community support. The community users will be able to help you on your follow-up questions.


p/s: If any answer from community or Intel support are helpful, please feel free to mark as solution, give Kudos and rate 5/5 survey



0 Kudos
Reply