VHDL -- REJECT funzt nicht

Gast #202405
Lesenswert?
• ▲
▼
Hallo zusammen

schreib grad Diplomarbeit über VHDL, wollte das träge / nichtträge
Modell erläutern, schön und gut .... aber folgender Code bringt mir
Fehler

LIBRARY ieee;
USE ieee.std_logic_1164.ALL;
USE WORK.ALL;
ENTITY traege_nichttraege IS

PORT (
zustand : IN std_logic;
aus_1,aus_2 ,aus_3 ,aus_4 ,aus_5 : OUT std_logic );

END traege_nichttraege;

ARCHITECTURE verhalten OF traege_nichttraege IS
SIGNAL a1,a2,a3,a4,a5 : std_ulogic;
BEGIN
a1 <= NOT zustand;
a2 <= NOT zustand AFTER 10 ns;
-- aus_3 <= NOT zustand AFTER 10 ns;
a3 <= reject 10ns INERTIAL NOT zustand AFTER 10 ns;
a4 <= TRANSPORT NOT zustand AFTER 10 ns;
-- aus_5 <= NOT zustand AFTER 10 ns;
a5 <= REJECT 10ns INERTIAL NOT zustand AFTER 10 ns;


END ARCHITECTURE ;



Fehlermeldung :

Compiling entity traege_nichttraege
Compiling architecture verhalten of entity traege_nichttraege
C:\MultiHDL_VHDL\Examples\Module\TRAEGE.VHD(18): Error C0049 :
Syntax error
Not expecting [reject] skipping input up to [INTEGER NUMBER].
C:\MultiHDL_VHDL\Examples\Module\TRAEGE.VHD(18): Error C0050 : Type
mismatch
Not expecting [;] skipping input up to [NAME].
C:\MultiHDL_VHDL\Examples\Module\TRAEGE.VHD(21): Error C0049 :
Syntax error
Not expecting [reject] skipping input up to [INTEGER NUMBER].
C:\MultiHDL_VHDL\Examples\Module\TRAEGE.VHD(21): Error C0050 : Type
mismatch
Not expecting [;] skipping input up to [end].

4 error(s)
There were errors during compilation.


Kann mir jemand sagen warum ? Muss ich noch was einbinden ??? Ist doch
VHDL'93 .... das Ganze läuft unter dem VHDL Tool von Multisim 7 ...

Danke, schnelle Antwort wäre super !

Stephan
Gast #202406
Lesenswert?
• ▲
▼
Hallo,

process Deklaration fehlte (SensitivityList muss viellicht noch ergänzt
werden)


LIBRARY ieee;
USE ieee.std_logic_1164.ALL;
USE WORK.ALL;
ENTITY traege_nichttraege IS

PORT (
zustand : IN std_logic;
aus_1,aus_2 ,aus_3 ,aus_4 ,aus_5 : OUT std_logic );

ARCHITECTURE verhalten OF traege_nichttraege IS
SIGNAL a1,a2,a3,a4,a5 : std_ulogic;
BEGIN

process()
begin

a1 <= NOT zustand;
a2 <= NOT zustand AFTER 10 ns;
-- aus_3 <= NOT zustand AFTER 10 ns;
a3 <= reject 10ns INERTIAL NOT zustand AFTER 10 ns;
a4 <= TRANSPORT NOT zustand AFTER 10 ns;
-- aus_5 <= NOT zustand AFTER 10 ns;
a5 <= REJECT 10ns INERTIAL NOT zustand AFTER 10 ns;

end process;

END ARCHITECTURE ;

end beitrag ;-)
Gast #202407
Lesenswert?
• ▲
▼
Hallo zurück,

mal gespannt obs klappt .... gleich die nächste Frage ...

wie issen der Code für ein JK-Flipflop, bzw. wie mach ich das mit dem
Toggle ( T=J=K = '1 ' ) ?

Wenn ich das simulier, rennt der mir trotz Initialisierung teilweise
mit 'U' los, dann klappt das mit dem Toggle natürlich nicht ... wie
merk ich mir das Signal ?

Danke aber schonmal für Lösung#1

Stephan
Gast #202408
Lesenswert?
• ▲
▼
Hallo!

Ohnen deinen Code zu kennen, kann ich dir da höchstens den Tip geben,
daß da vielleicht etwas nicht so implementiert wird wie du dir das
vorstellst. Ein beispiel zum toggeln:

architecture ...
variable current_state: std_logic;
begin
toggle_proc: process()
begin
if j ='1' and k='1' then
current_state /= current_state;
end if;
end process;
out <= current_state;
end architecture;
---------------------------------------
Das sollte ein Speicherelement erzeugen (D-Latch z.B.)
Vielleicht hilft dir das weiter. Ansonsten poste mal deinen Code.

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