VHDL Ausgangsvektor

#7263230
Lesenswert?
• ▲
▼
Und sonst kann man das lösen indem man Schritt für Schritt auflöst was 
da steht.

constant K : std_logic_vector(0 to 7) := o"6" & '0' & '1' & o"5";

o bedeutet Oktal, also 3 Bits, o"6" ist also 110. K ist dann "11001101".

VEKTOR_1 <= ('1' & X"5" & '0');

x bedeutet Hexadezimal, also 4 Bits, x"5" ist 0101. VEKTOR_1 ist dann 
"101010".

VEKTOR_2 <= ('1', K(4) and K(6), K(4), '0', '0', K(7) xor '1');

Da kann man K von oben einsetzen und die Logikfunktionen auflösen. 
VEKTOR_2 ist "101000".

Bei der "Schleife" kann man sich einen Buchstaben nach dem Anderen 
angucken. Erstmal nur A:

SCHLEIFE : for I in 0 to 5 generate
   A(I) <= '1' when (VEKTOR_1(I) <  VEKTOR_2(I)) else '0';
end generate;

Das kann man auch schreiben als:

A(0) <= '1' when (VEKTOR_1(0) <  VEKTOR_2(0)) else '0';
A(1) <= '1' when (VEKTOR_1(1) <  VEKTOR_2(1)) else '0';
A(2) <= '1' when (VEKTOR_1(2) <  VEKTOR_2(2)) else '0';
A(3) <= '1' when (VEKTOR_1(3) <  VEKTOR_2(3)) else '0';
A(4) <= '1' when (VEKTOR_1(4) <  VEKTOR_2(4)) else '0';
A(5) <= '1' when (VEKTOR_1(5) <  VEKTOR_2(5)) else '0';

Und weil VEKTOR_1 und VEKTOR_2 konstant sind, kann man auch das auflösen 
in:

A(0) <= '1' when ('0' <  '1') else '0';
A(1) <= '1' when ('1' <  '0') else '0';
A(2) <= '1' when ('0' <  '1') else '0';
A(3) <= '1' when ('1' <  '0') else '0';
A(4) <= '1' when ('0' <  '0') else '0';
A(5) <= '1' when ('1' <  '0') else '0';

Jetzt kann man den Operator ausführen und bekommt:
A(0) <= '1';
A(1) <= '0';
A(2) <= '1';
A(3) <= '0';
A(4) <= '0';
A(5) <= '0';
Oder A ist "000101".

Das macht man dann noch für die anderen B, C, D, E, F mit dem Ergebnis:
B = 010101
C = 010000
D = 101111
E = 111010
F = 101010

Damit weiß man dann auch, was bei dem
with AUSWAHL select
rauskommt.

Eine Testbench zu schreiben ist hier aber der deutlich schnellere Weg.
Gast #7284943
Lesenswert?
• ▲
▼
Markus F. schrieb:
> ...und hat seine Hausaufgaben fertig, ohne auch nur im Geringsten den
> eigenen Kopf angestrengt oder irgendwas kapiert zu haben.

... was dazu führen wird, dass er aus der Kurve fliegt und auf dem Gras 
neben den anderen herläuft. Er kann den nächsten Baustein auch nicht 
selber lösen und ist raus.

Antwort schreiben

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.

Formatierung
  • [c]C-Code[/c]
  • [vhdl]VHDL-Code[/vhdl]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.