- Marcar como novo
- Marcador
- Subscrever
- Silenciar
- Subscrever fonte RSS
- Destacar
- Imprimir
- Denunciar conteúdo inapropriado
Hello,
I'm using altera devices for about 10 years with quartus or quartus + synplify pro. I'm currently struggling for about a month !!! on this issue: Using the same netlist from synplify pro, the same timing constraints, and doing the place and route with quartus, I can get total different results on FPGA (stratix III): fully working, or failing on first HW accesses. The IP in the FPGA uses a lot of clock gating and I think that Quartus is not doing a good timing analysis (timequest reports no timing violations and the design is fully constrained), leading to such random results. Did you ever face such problem at your place ? Metastability report in timequest reports no problem. Resets are ok. Cooling the FPGA does not change anything. I never faced such situation before. I need help ! AlexLink copiado
- « Anterior
-
- 1
- 2
- Próximo »
32 Respostas
- Marcar como novo
- Marcador
- Subscrever
- Silenciar
- Subscrever fonte RSS
- Destacar
- Imprimir
- Denunciar conteúdo inapropriado
that was the root cause of the issue.
adding this uncertainty of 500 ps in my sdc solves the unpredictable results. set_clock_uncertainty -add -from [get_clocks *] -to [get_clocks *] -setup 0.5 set_clock_uncertainty -add -from [get_clocks *] -to [get_clocks *] -hold 0.5 "Clock uncertainty" is the interval of confidence around the ideal clock value, such that the measured value is always within the stated interval. Common sources of clock uncertainty include clock jitter, duty cycle distortion, and phase shift error. Due to these sources, clock uncertainty must be factored in to guard against deep submicron effects that are not explicitly reflected in the timing models. PLL phase error, PLL jitter, I/O buffer, clock network noise, core noise, On chip variation (die process, temperature), crosstalk between nets. Wich is specially true for my complex design with more thqn 100 clocks and plenty of clock gating.- Marcar como novo
- Marcador
- Subscrever
- Silenciar
- Subscrever fonte RSS
- Destacar
- Imprimir
- Denunciar conteúdo inapropriado
Good, but using clock uncertainty to solve the problem, still seems to mean Quartus II fitting process does not smart enough.
It might still be good for you to file a service request for Altera to look into what they can do better- Marcar como novo
- Marcador
- Subscrever
- Silenciar
- Subscrever fonte RSS
- Destacar
- Imprimir
- Denunciar conteúdo inapropriado
--- Quote Start --- Good, but using clock uncertainty to solve the problem, still seems to mean Quartus II fitting process does not smart enough. It might still be good for you to file a service request for Altera to look into what they can do better --- Quote End --- Quartus is doing a proper job. clock uncertainty cannot be predicted and is design/fpga yield dependant. I'm currently in contact with them to get the excel sheet to calculate the real clock uncertainty, as they do it for hardcopy devices.
- Marcar como novo
- Marcador
- Subscrever
- Silenciar
- Subscrever fonte RSS
- Destacar
- Imprimir
- Denunciar conteúdo inapropriado
Well, again, there is another root cause of the problem ...
- Marcar como novo
- Marcador
- Subscrever
- Silenciar
- Subscrever fonte RSS
- Destacar
- Imprimir
- Denunciar conteúdo inapropriado
I found it this time.
Problem was due to the internal clock definiton of the cpu clock domain. Doing that was cutting io, reset and other clock domains connection timing analysis. By removing those clock definition, I could see plainty of big timing violations (like 10 ns). Now it is stable. So when it was working it was by luck due to the place and route positioning.- Marcar como novo
- Marcador
- Subscrever
- Silenciar
- Subscrever fonte RSS
- Destacar
- Imprimir
- Denunciar conteúdo inapropriado
Yes, so it has to be always be careful with the SDC constraint, it is among the biggest challenge to debug when it gives random result. Well, great work to find out the root cause
- Marcar como novo
- Marcador
- Subscrever
- Silenciar
- Subscrever fonte RSS
- Destacar
- Imprimir
- Denunciar conteúdo inapropriado
yeah, for some reason one clock that i define in a particular clock domains amongst otthers clock in the same domain, is breaking the timing path.
Will look furter into that one Today.- Marcar como novo
- Marcador
- Subscrever
- Silenciar
- Subscrever fonte RSS
- Destacar
- Imprimir
- Denunciar conteúdo inapropriado
--- Quote Start --- yeah, for some reason one clock that i define in a particular clock domains amongst otthers clock in the same domain, is breaking the timing path. Will look furter into that one Today. --- Quote End --- Anymore on your exciting progress.
- Marcar como novo
- Marcador
- Subscrever
- Silenciar
- Subscrever fonte RSS
- Destacar
- Imprimir
- Denunciar conteúdo inapropriado
Yes.
Got it this time ;-) I changed my clock constraint, I removed all gated clock definition because using create_generated_clock or create_clock of those internal clock was cutting the timing analysis for those clocks that needs to be clocked balanced. Adding them in hte same clock group was not helping. I now just define the source clock node and quartus is able, by itself, to properly figure out the clock routing and properly balance the gated clocks. I really think it is the end of story now ;-)- Marcar como novo
- Marcador
- Subscrever
- Silenciar
- Subscrever fonte RSS
- Destacar
- Imprimir
- Denunciar conteúdo inapropriado
I can confirm that the root cause of the problem is found.
I'm very happy now ;-)- Marcar como novo
- Marcador
- Subscrever
- Silenciar
- Subscrever fonte RSS
- Destacar
- Imprimir
- Denunciar conteúdo inapropriado
rtl compiler from cadence behaves the same
- Marcar como novo
- Marcador
- Subscrever
- Silenciar
- Subscrever fonte RSS
- Destacar
- Imprimir
- Denunciar conteúdo inapropriado
Glad to hear that :)

Responder
Opções do tópico
- Subscrever fonte RSS
- Marcar tópico como novo
- Marcar tópico como lido
- Flutuar este Tópico para o utilizador atual
- Marcador
- Subscrever
- Página amigável para impressora
- « Anterior
-
- 1
- 2
- Próximo »