Forum: FPGA, VHDL & Co. Asynchrones Problem


von Michael K. (Gast)


Lesenswert?

Hallo zusammen,
ich grüble schon länger an einem Problem, werde mir aber über die 
"richtige" Realisierung nicht klar und hoffe auf Ansätze die ein 
sicheres Design ermöglichen.
Aufgabe ist 3 asynchrone Eingangssignale (100ns Glichtfilter vorhanden, 
im Regelfall ändert sich nur eines dieser Signale) so schnell wie 
möglich auszuwerten und je nach Zustand diverse Ausgangssignale zu 
schalten. Da in max. 20ns (möglichst konstant) auf eine Änderung 
reagiert werden mss und nur ein 20Mhz-Takt zur Verfügung steht, ist eine 
synchrone Lösung ausgeschlossen.

Die Signale folgen idR einer fixen Sequenz von 6 Zuständen, z.b.:
001, 101, 111, 110, 010, 011 (und wieder von vorn)

Parallel wird der korrekte Ablauf dieser Sequenz in einer (getakteten) 
FSM (mit synchronisierten Eingängen) für Diagzwecke überwacht. Da dies 
allerdings für das Schalten der Ausgänge zu langsam ist, sollte die 
Sequenz auch durch Kombinatorik gewahrt sein. (Wohl nur mit Latches 
realisierbar?)

Das Design soll zunächst in einem MaxII-CPLD getestet und später mit 
mgl. wenigen Anpassungen in ein ASIC portierbar sein.

Wie würdet ihr an das Problem gehen? Was muss ich bei einer rein 
kombinatorischen Lsg. beachten, um ein stabiles Design zu bekommen? Kann 
man den (Fehler-)Fall abfangen, dass sich doch >1 Eingangsignal 
zeitglich ändert?

Vielen Dank im voraus für alle Ideen.

Gruß,
Mike

von Falk B. (falk)


Lesenswert?

@  Michael K. (Gast)

>Aufgabe ist 3 asynchrone Eingangssignale (100ns Glichtfilter vorhanden,

100ns Glitchfilter und

>schalten. Da in max. 20ns (möglichst konstant) auf eine Änderung
>reagiert werden mss

20ns Reaktionszeit passen nicht zusammen.

>allerdings für das Schalten der Ausgänge zu langsam ist, sollte die
>Sequenz auch durch Kombinatorik gewahrt sein. (Wohl nur mit Latches
>realisierbar?)

??

>Das Design soll zunächst in einem MaxII-CPLD getestet und später mit
>mgl. wenigen Anpassungen in ein ASIC portierbar sein.

Asnchron und ASIC-Portierung schreit nach Problemen ;-)

>Wie würdet ihr an das Problem gehen? Was muss ich bei einer rein
>kombinatorischen Lsg. beachten, um ein stabiles Design zu bekommen? Kann
>man den (Fehler-)Fall abfangen, dass sich doch >1 Eingangsignal
>zeitglich ändert?

Es gibt Prinzipen für asynchrone Logik. Nein, keine wilden 
Bastelkonstruktionen sondern fundierte Reglen.
Damit wurden schon Mikroprozessoren gebaut. Das ist dann auch sicher. 
Allerdings ist es ein gewisser Aufwand und eine etwas andere Logik.
Also die Sache mal rechercieren und anwenden. NICHT wild 
drauflosmurksen!

MFG
Falk

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


Lesenswert?

Michael K. schrieb:
> Was muss ich bei einer rein kombinatorischen Lsg. beachten,
Dass die Zeitangaben im Datenblatt nur den Worst Case Fall abdecken.
Dein CPLD kann jederzeit schneller sein...

> Da in max. 20ns (möglichst konstant) auf eine Änderung
> reagiert werden mss und nur ein 20Mhz-Takt zur Verfügung steht,
> ist eine synchrone Lösung ausgeschlossen.
Du willst also irgend eine Logik in ein CPLD hacken und die darf dann 
max. 20ns brauchen?
Kein Problem, das kann sogar die langsamste Gurke.

Und auch die Durchlaufzeit zwischen ist dabei ziemlich konstant, weil ja 
die selben Produktterme verwendet werden. Allerdings kann sich diese 
Durchlaufzeit abhängig von der Temperatur ändern.

> Kann man den (Fehler-)Fall abfangen, dass sich doch
> 1 Eingangsignal zeitglich ändert?
Nicht sinnvoll. Denn da mußt du zum Speichern des letzten Zustands mit 
Latches arbeiten, und das hat idR. unschöne Nebeneffekte...

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.