Was bedeutet "andere=>'0'" bedeutet eine Abtretung, Anweisung?
cmd_register: process (rst_n, clk)
begin
if (rst_n='0') then
cmd_r<= (others=>'0');
elsif (clk'event and clk='1') then
cmd_r<=...;
end if;
end process cmd_register;
Ich weiß, "<=" gibt die Zuordnung aber was ist others
? Und was macht =>
tun?
- eda.org/comp.lang.vhdl/FAQ1.html#aggregates
- (keine exakte Antwort, aber das ist eine Art FAQ-Typ Frage, ich dachte, ich würde zeigen Sie dort für den Anfang)
Du musst angemeldet sein, um einen Kommentar abzugeben.
cmd_r ist definiert als eine std_logic_vector, oder unsigned oder unterzeichnet signal. mal sehen, wie das signal-Typ definiert werden:
Beachten Sie, dass diese 3 Typen haben die gleiche definition wie ein array von std_logic Elemente.
Die Aussage "Andere => '0'" ist ein feature von VHDL-wenn die coder wollen, definiert mehrere Elemente in einem array mit dem gleichen Wert.
In deinem Beispiel, alle Artikel std_logic in das array gesetzt auf '0'.
Andere Anwendung von dieser Erklärung ist, einige Elemente zu einem bestimmten Wert und alle anderen die sich bei einem default-Wert :
In diesem Fall das bit 0 und 4 sind " 1 " und alle anderen bits sind auf '0'.
Eine Letzte Sache, es ist NICHT möglich zu schreiben etwas wie dieses :
( others => '0')
ist ein Ausdruck, der ein Aggregat von Elementen, die in einem zusammengesetzten Typ.Ohne zu sehen, die Erklärung für
cmd_r
können wir uns vorstellen, es ist ein array-Typ, ein array-Typ ist ein zusammengesetzter Typ (aus einem oder mehreren Elementen).Einem Aggregat verbindet einen oder mehrere Werte als Elemente in einem zusammengesetzten Typ.
Beachten Sie die öffnende und schließende Klammern sind erforderlich.
Diese Elemente zugeordnet werden können positionsbezogen, nach den Namen eines record-Typs oder durch index-Wert position für einen array-Typ.
Das element association ist geregelt durch Wahl.
Dem element Verband abdecken können mehr als eine Wahl.
Einer Auswahl darstellen können ein oder mehrere Elemente.
Element einfache name verwendet wird, für die ein Datensatz oder ein array-Typ mit einem index-Typ ist ein Aufzählungstyp.
others
ist immer die Letzte Wahl steht, und für die übrigen Entscheidungen, die für diesen Typ. Die Art entdeckt werden kann, der in einer Vergabe aus dem Ziel. In einigen Fällen ist der Typ, der erforderlich ist, um die explizit bereitgestellt werden, wie in einem qualifizierten Ausdruck.Das element association
others => '0'
steht für alle anderen Elemente von der Art des Aggregats. In diesem Fall den Typ und Untertyp dercmd_r
, wo ein Subtyp-Angabe gibt einen Bereich index der Elemente einer std_logic_vector.Den Ausdruck
'0'
erforderlich ist, um von der element-Typ, und die Anhäufung(others => '0')
steht für einen Wert eines Untertyps voncmd_r
aus'0'
's für jedes der Elemente dercmd_r
in diesem Fall.Es bedeutet nur, setze alle bits auf null!!
Den Ausdruck (
others=>’O’
) bedeutet, dass alle Elemente werden zugewiesen,'0
'.Wenn
cmd_r
ist 8 bit, dann wird es weisen00000000
zucmd_r
. Wenn cmd_r ist zweidimensional dann der gleiche sein (andere =>(others =>'0')).cmd_r<= '0'