You are here

Die Implementierung in VHDL

Error message

Deprecated function: Array and string offset access syntax with curly braces is deprecated in include_once() (line 20 of /mnt/web216/e3/48/5667948/htdocs/includes/file.phar.inc).

4. Die Implementierung in VHDL

Neben Verilog [7] ist VHDL [4] diejenige Sprache in der man CPLDs und auch FPGAs [1] bevorzugt programmiert. Ich selber habe zu VHDL gegriffen, nicht zuletzt auch deswegen, weil mir zufällig ein Buch dazu [8] zur Verfügung stand.

Das Prototypenboard wurde mit drei CPLDs bestückt. Das erzwingt entsprechend eine Aufteilung der Funktionsblöcke. Die CPLDs der Serie XC9500XL sind intern in sogenannte Makrozellen eingeteilt. Der XC9536XL hat 36 davon, der XC9672XL hat entsprechend 72 Stück. Man beachte die auf der Zahl neun basierend Anzahl der Makrozellen! Eine Makrozelle enthält, stark vereinfacht gesprochen, ein Flip-Flop. Manche Makrozellen sind mit I/O-Pins verbunden, andere nicht. Die Einzelheiten sind in den Datenblättern nachzulesen [2]. Ein 32-bit-Zähler benötigt 32 Flip-Flops und verbraucht demnach 32 Makrozellen. Hat er dann noch ein Latch, verdoppelt sich die Anzahl der benötigten Makrozellen auf 64. Besonders attraktiv an der XC9500XL-Familie ist, daß etwa beim XC9572 dann immer noch 8 weitere Makrozellen für Hilfsaufgaben zur verfügung stehen.

Als ein wesentlicher Funktionsblock wurde der Zähler mit Latch bereits genannt. Wenn der Zähler fertig ist, überträgt er seinen Zählerstand parallel in das Latch, das dann seinerseits seriell (via SPI) ausgelesen werden kann. In der Zwischenzeit kann der Zähler erneut zählen. Diese Aufgabe wird einer der beiden XC9572XL übernehmen. Der zweite Funktionsblock ist eine Ablaufsteuerung, die die notwenigen Steuersignale (Zählerreset, Latch-Laden etc.) zum richtigen Zeitpunkt generiert. Als drittes wird noch ein Vorteiler benötigt, der ausgehend von einem 10 MHz Quarzoszillator Impulse in verschiedenen Längen (typischerweise 0,1 und 1 Sekunde) generiert. Während dieser Torzeiten werden die zu zählenden Impulse zum Zähler durchgelassen. Die Funktion des erzeugens der Torzeiten wurde aufgeteilt in einen Vorteiler (Faktor 2000; in einem separaten XC9532XL) und einen umschaltbaren Teiler, der in der Ablaufsteuerung mit untergebracht wurde. Im folgenden werden die drei Funktionsblöcke ausführlicher behandelt.