VHDL Ausgangsvektor

#7263121
Lesenswert?

ich soll die Ausgangsverktor angeben . mit X "5"

 AUSW AHL = “000“
 AUSW AHL = “001“
 AUSW AHL = “010“
 AUSWAHL = “011“
 AUSW AHL = “100“
 AUSW AHL = “101“
Angehängte Dateien:
#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.

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