Forum: FPGA, VHDL & Co. port map schlägt "Illegal sequential statement" fehler aus bei VHDL


von Robert (Gast)


Lesenswert?

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.

von user (Gast)


Lesenswert?

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;

von Robert (Gast)


Lesenswert?

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
Noch kein Account? Hier anmelden.