Habe ein Beispiel für die Entprellung vom RX-Eingangssignal einer Uart gefunden.Beispiel ist als Anhang dabei. Kann die Konstruktion RX_status(3 downto 0) & RX nicht verstehen.
"Konkatenation", RX_status(3 downto 0) und RX werden aneinandergehängt und es kommt ein längerer Vektor dabei raus.
Danke für den Hinweis. Bisher verstand ich unter Konkatenation die Verschmelzung zweier Felder zu einem größerem Feld. In VHDL muß diese Operation anders definiert sein. Wo finde ich eine nähere Beschreibung zur Konkatenation,die genau dieses Verhalten der Bitverschiebung nach links erläutert?
Gast
#655972
>Bisher verstand ich unter Konkatenation die Verschmelzung zweier Felder >zu einem größerem Feld. Das ist auch in VHDL so.
1 | |
2 | |
3 | |
rotiert das ganze nach links.
Hallo Frank dein Beispiel ist zunächt nicht weiterhelfend zum Verständnis der Rotation im Hautpfeld. In dem Beispiel UART werden 2 Signale miteinader verbunden.Beide Signale haben eine vorgegebene Bitbreite von 4 und 1 Bit. Erfolgt die Verschiebung nach links durch Angabe einer reduzierten Bitbreite von 0 bis 2 vom Hauptfeld ? Das höchtswertigste Bit wird vergessen. Damit die Siggnaldefinition wieder erfüllt ist wid ein Bit von links hinzugefügt.
Gast
#656046
RX_SR wird als 4 bit Vektor definiert: (3 downto 0) In der Signalzuweisung werden die untersten 3 Bits (LSBs) selektiert: RX_SR(2 downto 0) nun wird an diesen 3-bit-Vektor rechts ein zus. Bit angefügt: RX_SR <= RX_SR(2 downto 0) & RX damit erhält man wieder einen 4 bit breiten Vektor, der RX_SR zugewiesen wird. Die 3 LSBs landen dabei eine Bitposition weiter links und als LSB wird RX eingefügt. Damit erhält man ein Schieberegister. Alles klar? Um die Lesbarkeit zu verbessern könnte man auch schreiben: RX_SR(3 downto 0) <= RX_SR(2 downto 0) & RX; oder RX_SR <= RX_SR(RX_SR'LEFT-1 downto 0) & RX;
Antwort schreiben
Bitte melde dich an, um einen Beitrag zu schreiben.