Beginnend mit der Definition von VHDL aus Wikipedia
VHDL (VHSIC Hardware Description Language) ist eine Hardwarebeschreibungssprache, die in der elektronischen Entwurfsautomatisierung zur Beschreibung von Digital- und
Mixed-Signal- Systemen wie feldprogrammierbaren Gate-Arrays und integrierten Schaltkreisen verwendet wird. VHDL kann auch als allgemeine Parallelprogrammiersprache verwendet werden.
VHDL wird hauptsächlich zur Beschreibung digitaler Schaltungen für ASIC oder FPGAs verwendet, kann jedoch für digital-analoge Systeme (Mixed-Signal) oder sogar zur Beschreibung paralleler Prozesse verwendet werden.
'Ereignis bedeutet eine Änderung eines digitalen Signals, dh eine Flanke . In Kombination mit '1' definieren Sie eine steigende Flanke . Dies ist fast dasselbe wie die Funktion running_edge (clk) . Hier der kleine Unterschied zwischen ihnen (für fortgeschrittene Benutzer).
Wenn Sie also kein Ereignis verwenden, beschreiben Sie einen Prozess, der während der hohen Stufe von clk aktiviert wurde. Beispielsweise befindet sich bei einem 40-MHz-Takt mit einem Tastverhältnis von 50% der Takt während 12,5 ns im Zustand '1'. Was passiert mit dem Zähler während dieser 12,5 ns? Wie oft wird während dieser 12,5 ns gezählt? Und das Wichtigste: Das System, in das dieser Code geschrieben wurde, kann einen Zähler mithilfe eines Taktpegels inkrementieren. Wahrscheinlich nicht, obwohl Ihr Simulator die gleichen Ergebnisse liefert. Seien Sie vorsichtig mit Simulatorergebnissen , da sich Simulatoren von Synthesizern unterscheiden und sehr unterschiedliche Ergebnisse liefern können.
VHDL ist eine generalistische Sprache , die häufig zur Beschreibung digitaler Schaltungen verwendet wird. Also, jeder Hersteller ihre optimalen Vorlagen hat zu beschreiben , Zähler, Register, Speicher ... Und clock'event und clock = ‚1‘ oder rising_edge (clk) ist de-facto - Standard eine ansteigende Flanke eines Signals in der Empfindlichkeit aufgeführt zu beschreiben Liste. Wenn Sie einen asynchronen Reset beschreiben, setzen Sie auf die gleiche Weise ein Reset-Signal in die Empfindlichkeitsliste und einen hohen oder niedrigen Pegel, der das Register immer dann initialisiert, wenn das Signal aktiviert wird, und nicht zu einem mit einer Flanke definierten Zeitpunkt.
process (clock, reset)
begin
if reset='1' then
count <= (others => '0');
elsif clock='1' and clock'event then
<count> <= <count> + 1;
end if;
end process;
Zusammenfassend verwendet jeder Hersteller programmierbarer Logik einen begrenzten und definierten Satz von VHDL-Definitionen, um seine Systeme zu beschreiben. Ich empfehle Ihnen, nach den VHDL- oder Verilog-Vorlagen für Xilinx oder Altera zu suchen. Diese Vorlagen werden vom Synthesizer korrekt verstanden, um in Elemente eines bestimmten programmierbaren Logikchips oder ASIC oder anderer Systeme übersetzt zu werden.