www.mikrocontroller.net

Forum: FPGA, VHDL & Co. Xilinx FPGA: Serial Data Reader erweitern - Platzproblem?


Autor: Martin Kohler (mkohler)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
Hallo zusammen,
ich habe mal vor einiger Zeit einen VHDL Data Reader erstellt, mit 
welchem Daten von einem Markenleser anhand der aktuellen Drehgeber 
Position erfasst werden konnten.
Dieser Reader enthält ein WindowDetect Modul, welches bestimmt, ob die 
aktuelle Position in der gültigen Lesezone liegt. Die Lesezone kann an 
einer Stelle unterbrochen (maskiert) werden.
Die Start- und Endwerte von Fenster und Maske werden in einem separaten 
Registerblock eingestellt und als Signale in das WindowDetect Modul 
geführt.
Die Encoderpositon wird ebenfalls in einem separaten Modul erfasst und 
eingespeist.
Die Auflösung der Werte ist durchgängig 14Bit (hat seinen Grunde, ja)

Aktuell ist die WindowDetection so aufgebaut, dass eine Statemachine 
abgearbeitet wird. Jede Grenze von Window- und Mask wird in einem 
separaten State bearbeitet. Dies führt dazu, dass für die Window 
Detection nun 4 separate 14bit Komparatoren für die Vergleiche 
instantiiert werden.

Nun habe ich den Auftrag gefasst, dieses Modell so zu erweitern, dass 
neu bis zu 5 Masken anstelle einer einzigen definiert werden können.

Wenn ich nun das bestehende Modell einfach um weitere 4 Masken 
erweitere, zusätzliche 8 14Bit Register erstelle und die Statemachine um 
die 4 Masken erweitere, dann benötige ich schon 12 Stück 14-bit 
Komparatoren.

Da nun der ganze Reader im Gesamtsystem 4fach vorhanden ist, habe ich 
nun Bedenken, dass mir die zusätzlichen 32 14bit Register und 32 14bit 
Komparatoren das FPGA "sprengen" werden.

Ich verwende einen Xilinx XC3S250E, der ist momentan ausgelastet gemäss 
nachfolgendem Bild.
Die zusätzlichen 32x 14Bit Register sollten bei der freien Anzahl Slice 
FlipFlops wohl kein Problem sein, problematischer werden wohl die 
Komparatoren.

Es sollte vermieden werden, dass ich das nächstgrössere FPGA nehmen 
muss, da es sich um eine Anpassung auf einem bestehenden Board handelt.

Kann jemand beurteilen, ob die zusätzlichen Masken nach dem bisherigen 
Ansatz Platz finden könnten oder ob ein komplett anderer Ansatz zur 
Bearbeitung der Masken gewählt werden sollte.
Eventuell könnten die Window/Mask Werte aus einer Art Queue in eine 
Vergleichseinheit geladen werden, so dass nur noch 1 Komparator nötig 
wird, die Umschaltlogik dafür grösser wird.

Was meinen die Experten dazu?

Autor: Martin Kohler (mkohler)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
die statemachine...

Autor: Martin Kohler (mkohler)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
die device utilization...

Autor: Martin Kohler (mkohler)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
...und noch der VHDL Code.

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.