mikrocontroller.net

Forum: FPGA, VHDL & Co. Asynchrones Problem


Autor: Michael K. (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Falk Brunner (falk)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Lothar Miller (lkmiller) (Moderator) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht 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...

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [vhdl]VHDL-Code[/vhdl]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.