Hallo liebes Forum ich habe folgenden Code ____________ signal vektor_a, vektor_b : std_logic_vector(3 downto 0); signal erg1, erg2, erg3 : std_logic_vector(7 downto 0); signal c: std_logic; begin erg1 <= -- oberes Nibble von erg1 = Vektor_a _______________ Ich solle hier eine Konkatenation durchführen, das kommentar sagt ich solle das obere Nibble von erg1 = Vektor_a machen... ich versteh das nicht, kann mir da jemand helfen?
1. mal machen wir nicht so gerne die Hausaufgaben anderer und 2. kann man mit dem Fragment der Frage nicht viel anfangen. Denn die eigentliche Operation, die zwischen vector_a und erg1 vermittelt, fehlt. Zu deinem anderen Topic. Mach doch erst mal einen Vorschlag, wie du deine Hausaufgabe lösen könntest, dann kann man gerne diskutieren. Aber gleich alles abschreiben wollen. Nee...gerade bei sowas grundlegendem, was in jedem Lehrbuch und jedem VHDL Tutorial steht, muss Faulheit nicht belohnt werden.
Jo, hab vergessen den Rest rein zu posten, habe es aber denn doch hinbekommen. "ich versteh das nicht, kann mir da jemand helfen?" meinte ich - ich bin mir schon bewusst, dass mir sehr ungerne in Foren Aufgaben gelöst werden oder man angemotzt wird, wie es gerade schon, warum auch immer, passiert ist. Naja danke dnenoch
Und neue Threads aufmachen, wenn die Antwort nicht befriedigend ist, finden wir hier auch nicht so nett. http://www.mikrocontroller.net/topic/220260#new Warum schlägst Du nicht einfach in Deinem VHDL-Buch oder im Internet nach dem entsprechenden Operator nach?
Dabei handelt es sich um eine andere Frage und nicht um die selbe Antwort -.- und so schlau in Google und PDFs zu suchen anstatt mich hier auf den Foren-Trudel einzulassen war ich auch, aber wenn man nichts findet, dann erhofft man sich, dass jemand vielleicht so nett ist, und es einem erklärt oder einen Link gibt wo es gut gezeigt wird.
Aschenbecher schrieb: > signal vektor_a, vektor_b : std_logic_vector(3 downto 0); > signal erg1, erg2, erg3 : std_logic_vector(7 downto 0); > erg1 <= -- oberes Nibble von erg1 = Vektor_a > Ich solle hier eine Konkatenation durchführen Damit kannst du eigentlich kannst du keine Konkatenation machen. Denn eine Konkatenation ist wie das englische Wort "concatenation" schon aussagt, eine Verknüpfung/Verkettung. Du hast aber nur eine Teilmenge... Seis drum... Hier eine mögliche Lösung deiner Hausaufgabe:
1 | erg1(7 dwonto 4) <= vektor_a; -- oberes Nibble von erg1 = Vektor_a |
Oder, wenns unbedingt mit einer Konkatenation sein muß:
1 | erg1(7 dwonto 4) <= vektor_a(3 downto 1) & vektor_a(0); -- oberes Nibble von erg1 = Vektor_a |
Eine Frage bleibt allerdings: was soll mit dem unteren Nibble von erg1 passieren? Dir ist klar, dass dir meine Antworten nichts bringen, wenn du die vorige Frage nicht beantwortest? Aschenbecher schrieb: > aber wenn man nichts findet, Fasl gesucht! Such mal nach concatenation vhdl http://www.google.de/search?q=concatenation+vhdl&ie=utf-8&oe=utf-8&aq=t&rls=org.mozilla:de:official&client=firefox-a Und er erste Link: http://www.gmvhdl.com/operator.htm beschreibt:
1 | The following statement would connect a to the right half of b and make the left half of b constant '0'. |
2 | b<="0000" & a; |
3 | The & appends the a to the end of the "0000" to form a result that contains 8 bits. |
Hey, ja habe den Rest vergessen einzufügen. Müsste folgendermaßen aussehen. __________ signal vektor_a, vektor_b : std_logic_vector(3 downto 0); signal erg1, erg2, erg3 : std_logic_vector(7 downto 0); signal c: std_logic; begin erg1 <= -- oberes Nibble von erg1 = Vektor_a -- unteres Nibble von erg1 = Vektor_b _____________ Da habe ich folgendes raus: erg1 <= vektor_a & vektor_b Müsste doch stimme, nicht?
Aschenbecher schrieb: > erg1 <= vektor_a & vektor_b > Müsste doch stimme, nicht? Das wird einen Syntaxfehler geben, aber die Funktion passt grundsätzlich...
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.