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


von Martin K. (mkohler)


Angehängte Dateien:

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?

von Martin K. (mkohler)


Angehängte Dateien:

Lesenswert?

die statemachine...

von Martin K. (mkohler)


Angehängte Dateien:

Lesenswert?

die device utilization...

von Martin K. (mkohler)


Angehängte Dateien:

Lesenswert?

...und noch der VHDL Code.

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.