mikrocontroller.net

Forum: FPGA, VHDL & Co. bit in vectore umwandeln


Autor: inga (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
hallo
ich habe einen component mit einem 5 bit vectore ausgang ( 4 downto 0)
und einen mux mit 2 eingänge jeweils (3 downto 0)
das heisst ich kann 4 bit von dem component mit einem eingang von dem 
mux verbinden
aber wie soll ich der fünfte mit einem 4 bit vector verbinden ?
ich habe ein signal deklariert so 000&fûnfte bit
aber bei portmap es kommt immer die meldung die sind nicht gleichwertig
ich bitte um hilfe
oder wie kann machen dass ich das die 3 bit von dem vectore immer auf 
nul festlegen
ich hoffe sie wissen was ich will danke

Autor: Lothar Miller (lkmiller) (Moderator) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
> ich hoffe sie wissen was ich will
Nein, das ist noch nicht ganz klar.
Evtl. könnte etwas VHDL-Code helfen...

Autor: ich (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
bau dir einen 5 bit mux statt einen 4 bit.

Autor: inga (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
nein ich will 4 bit mux weil ich das für bcd decoder brauche
um diese 5 bit in hexa zahlen darstellen kann in 2 
siebensegmenteanzeigen
und das alles mit vhdl
zusammenfassung 5 bit vector in 2 hexazahlen einmal (0000 BIS 
1111)anzeige 1
                                           und ( 0000 bis 0001)anzeige2

Autor: Lothar Miller (lkmiller) (Moderator) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Du willst die Zahlen 0..63 im Vektor (5 downto 0) in zwei BCD-Zahlen 
umrechnen. Das geht nicht mit einem Mux.
Hier habe ich Lösungen für die Aufgabe: 
http://www.lothar-miller.de/s9y/archives/33-Byte-n...
Das ist zwar für einen 8-Bit Vektor, aber der Lösungsweg ist der 
selbe...

Autor: inga (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
zuerst danke miller
ich will binär in hexa umwandeln

zb 11111 ist 1F hexa
01010 ist 1A hexa
mit deinem decoder kann ich ZB 11111 umwandeln ;die 1111 in enem F 
umwandeln Und 1 bleibt
01010 ,1010 in A und 0 bleibt
mux brauche ich nicht um zu  decodieren aber die 2 anzeigen koennen 
nicht gleichtzeitig angeschaltet werden (beide miteinandere verbunden) 
aber hintereinandere , wenn man  die umschlatung schnell mache 60 hz man 
glaubt das die 2 anzeigen sind beide ständig an .vielleicht kennen sie 
das mit einer dcf uhr
vielleicht habe die frage kompliziert gemacht
wenn einer der ausgange von meinem component zb heisst A ich will daraus 
ein vector (000A) eingang fuer den mux das ist alles

Autor: Lothar Miller (lkmiller) (Moderator) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
> ich will binär in hexa umwandeln
Binär ist nur eine andere Schreibweise für Hex (und umgekehrt).

Dann ist der Ansatz
>>> 000&fûnfte bit
schon richtig:
signal ausgang : std_logic_vector( 4 downto 0);
signal hex : std_logic_vector( 4 downto 0);
signal digit : std_logic;
:
   hex <= ausgang(3 downto 0) when digit ='0' else  "000"&ausgang(4);

Autor: inga (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
danke miller

kann ich auch so machen

einen component programmieren in dem der eingang ist der hexa zahl
eingang :in std_logic_vector( 4 downto 0)-- hexazahl
ausgang1: out std_logic_vector (3 downto 0)
ausgang2 out std_logic_vectore( 3 downto 0)

signal out1:std_logic_vectore ( 3 downto 0) --- mit eingang(3Downto 
0)verbunden
signal out2 :std_logic -- mit eingang (4) verbunden
.
.

augang1 <= out1(3 downto 0)
augang2 <= 000& out2

nachher sind ausgang1 und ausgang2 meine mux eingänge

Autor: Lothar Miller (lkmiller) (Moderator) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
So ist es besser:
augang2 <= "000" & out2

Autor: inga (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
danke miller
du bist für alle da .danke nochmal

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [vhdl]VHDL-Code[/vhdl]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.