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

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren