Ach so, ja ... du hast 2 mal "begin" drinnen, das darf so nicht.
So sollte das Grundgerüst aussehen:
1 | library IEEE;
|
2 |
|
3 | entity NAME is
|
4 | Port ( CLK : in STD_LOGIC;
|
5 | A : in STD_LOGIC;
|
6 | B : out STD_LOGIC);
|
7 | end NAME;
|
8 |
|
9 | architecture Behavioral of NAME is
|
10 |
|
11 | begin
|
12 |
|
13 | process begin
|
14 | wait until rising_edge(CLK);
|
15 | B <= not A;
|
16 | end process;
|
17 |
|
18 | end Behavioral;
|
Also wenn du keine Prozesse verwendest, dann hast du einmal begin und
einmal end. Verwendest du Prozesse, dann hast du in jedem Prozess noch
einmal ein begin und ein end.
Bei dir
1 | entity d2a_2 is
|
2 |
|
3 | end entity d2a_2;
|
4 |
|
5 | architecture behavioral of d2a_2 is
|
6 |
|
7 | begin
|
8 |
|
9 | End;
|
10 |
|
11 | begin --Fehler: unerwartete Eingabe 'BEGIN'
|
12 |
|
13 | end;
|
Also ich habe keine Ahnung mit dem If USE und END USE, aber es fehlt(?)
ein "end behavioral" und das "begin" bei dem der Fehler auftritt, das
steht alleine, also ich würde das mit process schreiben. Wobei das ist
bei dir sowieso komisch: Das erste END schließt vielleicht schon, ich
weiß nicht ob das "behavioral" wichtig ist, dein architecture ab. Und
dann ein neues Begin würde also ausserhalb liegen.
Versuch es doch mal so:
1 | LIBRARY DISCIPLINES;
|
2 | USE DISCIPLINES.ELECTROMAGNETIC_SYSTEM.ALL;
|
3 |
|
4 | entity d2a_2 is
|
5 | generic (Rout : real := 1_000.0; tau : real := 0.001);
|
6 | port (SIGNAL input : IN BIT;
|
7 | terminal outp, outm : electrical);
|
8 | end entity d2a_2;
|
9 |
|
10 | architecture behavioral of d2a_2 is
|
11 | quantity Vout ACROSS Iout THROUGH outp to outm;
|
12 | begin
|
13 |
|
14 | BREAK ON input; --Erzwingt die Berechnung eines analogen Arbeitspunktes
|
15 | d2a_2TB : d2a_2
|
16 | input <= "0", "1" after 40 ns, "0" after 80 ns, "1" after 120 ns;
|
17 |
|
18 | IF input = '0' USE
|
19 | Vout + tau * Vout'dot == 5.0 + Rout * Iout;
|
20 | ELSE
|
21 | Vout + tau * Vout'dot == Rout * Iout;
|
22 | END USE;
|
23 |
|
24 | end;
|
Ich habe das mal umgeordnet, oben nach dem Begin steht zunächst das
ganze was einfach so "läuft" und drunter dann dieses mit USE das ich
nicht kenne.