Was ist der Unterschied zwischen Verhaltens- und Strukturcode in VHDL?


Antwort 1:

Mit dem Verhaltens-VHDL-Code können Benutzer Synthesizer (Xilinx ISE, Quartus II, RTL-Compiler usw.) anweisen, alle digitalen Logikschaltungen zu synthetisieren, um eine bestimmte Funktion gemäß dem im Code geschriebenen Verhalten auszuführen. Somit bestimmen die Synthesizer anhand des Verhaltens des Codes, wie die Schaltung aussieht, und die Benutzer kümmern sich nur um die Funktionalität des Codes.

Auf der anderen Seite besteht der Strukturcode darin, dass Benutzer Synthesizern anweisen, genau die Schaltung zu synthetisieren, die sie wollten und entworfen haben. Auf diese Weise können Benutzer die vollständige Kontrolle darüber haben, wie die Schaltung aussieht, um die gewünschte Funktion auszuführen. Durch die Verwendung von Strukturcode möchten Benutzer nicht nur die Funktionalität, sondern auch die Struktur der Schaltkreise für weitere Optimierungen (Geschwindigkeit, Bereiche usw.) berücksichtigen.

Sie möchten beispielsweise eine Addition von 2 Zahlen A und B implementieren. Schreiben Sie mithilfe des Verhaltenscodes einfach: S <= A + B; Dann synthetisieren oder wählen Synthesizer die Strukturen aus, um die Addition durchzuführen. Dies können normale serielle Addierer oder was auch immer für die Ausführung der Addition sein. Mithilfe des Strukturcodes entwerfen Sie die Struktur, die Sie zur Durchführung der Addition anwenden möchten. Um beispielsweise die Geschwindigkeit des Addierers zu verbessern, entwerfen Sie einen Carry-Look-Ahead-Addierer und schreiben dann den Strukturcode dafür.

Überprüfen Sie das vollständige Beispiel für Verhaltens- und Struktur-VHDL auf einen Volladdierer: VHDL-Code für Volladdierer


Antwort 2:

Strukturcode in jeder HDL beschreibt Dinge wie Verkabelung und physische Dinge. Der Verhaltenscode wird verwendet, um Modelle von Dingen zu beschreiben, die zwischen den Drähten verbunden sind.

Verilog weist eine leichte Überlappung auf, da sich der Verhaltenscode für primitive Elemente in C befindet und in den Simulator integriert ist und UDPs eine einfachere tabellengesteuerte Version des Verhaltenscodes sind.