Warum beginnst du einen zweiten Thread? Der
Beitrag "Hamming Codierer" hätte noch genug Platz
gehabt...
Kevin R. schrieb:
> Mit der Rechnung vom Hamming Code sind wir auf die Lösung 10011
> bekommen. Wie schreibt man dies Richtig in das VHDL Programm.
Wofür ist "10011" die Lösung?
> variable: K0, K1, K2, K3: std_logic;
Wofür braucht ihr da eine Variable?
Gas ganze Ding ist nichts weiter als eine Lookup-Tabelle mit 5
Eingängen. Man könnte es also ganz ohne jeglichen Prozess so schreiben:
1 | with A select K <=
|
2 | "0111" when "00000",
|
3 | "0011" when "00001",
|
4 | "1001" when "00011",
|
5 | :
|
6 | :
|
7 | "1111" when "11101",
|
8 | "1001" when "11110",
|
9 | "1101" when others; -- "11111"
|
Und wenn ihr schon einen Prozess mit logischen Funktionen verwenden
wollt, dann eben so:
1 | process (A) begin
|
2 | K(0) <= A(0) xor A(1) xor A(3);
|
3 | K(1) <= A(1) xor A(3) xor A(5);
|
4 | K(2) <= A(0) xor A(2) xor A(3);
|
5 | K(3) <= A(0) xor A(4) xor A(5);
|
6 | end process;
|
Allerdings gibts da noch ein Problem:
> A: in std_logic_vector (5 downto 0);-- Datenwort A A4-A0
> K1 := A(1) xor A(3) xor A(5);
Fällt dir da bei der Vektorbreite von A was auf?