Forum: FPGA, VHDL & Co. Hamming Coder


von Kevin R. (egal222)


Angehängte Dateien:

Lesenswert?

Mit der Rechnung vom Hamming Code sind wir auf die Lösung 10011 
bekommen.
Wie schreibt man dies Richtig in das VHDL Programm.


library ieee;
use ieee.std_logic_1164.all;

entity hamming-coder is
  port (
    A: in std_logic_vector (5 downto 0);-- Datenwort A A4-A0
    K: out std_logic_vector (3 downto 0)-- Kontrollbits K3-K0
    );
  end entity hamming-coder;

architecture behavior of hamming-coder is
begin
  main process
  variable: K0, K1, K2, K3: std_logic;
  K0 := A(0) xor A(1) xor A(3);
  K1 := A(1) xor A(3) xor A(5);
  K2 := A(0) xor A(2) xor A(3);
  K3 := A(0) xor A(4) xor A(5);

end process;

end behavior;

von Lothar M. (Firma: Titel) (lkmiller) (Moderator) Benutzerseite


Lesenswert?

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?

von Markus F. (mfro)


Lesenswert?

... und was ist jetzt aus Maria geworden?

von Mw E. (Firma: fritzler-avr.de) (fritzler)


Lesenswert?

Warum wird jetz hier die Lösung verraten?

von Lothar M. (Firma: Titel) (lkmiller) (Moderator) Benutzerseite


Lesenswert?

Mw E. schrieb:
> Warum wird jetz hier die Lösung verraten?
Die schönste Lösung nützt nichts, wenn man den Weg nicht kennt. Und 
"Lösung" ist irgendwie überkandidelt für die Code-Schnipsel oben...

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
Noch kein Account? Hier anmelden.