Programmable Devices
CPLDs, FPGAs, SoC FPGAs, Configuration, and Transceivers
21592 ディスカッション

Signal falsely changes to '1' after clock starts

lounug
初心者
2,399件の閲覧回数

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 件の賞賛
1 解決策
FvM
名誉コントリビューター II
2,337件の閲覧回数
You should definitely try a reset synchronizer. For implementation, see paragraph recommended design practice - asynchronous reset in Quartus manual.

元の投稿で解決策を見る

9 返答(返信)
FvM
名誉コントリビューター II
2,378件の閲覧回数

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
初心者
2,354件の閲覧回数

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. 

FvM
名誉コントリビューター II
2,338件の閲覧回数
You should definitely try a reset synchronizer. For implementation, see paragraph recommended design practice - asynchronous reset in Quartus manual.
lounug
初心者
2,250件の閲覧回数

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

SyafieqS
従業員
2,267件の閲覧回数

Did you manage work on previous suggestion?


lounug
初心者
2,250件の閲覧回数

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

SyafieqS
従業員
2,161件の閲覧回数

Let me know if there is any update


lounug
初心者
2,144件の閲覧回数

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

SyafieqS
従業員
2,075件の閲覧回数

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



返信