mikrocontroller.net

Forum: FPGA, VHDL & Co. Syntax Error in 1 zu 4 Demultiplexer


Autor: 655432 (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,

ich finde in dem folgenden Programm (1 zu 4 Demultiplexer) einfach nicht 
den Fehler.
-- Dateiname: 1zu4_demux
-- Beschreibung: 1 zu 4 Demultiplexer

LIBRARY ieee;
USE ieee.std_logic_1164.all;

ENTITY demux4 IS
  PORT (x: IN STD_LOGIC;
      s: IN STD_LOGIC_VECTOR (1 DOWNTO 0);
      z: OUT STD_LOGIC_VECTOR (3 DOWNTO 0));
END ENTITY demux4;

ARCHITECTURE verhalten OF demux4 IS
BEGIN
  z(0) <= x AND NOT s(0) AND NOT s(1);
  z(1) <= x NOT s(0) AND NOT s(1);
  z(2) <= x AND NOT s(0) AND s(1);
  z(3) <= x AND s(0) NOT s(1);
  
END ARCHITECTURE verhalten;

Ich erhalte foldende Fehlermeldungen:

Error (10500): VHDL syntax error at demux4.vhd(16) near text "NOT"; 
expecting ";"
Error (10500): VHDL syntax error at demux4.vhd(18) near text "NOT"; 
expecting ";"

Vielleicht könnt ihr mir weiterhelfen. Thanks.

Autor: Thomas (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Du hast in den entsprechenden Zeilen die logische Operation vergessen 
...

Zeile 16 heißt: z(1) <= x NOT s(0) AND NOT s(1);
muss aber ..... z(1) <= x AND NOT s(0) AND NOT s(1);

Zeile 18 ist dann das gleiche ;)

Autor: Rick Dangerus (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Schau mal ob Du schönere Beschreibungen für einen Demuxer findest.
Deine sieht mir sehr unleserlich aus. Da holt man sich doch einen Knoten 
im Kopf um zu verstehen, was da gemacht werden soll.

Hier ist eine Variante, die zumindest erstmal keine Syntaxfehler mehr 
bringt:
  z(0) <= x AND (NOT s(0)) AND (NOT s(1));
  z(1) <= x AND (NOT s(0)) AND (NOT s(1));
  z(2) <= x AND (NOT s(0)) AND s(1);
  z(3) <= x AND s(0) AND (NOT s(1));

Rick

Autor: 655432 (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
OK, ich habe die Schaltung des Demux analysiert und erhalte folgende 
Gleichung:

Das ergibt dann folgenden Code:
  z(0) <= x AND (NOT s(0)) AND (NOT s(1));
  z(1) <= x AND s(0) AND (NOT s(1));
  z(2) <= x AND (NOT s(0)) AND s(1);
  z(3) <= x AND s(0) AND s(1);

Die Compilation ist jetzt erfolgreich. Jetzt möchte ich daraus einen 1 
zu 16 Demultiplexer konzipieren. Melde mich dabb nochmal.

Autor: 655432 (Gast)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
Im Anhang noch das dazugehörige Timing-Diagramm.

Müssten die rot umkreisten Impulse nicht eigentlich abgeschnitten 
werden?

Autor: Mike (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
> Müssten die rot umkreisten Impulse nicht eigentlich abgeschnitten
> werden?

Sieht eigentlich ganz normal aus. Vielleicht solltest du dir aber mal 
den Takt anschauen. 2ns Zykluszeit ergibt 500MHz.

> Die Compilation ist jetzt erfolgreich. Jetzt möchte ich daraus einen 1
> zu 16 Demultiplexer konzipieren. Melde mich dabb nochmal.

Bevor du damit anfängst, solltest du das hier mal durchlesen:

http://toolbox.xilinx.com/docsan/xilinx4/data/docs...

Ist zwar für Multiplexer, aber dort gibt es ein paar Beispiele wie man 
das übersichtlicher machen könnte.

Autor: 655432 (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
"Sieht eigentlich ganz normal aus. Vielleicht solltest du dir aber mal
den Takt anschauen. 2ns Zykluszeit ergibt 500MHz."

Wie mache ich das? Kenne mich mit Quartus nicht so gut aus.

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.