hey, hier Robert. ich nutze ModelSim Altera Starter Edition 3.0 und möchte diese Funktionalität: library ieee; use ieee.std_logic_1164.all; Entity D_L is PORT( CLK: IN std_logic; D: IN std_logic; QP: OUT std_logic; QN: OUT std_logic); END D_L; Architecture VERHALTEN of D_L is Begin PROCESS(CLK,D) BEGIN IF CLK = '1' THEN QP <= D AFTER 50 ps; END IF; IF CLK = '1' THEN QN <= NOT D AFTER 50 ps; END IF; END PROCESS; END VERHALTEN; hier nochmal benutzen: library ieee; use ieee.std_logic_1164.all; Entity D_FF is PORT( CLK: IN std_logic; D: IN std_logic; QP: OUT std_logic; QN: OUT std_logic); END D_FF; Architecture VERHALTEN of D_FF is COMPONENT D_L PORT ( CLK: IN std_logic; D: IN std_logic; QP: OUT std_logic; QN: OUT std_logic); END COMPONENT; Begin PROCESS(CLK,D) BEGIN eins: D_L port map (CLK,D,QP,QN); END PROCESS; END VERHALTEN; der compiler sagt dazu: ** Error: C:/altera/14.1/D_FF.vhd(25): Illegal sequential statement. ** Error: C:/altera/14.1/D_FF.vhd(27): VHDL Compiler exiting zum einen würde ich gerne wissen was ich falsch mache, und zum anderen, wie man so ein "Funktionsaufruf" bei VHDL nennt. Ach so beide Daten sind natürlich im gleichen Projekt angelegt.
Die Instanziierung einer Entity darf nicht innerhalb eines Prozesses erfolgen, somit probiere mal das hier:
1 | Architecture VERHALTEN of D_FF is |
2 | COMPONENT D_L |
3 | PORT ( CLK: IN std_logic; |
4 | D: IN std_logic; |
5 | QP: OUT std_logic; |
6 | QN: OUT std_logic); |
7 | END COMPONENT; |
8 | Begin
|
9 | eins: D_L port map (CLK,D,QP,QN); |
10 | END VERHALTEN; |
Mit so wenigen Worten alle meine Bitten erfüllt. Ich danke dir sehr.
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.