Hallo,
Ich habe nun folgenden VHDL-Code:
1 | LIBRARY IEEE;
|
2 | USE IEEE.STD_LOGIC_1164.ALL;
|
3 | LIBRARY HWM;
|
4 | USE HWM.pac_addierer.ALL;
|
5 |
|
6 | ENTITY addierer IS
|
7 | PORT (
|
8 | ina : IN STD_LOGIC_VECTOR ( 7 DOWNTO 0 );
|
9 | inb : IN STD_LOGIC_VECTOR ( 7 DOWNTO 0 );
|
10 | sum : OUT STD_LOGIC_VECTOR ( 7 DOWNTO 0 );
|
11 | carry : OUT STD_LOGIC
|
12 | );
|
13 | END;
|
14 |
|
15 | -- Aufbau des 8-Bit-Addierers aus einzelnen 1-Bit-Volladdierern
|
16 | ARCHITECTURE add1_2_arch OF addierer IS
|
17 | SIGNAL sum_tmp : STD_LOGIC_VECTOR (7 DOWNTO 0);
|
18 | SIGNAL carry_tmp : STD_LOGIC_VECTOR (7 DOWNTO 0);
|
19 |
|
20 | COMPONENT add IS
|
21 | PORT (
|
22 | ina : IN STD_LOGIC;
|
23 | inb : IN STD_LOGIC;
|
24 | cin : IN STD_LOGIC;
|
25 | sum : OUT STD_LOGIC;
|
26 | cout : OUT STD_LOGIC
|
27 | );
|
28 | END COMPONENT add;
|
29 |
|
30 | --FOR bitaddierer : add USE ENTITY work.vadd; --(xxx)
|
31 |
|
32 | BEGIN
|
33 |
|
34 |
|
35 | byteaddierer:
|
36 | FOR i IN 0 TO 7 GENERATE
|
37 | BEGIN
|
38 | bitaddierer : add
|
39 | PORT MAP (ina(i), inb(i), '0', sum_tmp(i), carry_tmp(i));
|
40 | END GENERATE byteaddierer;
|
41 | sum <= sum_tmp;
|
42 |
|
43 | END;
|
Ich bekomme folgende Fehlermeldungen:
Wenn ich die mit (xxx) markierte Zeile auskommentiert habe, kompiliert
das Projekt ohne Fehler. Simuliere ich das Ganze dann aber, so erhalte
ich im Modelsim folgende Meldung:
1 | # Time: 0 ns Iteration: 0 Region: /tb_addierer/m1/byteaddierer(3) File: O:/DATEN/HTW/Hardwaremodellierung/Uebungsblatt/1_addierer/addierer.vhd
|
2 | # ** Warning: (vsim-3473) Component instance "bitaddierer : add" is not bound.
|
Wenn ich nun die mit (xxx) markierte Zeile nicht auskommentiere, dann
bringt mir bereits der Compiler folgende Meldung:
1 | ** Error: O:/DATEN/HTW/Hardwaremodellierung/Uebungsblatt/1_addierer/addierer.vhd(89): No statement with label "bitaddierer" was found.
|
2 | ** Error: O:/DATEN/HTW/Hardwaremodellierung/Uebungsblatt/1_addierer/addierer.vhd(102): VHDL Compiler exiting
|
Ist wahrscheinlich irgendein blöder Fehler meinerseits, nur welcher :-??
Die zur Component gehörende Entity wurde korrekt in work compiliert.
danke schonmal&beste Grüße
Chris
Edit: Die Port Map der Component ergibt noch nicht wirklich Sinn, cin
ist der Eingang für den Carry, cout der entsprechende Ausgang. Damit es
funktional richtig ist, müsste der cin der ersten Komponente ja auf '0'
gesetzt werden, der cout der letzten Komponente müsste an den Ausgang
carry der Entity. Hat wohl nichts mit dem geschilderten Problem zu tun,
habs nur geschrieben, um Unklahrheiten zu vermeiden.