Forum: FPGA, VHDL & Co. VHDL -- REJECT funzt nicht


von Stephan Reitz (Gast)


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

von F01Qx (Gast)


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 ;-)

von Stephan (Gast)


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

von Cpt (Gast)


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.

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.