Syntax Error in 1 zu 4 Demultiplexer

Gast #882900
Lesenswert?
• ▲
▼
Hallo,

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

4
LIBRARY ieee;
5
USE ieee.std_logic_1164.all;
6

7
ENTITY demux4 IS
8
  PORT (x: IN STD_LOGIC;
9
      s: IN STD_LOGIC_VECTOR (1 DOWNTO 0);
10
      z: OUT STD_LOGIC_VECTOR (3 DOWNTO 0));
11
END ENTITY demux4;
12

13
ARCHITECTURE verhalten OF demux4 IS
14
BEGIN
15
  z(0) <= x AND NOT s(0) AND NOT s(1);
16
  z(1) <= x NOT s(0) AND NOT s(1);
17
  z(2) <= x AND NOT s(0) AND s(1);
18
  z(3) <= x AND s(0) NOT s(1);
19
  
20
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.
Gast #882927
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 ;)
Gast #882930
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:
1
  z(0) <= x AND (NOT s(0)) AND (NOT s(1));
2
  z(1) <= x AND (NOT s(0)) AND (NOT s(1));
3
  z(2) <= x AND (NOT s(0)) AND s(1);
4
  z(3) <= x AND s(0) AND (NOT s(1));

Rick
Gast #883401
Lesenswert?
• ▲
▼
OK, ich habe die Schaltung des Demux analysiert und erhalte folgende 
Gleichung:

Das ergibt dann folgenden Code:
1
  z(0) <= x AND (NOT s(0)) AND (NOT s(1));
2
  z(1) <= x AND s(0) AND (NOT s(1));
3
  z(2) <= x AND (NOT s(0)) AND s(1);
4
  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.
Gast #883556
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/sim/vtex13.html

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

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