Methodik
HDL Simulation
Funktionale Simulation des Modells
Bei einer VHDL- oder Verilog-Beschreibung einer Schaltung handelt es sich nicht um ein Programm im eigentlichen Sinne, sondern um ein Modell. Dieses soll auf RTL Ebene (RTL steht für Register Transfer Level d.h. die Abstraktionsebene auf der zwischen Registern und kombinatorischen Elementen unterschieden wird) das Verhalten des zu erstellenden Moduls repräsentieren. Sobald ein Modul geschrieben wurde, sollte verifiziert werden, dass das Verhalten des Modells mit dem gewünschten Verhalten der späteren Schaltung übereinstimmt. Dies ist bei der Komplexität heutiger FPGA oder ASIC Designs unumgänglich, da die Fehlerfindung im fertigen System leicht zu einer kaum beherrschbaren Mammutaufgabe mutieren kann.
Während es beim HDL Code Checking um die Überprüfung formaler Anforderungen an den Code Stil geht, dient die Simulation also der Überprüfung von implementierten Funktionen des späteren Systems. Hierzu unterscheidet man in der Regel zwischen einem Modell der Systemumgebung (Testbench) und dem zu implementierenden Modell des FPGAs oder ASICs (of DUT für Design under Test).
Die Testbench dient in der Simulation dazu, geeignete Stimuli für das Design under Test zu generieren und evtl. auch dazu die Ergebnisse automatisch zu interpretieren. Während der Simulation werden die Stimuli an das HDL Modell angelegt und die Ergebnisse aufgezeichnet. Am Ende der Simulation werden diese dann automatisch oder manuell ausgewertet.
Diese Auswertung kann z.B. auf Basis von Text basierenden Stimuli Files oder Waveform Diagrammen erfolgen.
Auch wenn der Aufbau einer umfassenden Testumgebung für das HDL Modell einen zusätzlichen Aufwand bedeutet, ist dieser Schritt von grundlegender Bedeutung für die Qualität und Effizienz des Entwicklungsprozesses. “Try and Error”-Verfahren mögen bei kleinen PLD Designs noch ihren Zweck erfüllt haben, sind aber bei komplexeren Designs nicht mehr anwendbar.
Je nach Komplexität des Projektes verbringen Ingenieure bis zu 70% ihrer Zeit mit der Eingabe und der Simulation von HDL-Code. Das Ziel sollte immer sein FPGA´s oder ASIC´s so vollständig zu testen, dass die generierte Hardware auf Anhieb läuft. Auf diese Weise werden unnötige Maskenkosten beim ASIC und teure HW-Testzyklen (Messtechnik etc.) beim FPGA vermieden. Die Investition in effiziente Entwicklungsumgebungen (Eingabe, Simulation etc.) ist eine strategische Investition in die Qualität und Berechenbarkeit des Entwicklungsprozesses.
Die Waveform-Darstellung gibt einen schnellen Überblick, welchen Status die verschiedenen Signale während der Simulation haben. Komfortabel integrierte Entwicklungsumgebungen (wie z.B. Active-HDL von ALDEC) bieten zudem die Möglichkeit den Signalzustand zu einem bestimmten Zeitpunkt in Blockdiagrammen oder Zustandsablaufdiagrammen anzuzeigen.

