Problem Codierung FlipFlop in VHDL

A

AMCC

Guest
Dear All, ich bin mit dem folgenden Code zum Erstellen eines FF mit synchronen Reset und aktivieren: Run_Condition: PROCESS (aq_clk, en_aq, start, run) BEGIN if (aq_clk'event und aq_clk = '1 ') then if (en_aq = '0 '), dann laufen
 
Prozess (aq_clk, en_aq, start) temp: std_logic_vector (1 downto 0); begin temp: = en_aq & start if (aq_clk = '1 'und aq_clk'event), dann bei (temp) ist, wenn "00" | " 01 "=> Run Run null; End-Gehäuse; end if; end process;
 
Oder stellen Sie einen Anfangswert: Signal aus: std_logic: = '0 ';
 
genau wie oben gesagt, können Sie einen Anfangswert für "run" vor dem if-Anweisungen einstellen oder ein Fall für die fehlenden Voraussetzungen nicht von Ihrem Code abgedeckt ... oder können Sie einfach ein "anderes" Zustand vor dem "Ende wenn "zur Deckung der fehlenden Voraussetzungen (wie das Hinzufügen Fall):)
 
Hallo alle, aber in der Synthese dieser ersten Werte werden nicht berücksichtigt. Wie dieses Problem zu beheben, wenn das Gerät die Initialisierung benötigt wird.
 
Dear all, Vielen Dank für Ihre Kommentare, aber ich denke, dass das Problem nicht ist der Anfangswert. 'Run' startet '0 'eine oder andere Weise (entweder standardmäßig Initialisierung oder durch die Tatsache, dass en_aq '0' zunächst (und dieses ist richtig initialisiert) ich mich, ob es einen Unterschied zwischen der Verwendung Wunder:. Wenn elsif endif OR if else if end if Ist es möglich, dass der Synthesizer kann verschiedene Ansichten des Codes haben? Thnak Dank für Ihre Aufmerksamkeit. Mit freundlichen Grüßen AMCC
 
vor allem gibt es keine endif es nur Ende ist, wenn in VHDL, wenn Sie elsif sagen ... dann ist es nur die Fortsetzung des if-Anweisung vor dem letzten else-kann man einfach haben, ob und elsif .. oder wenn und aber ... hängt auf Ihrem Design Verhalten .... aber wenn es anders ist, wenn ... dann gibt es, wenn else-Anweisungen verschachtelt ... und das ist etwas anderes in der Synthese natürlich schätze ich dein Problem liegt in der if else-Anweisungen ... versuchen, sie richtig zu schreiben nach dem Verhalten der ff Sie haben wollen ... Also mein Rat fügen eine abschließende sonst mit den Bedingungen, die aus den ersten beiden Bedingungen laufen und starten drop:)
 
Liebe Salma, natürlich "end if" ... mein "Schreiben" Fehler :). Eine verwandte Frage in meinem Kopf gestellt: Was ist der Unterschied bei der für einen Synthesizer, wenn Codierung einer Flip-Flop mit synchroner aktivieren und Reset der beiden folgenden Beschreibungen? Description1: if (clk'event und clk = '1 ') then if (reset = '1') dann
 
natürlich die genaue Umsetzung des Kodex richtet sich nach der Synthese-Tool verwendet und die Ziel-Architektur des Gerätes .... aber im Allgemeinen: if (ohne anderes) leitet ein Latch (dies zu vermeiden), wenn sonst bedeutet eine mux wenn else if oder wenn elsif ... implizieren Priorität codiert Logik ... mit verschiedenen Ebenen nach den Aussagen geschrieben ... stell dir vor als ob Sie haben hier ein Mux mit einer einfachen Eingabe an einem Pin (der Code nach dem if) und eine ganze Reihe von anderen Logik als der andere Eingang (der Code nach dem else if oder elsif ... etc), dass die Herstellung einer anderen Ebene mit muxes ... etc: D
 
In diesem Programm, wenn "Ausführen"-Modus ist out (Ausgang), dann u nicht in den Prozess () Empfindlichkeit Liste zu setzen oder wenn ausgeführt wird variable dann nutzen Sie variable Zuweisung für assiging den Wert. wie laufen: = en_aq;
 
Jungs es funktioniert nur in Verilog, wenn cond 1 dann Anweisung 1, wenn cond 2 dann Anweisung2 in Vorrang-Encoder in VHDL zu bauen denkt sich etwas anders, was passieren soll, wenn cond1 und cond beide wahr, so ist dies zu beschreiben oder cond1 und cond2 falsch. Regards,
 

Welcome to EDABoard.com

Sponsor

Back
Top