Hallo!
Ich bin blutiger Anfänger, also verzeiht mir bitte eventuelle dumme
Fragen und Fehler.
Ich habe mir in einer .vhd-Datei folgenden Addierer gebastelt:
1 | entity a1 is
|
2 | Port (
|
3 | clk: IN std_logic;
|
4 | a1_a : in STD_LOGIC_VECTOR (39 downto 0);
|
5 | a1_b : in STD_LOGIC_VECTOR (39 downto 0);
|
6 | a1_sum : out STD_LOGIC_VECTOR (39 downto 0)
|
7 | );
|
8 | end a1;
|
9 |
|
10 | architecture Behavioral of a1 is
|
11 | begin
|
12 | process(clk)
|
13 | begin
|
14 | if (clk'event and clk = '1') then
|
15 | a1_sum <= a1_a + a1_b;
|
16 | end if;
|
17 | end process;
|
18 | end Behavioral;
|
In meiner Hauptdatei binde ich diesen ein:
1 | architecture Behavioral of calc is
|
2 | component a1
|
3 | port (
|
4 | clk: IN std_logic;
|
5 | a1_a: in std_logic_vector (39 downto 0);
|
6 | a1_b: in std_logic_vector (39 downto 0);
|
7 | a1_sum: out std_logic_vector (39 downto 0)
|
8 | );
|
9 | end component;
|
10 | signal a1_a: std_logic_vector(39 downto 0) :=(OTHERS => '0');
|
11 | signal a1_b: std_logic_vector(39 downto 0):=(OTHERS => '0');
|
12 | signal a1_sum: std_logic_vector(39 downto 0):=(OTHERS => '0');
|
13 | :
|
14 | begin
|
15 | adder1 : a1
|
16 | port map (
|
17 | clk => clk,
|
18 | a1_a => a1_a,
|
19 | a1_b => a1_b,
|
20 | a1_sum => a1_sum
|
21 | );
|
Dann kommt eine SM, in der die Signal (a1_a, a1_b) mit verschiedenen
Werten beladen werden. Jetzt kommen hier bei der Synthese sehr viele
Warnungen: node ... of sequential type is unconnected in block. Mehr
als 90 Warnungen sind einfach nicht gut, oder?
Allerdings funktioniert alles, mit einer Testbench getestet.
Was habe ich da "unschönes gemacht"?
Hintergrund:
Ich muss eine komplexe Berechnung in HW realisieren. Dafür muss ich
hintereinander mehrere Multiplikationen und Addition ausführen. Ich darf
jeweils nur einen Multiplizierer und Addierer verwenden, weshalb in eine
SM verwende, die den Eingängen des Multiplizierer und Addieres
nacheinander verschiedene Werte/Signale aufschaltet.
Software:
Xilinx ISE 10.1.03
Danke für eure Hilfe!!
Viele Grüße
Martina