www.mikrocontroller.net

Forum: FPGA, VHDL & Co. Päritetsgenerator VHDL


Autor: Irina "l" (irinal)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo Leute,
kann vielleicht jemand mir helfen einen VHDL-Code für einen 
Paritätsgenerator unter verwendung  der for-Schleife Wenn die Anzahl der 
"1" im Eingangssignal (8bit-Bus)ungerade ist, soll das Ausgangsignal "1" 
sein zu schreiben?

Autor: Falk Brunner (falk)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
@ Irina "l" (irinal)

>kann vielleicht jemand mir helfen einen VHDL-Code für einen
>Paritätsgenerator unter verwendung  der for-Schleife

Hausaufgaben?

MFG
Falk

Autor: Irina "l" (irinal)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ja, ich habe geschrieben, aber bin nicht sicher, dass meine Lösung 
richtig ist.

Autor: Falk Brunner (falk)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
@ Irina "l" (irinal)

>Ja, ich habe geschrieben, aber bin nicht sicher, dass meine Lösung
>richtig ist.

Na dann poste mal deine Lösung und wir können sie bewerten.

MFG
Falk

Autor: Tobias Plüss (hubertus)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ich behaupte mal, D_input muss vom Typ std_logic_vector sein und nicht 
std_logic.

Autor: Irina "l" (irinal)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
entity PARGEN8 is
port( D_Input : in std_logic_vector;
      EVEN_output : out std_logic;
      ODD_output : out std_logic);
end PARGEN8;
architecture Behaviour of PARIGEN8 is
signal D_Input :  std_logic_vector (7 downto0);
begin
PARGEN: process( D_input )
begin
variable p std_logic;
begin
p:= D_input(1);
for I in 1 to 7 loop
if D_input(I)='1' then p := not p;
end if;
end loop;
if PAR then GERADE <= '1';
else GERADE <= '0';
end if;
EVEN <= not p;
ODD <= p;
end process PARGEN8;
end Behaviour;

Autor: Irina "l" (irinal)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ja, klar, das habe ich vergessen. Und Rest?

Autor: Falk Brunner (falk)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
@ Irina "l" (irinal)

>Ja, klar, das habe ich vergessen. Und Rest?

Im Prinzip richtig, wenn gleich recht akademisch. Ich würde es so 
machen.

entity PARGEN8 is
port( D_input     : in std_logic_vector(7 downto 0);
      EVEN_output : out std_logic;
      ODD_output  : out std_logic);
end PARGEN8;

architecture Behaviour of PARIGEN8 is
begin

PARGEN: process( D_input )
    variable p std_logic;
  begin
    p:= D_input(0);
    for i in 1 to 7 loop
      p := p XOR D_input(i);
    end loop;
    EVEN <= p;
    ODD <= not p;
  end process;

end Behaviour;

MFG
Falk

Autor: Irina "l" (irinal)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Vielen Dank. Ich habe aber nicht verstanden
bei mir
begin
p:= D_input(1);
und bei dir
begin
    p:= D_input(0);
ist mein (1) falsch?

Autor: Falk Brunner (falk)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
@ Irina "l" (irinal)

>ist mein (1) falsch?

Ja, denn ein Vektor fängt (meist) mit dem Index 0 an.

MFG
Falk

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [vhdl]VHDL-Code[/vhdl]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
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.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.