Hallo! Was VHDL angeht bin ich leider ein ziemlicher Anfänger und habe daher ein Problem mit der Simulation unter ISE 9.1. Bei einem sehr simplen Beispiel habe ich das Problem, dass die configuration bei der Simultion nicht beachtet wird. D.h. die für die Komponente genannte Entity und Architektur wird nicht eingesetzt und daher die Warnung "No entity is bound for inst" ausgegeben... library IEEE; use IEEE.STD_LOGIC_1164.ALL; use IEEE.STD_LOGIC_ARITH.ALL; use IEEE.STD_LOGIC_UNSIGNED.ALL; entity FullAdder is Port ( InA : in STD_LOGIC; InB : in STD_LOGIC; InCarry : in STD_LOGIC; Sum : out STD_LOGIC; Carry : out STD_LOGIC); end FullAdder; architecture Structural of FullAdder is component HalfAdd port (I_a, I_b : in STD_LOGIC; O_s, O_c : out STD_LOGIC); end component; signal Carry1 : STD_LOGIC; signal Carry2 : std_logic; signal Sum1 : STD_LOGIC; begin HalfAdd1 : HalfAdd port map (InA, InB, Sum1, Carry1); HalfAdd2 : HalfAdd port map (Sum1, InCarry, Sum, Carry2); Carry <= Carry1 or Carry2; end Structural; configuration HalfAdd_cfg of FullAdder is for Structural for all: HalfAdd use entity work.HalfAdder(Behavioral) port map (I_a, I_b, O_s, O_c); end for; end for; end HalfAdd_cfg;
Hast du die entsprechende Datei mit dem Halbaddierer auch in dein Projekt hinzugefügt? In der Regel kannst du dir die configuration dann auch sparen, wenn nur genau eine entity mit dem jeweiligen Namen in deinem Projekt vorhanden ist.
Danke für den Hinweis. Nachdem ich die configuration eliminiert habe und die Kompenente genauso wie die entity (HalfAdder) benannt habe, läuft es problemlos. Allerdings war die Datei mit der entsprechenden entity und architecture bereits Teil des Projekts. Daher wundert es mich einwenig, denn eigentlich sollte es doch möglich sein mehrere architectures für eine entity zu definieren und mittels der configuration entsprechend zuzuordnen? Oder muss die configuration an anderer Stelle, also in einer gesonderten Datei stehen?
Vergiss die configurations. Im XST User guide steht (chapter: VHDL Language Support):
1 | Configuration Supported only with the "all" clause for instances |
2 | list. If no clause is added, XST looks for the |
3 | entity/architecture compiled in the default library. |
Was auch immer das heißen mag. Rick
Hab grad noch was gefunden (ungetestet):
1 | -- use diffrent architectures in xst |
2 | |
3 | ARCHITECTURE behaviour OF top IS |
4 | |
5 | COMPONENT dut |
6 | PORT( ... ); |
7 | END COMPONENT; |
8 | |
9 | -- an alternative to using a configure statement |
10 | -- to select a particular architecture |
11 | for instance1: dut use entity WORK.dut(arch_A); |
12 | for instance2: dut use entity WORK.dut(arch_B); |
13 | |
14 | BEGIN |
15 | instance1: component dut |
16 | PORT MAP ( ... ); |
17 | |
18 | instance2: component dut |
19 | PORT MAP ( ... ); |
20 | |
21 | ... |
22 | |
23 | ... |
24 | END; |
25 | |
26 | -- VHDL module dut |
27 | ENTITY dut is |
28 | Port ( ... ); |
29 | END dut; |
30 | |
31 | ARCHITECTURE arch_A of dut is |
32 | begin |
33 | ... |
34 | end arch_A; |
35 | |
36 | ARCHITECTURE arch_B of dut is |
37 | begin |
38 | ... |
39 | end arch_B; |
40 | |
41 | -- End of VHDL |
Ist aber für den Einstieg eher unübersichtlich. Rick
Bei obigen Code hatte ich die all clause zwar berücksichtigt, aber genau in diesem Fall trat eben auch das Problem auf. Die letzte Variante mit der direkten Konfiguration in der architecture lief bei mir. Scheint also wohl der Fall, dass die configuration nicht wirklich unterstützt wird.
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.