Hallo,
da ich demnächst eine Prüfung schreiben muss in der ein wenig VHDL
gefordert wird, hab ich mir mal Active HDL heruntergeladen um mich ein
wenig einzuarbeiten.
Doch jetzt komm ich grad ums verrecken nicht mehr weiter.
Mein Ziel ist es eine ganz simple Schaltung, bestehend aus 2 Invertern,
welche hintereinander geschaltet werden, zu programmieren.
Ich will einen Inverter benutzen den ich zuvor schon folgenermaßen
programmiert habe:
1 | entity inverter is --Entity eines einzelnen Inverters
|
2 | port( a : in bit;
|
3 | b : out bit);
|
4 | end inverter;
|
5 |
|
6 |
|
7 |
|
8 | architecture inv_bhv of inverter is --Verhalten des Inverters
|
9 | begin
|
10 | b <= NOT a AFTER 1 ns;
|
11 | end inv_bhv;
|
Dann habe ich folgendes für "Hauptprogramm" geschrieben:
1 | library ieee;
|
2 | use ieee.std_logic_1164.all;
|
3 |
|
4 | ENTITY invinv IS
|
5 | port(D_IN : IN BIT :='0';
|
6 | D_OUT : OUT BIT :='0');
|
7 | END invinv;
|
8 |
|
9 |
|
10 |
|
11 | architecture netlist of invinv is
|
12 | signal out_1 : std_logic :='1';
|
13 |
|
14 | component inv
|
15 | port(a: IN BIT; b : OUT BIT);
|
16 | end component;
|
17 |
|
18 | begin
|
19 | INV_1 : inv
|
20 | port map (D_IN, out_1);
|
21 | INV_2 : inv
|
22 | port map (out_1, D_OUT);
|
23 | end netlist;
|
24 |
|
25 |
|
26 |
|
27 | configuration konfi OF invinv is
|
28 | for netlist
|
29 | for INV_1, INV_2 : inv USE ENTITY
|
30 | work.inverter(inv_bhv);
|
31 | end for;
|
32 | end for;
|
33 | end konfi;
|
Habe diesen Code aus dem Skript der Vorlesung zusammengestellt. Dort war
ein Beispiel eines RS-FF mit 2 NAND-Gattern beschrieben.
Ich bekomme bei meinem Code einige Fehlermeldungen:
# Compile Architecture "netlist" of Entity "invinv"
# Warning: ELAB1_0026: INVINV.vhd : (19, 0): There is no default binding
for component "inv".(No entity named "inv" was found).
# Error: COMP96_0100: INVINV.vhd : (20, 18): Actual parameter type in
port map does not match the port formal type "b".
# Error: COMP96_0100: INVINV.vhd : (22, 12): Actual parameter type in
port map does not match the port formal type "a".
# Compile Configuration "konfi"
# Error: COMP96_0209: INVINV.vhd : (28, 6): Unknown architecture name
used in configuration declaration.
Ich werd nicht schlau draus, zumal ich einige ähnliche Beispiele gesehen
habe, die genau so programmiert waren(auf Papier).
Ich bin mir acuh nicht sicher mit dem "work" aus
"work.inverter(inv_bhv);", da es diese library in mienen Augen gar nicht
gibt. Allerdings erstellt die "Create testbench" Funktion ebenfalls
diesen code Abschnitt mit der library "work".
Der letzte Fehler is mir dann völlig unklar...ich hab doch eine
architecture mit dem richtigen Namen im Code O.o ??
Ich hoffe, mir kann jemand Helfen.
Danke, razdraz