Forum: FPGA, VHDL & Co. Desig/Routing Probleme bei Lattice MachXO2280


von Andi Z. (duderino65)


Lesenswert?

hallo,

ich habe das problem, dass mein design beim place&route nicht mehr 
funktioniert bzw. das timing total im eimer ist.
neben den normalen signale habe ich noch testsignale aus den jeweiligen 
untermodulen an eine pfostenleiste gelegt um die funktionen prüfen zu 
können.
wenn ich bspweise ein anderes signal an mein testsignal lege dann muss 
ich darum bangen, dass das design nicht mehr funktioniert.

ich habe ein design welches einen transmitter-modul und ein 
receiver-modul enthält. im normalfall sind die designs getrennt auf je 
einem board. später soll es jedoch im duplex modus laufen. d.h. beide 
module getrennt auf jedem board. zur zeit habe ich beide designs auf 
einem fpga. diese sind intern miteinander verbunden. also die 
datenleitungen von transmitter zum receiver.

was mir aufgefallen ist, ist dass mein clock-pfad ein sehr hoches delay 
hat. im physikal-view im designplanner habe ich dann gesehn das die 
clockleitung (25Mhz) auf den normalen internen leitungen geführt wird 
und erst sehr viel später auf die schnelleren clock-leitungen geroutet 
wird.

ich kann mein problem leider nicht genau beschreiben weil ich selber 
nicht genau weiss was da vor sich geht.
ich habe eben beobachtet das nach einer kleinen änderung das design 
nicht mehr richtig funtioniert, bzw sich nicht mehr ganz compilieren 
lässt (wegen timing violations).
auch wenn ich z.B. einen zählstatus an das testsignal lege dann läuft 
der zähler normal. greif ich alledings nicht mehr auf den zähler zu, seh 
ich an meinen datenleitungen fehler die aufgrund des falschen 
zählerstandes zustande kommen.

hat schon jemand ähnliches beobachtet? hat jemand eine idee wie das 
zusatnde kommen kann bzw was ich eventuell falsch mache?

ich verwende den ispLever8.1 SP1 und habe einen MachXO2280.
ein report summary könnte ich auch noch mitgeben.


mfg  Andi

von Andi Z. (duderino65)


Angehängte Dateien:

Lesenswert?

hallo,

im anhand ist der Place&Route TRACE Report.
Dort ist ein pfad mit einem delay von ca 20ns aufgelistet.
was mich wundert ist das delay von über 3ns vom TXC eingang zum txc_i 
signal.
auch sonst kommt viel delay durch das routen zustande.

zu meinem problem: habe in der top-level-entity ein vector welcher auf 
die pfostenleiste auf meinem board rausgeht. an diesem vector liegen 
unter anderem testsignal aus den unteren design-levels. nun habe ich die 
testsignale von transmitter und receiver an der pfostenleiste getauscht. 
also das eine testsignal auf einen anderen pin usw.
hierbei entstehen holdtime violations die der router versuch 
wegzumachen. das klappt allerdings nicht. änder ich die belegung der 
ausgangspins wieder, ist alles ok.

ich bin gerade ratlos was da passiert. ich möchte ja lediglich ein paar 
signale aus den prozessen, die nicht rausgehen, anschauen.
es ist für mich etwas unvorstellbar warum bei einer so kleinen änderung 
wieder alles zusammenfällt.

kann mir jemand weiterhelfen oder weiss jemand was da los ist?

mfg Andi

von Lothar M. (Firma: Titel) (lkmiller) (Moderator) Benutzerseite


Lesenswert?

> kann mir jemand weiterhelfen oder weiss jemand was da los ist?
Wieviele Takte hast du?

> es ist für mich etwas unvorstellbar warum bei einer so kleinen änderung
> wieder alles zusammenfällt.
Hast du kombinatorische asynchrone Resets?

von Andi Z. (duderino65)


Lesenswert?

hallo,

ich habe einen 25Mhz takt von einem Ethernet-Chip. Zudem kommt eine 
BITCLOCK und eine WORDCLOCK von einem adat-chip (als I2S Format). 
Bitclock läuft max. bei ca 3.07 MHz und die wordclock bis zu 48kHz. 
sollte aber für einen betrieb mit 96kHz ausgelegt sein.
beide I2S Takte werden samt daten eingetaktet. also sind diese ja 
synchron zu meiner 25Mhz clock.
für die wordclock habe ich eine flankenerkennung welche mir dann einen 
reset-impuls ausgibt.

diesen impuls verwende ich als asynchronen reset um einen address-zähler 
zu reseten. der reset muss asynchron sein weil ich die daten mit der 
Bitclockflanke einlese und diese später als der reset-impuls anliegt.

sollte ich sowas vermeiden?  diesen asynchronen reset brauche ich 
alledings. in einem anderen zähler habe ich auch einen asynchronen reset 
den könnte ich allerdings zu einem synchronen ändern, denk ich.


danke

mfg Andi

von Andi Z. (duderino65)


Lesenswert?

ah ja,

von einem vcxo bekomme ich ebenfalls 2 takte bei ca 22-24Mhz. die haben 
allerdings nichts mit dem 25Mhz takt zu tun.

von Lothar M. (Firma: Titel) (lkmiller) (Moderator) Benutzerseite


Lesenswert?

> in einem anderen zähler habe ich auch einen asynchronen reset
Evtl. sogar noch mit Kombinatorik?
http://www.lothar-miller.de/s9y/categories/34-Getakteter-Prozess

> den könnte ich allerdings zu einem synchronen ändern, denk ich.
Wenigstens einsynchronisieren...
http://www.lothar-miller.de/s9y/archives/64-State-Machine-mit-asynchronem-Eingang.html

von Andi Z. (duderino65)


Lesenswert?

hallo,

der reset-impuls ist ja synchron zum haupttakt. muss ich den dann 
einfach nochmal durch ein FF laufen lassen? mit diesem impuls setze ich 
eben die addressen zurück. allerdings in einem async-FF weil dieses 
durch den eingetakteten langsameren takt betrieben wir. und die 
asynchronen takte des I2S Signals müssen unbedingt durch 2 FF?

Mfg

Andi

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.