Problemy z implementacją w CPLD

Jan 22, 2009 22 Replies

raczej adres NIE moze sie zmieniac na obu zboczach :) musisz zapewnic stabilny adres co najmnie 0ns przed opadajacym zboczem we i co najmniej 0ns po rosnacym zboczem;

optymista jestes; one-hot jest zwykle szybszym kodowaniem, a to sugeruje, ze poprawne dzialanie zalezy od jakis opoznien w fpga, nieprzewidywalnych i co wazniejsze niepowtarzalnych; moze sie zdarzyc, ze na 5 kosciach bedzie dzialac, na szostej nie bedzie; albo odwrotnie;

ta szpilka swiadczy o zlym rozwiazaniu; domyslam sie, ze nWriteEnable to nWR, czyli 'aktywny' jest puls: H-L-H; czyli bardziej pogladowo byloby: !nWriteEnable <= !nWriteToMem AND !Clock AND nReadFromMem; szpilka wynika prawdopodobnie z tego, ze nWriteToMem lub nReadFromMem tez jest zapisywany opadajacym zboczem Clock, a to jest pewnie efektem tego, ze fsm pedzisz odwroconym zegarem; a ten xilinx ma pll w sobie ? JA

Chodzi o to, ze przy logice kombinatoryjnej generujesz opoznienia ktore sa przenoszone 'dalej'. Zmniejsza to Fmax (nie ma duzego znaczenia dla CPLD, ale w fpga to czasem jest 'killer' predkosci).

Jak musi, to o tym wiesz. Jak o tym wiesz, to zrob ladnego if coby dff wygenerowal - 90% ze rozwiazesz sprawe (nawet bez wdawania sie w szczegoly).

Nie masz sygnalu ktory powoduje blad. Masz po prostu blad w projekcie (cos jak memory leak przy pisaniu programow). Po prostu nie zawsze sie objawia.

Nie da rady nic wiecej powiedziec nie widzac kodu - wiec proponuje EOT.

Aha: sprawdz to jeszcze raz zanim zrobisz tego 10.000 sztuk ;-)

Join the Discussion

Have something to add? Share your thoughts — no account required.

Didn't find your answer?

Ask the community — no account required