Hallo :),
ich habe den Folgenden Code geschrieben, für einen Adder und Subtracter
für Unsigned und Signed Werten zusammen. Den Code wollte ich auf mein
Spartan 3AN Starter Kit anwenden:
1 | --------------------------------------------------
|
2 |
|
3 | library IEEE;
|
4 | use IEEE.STD_LOGIC_1164.ALL;
|
5 | use IEEE.NUMERIC_STD.ALL;
|
6 |
|
7 | entity AdderSubtracter is
|
8 | Generic ( N : Natural := 2);
|
9 | Port ( a : in STD_LOGIC_VECTOR(N downto 0);
|
10 | b : in STD_LOGIC_VECTOR(N downto 0);
|
11 | sel : in STD_LOGIC_VECTOR(1 downto 0);
|
12 | y : out STD_LOGIC_VECTOR(N downto 0));
|
13 | end AdderSubtracter;
|
14 |
|
15 | architecture Behavioral of AdderSubtracter is
|
16 |
|
17 | begin
|
18 | y <= STD_LOGIC_VECTOR(UNSIGNED(a)+UNSIGNED(b)) when sel = "00" else
|
19 | STD_LOGIC_VECTOR(SIGNED(a)+SIGNED(b)) when sel = "01" else
|
20 | STD_LOGIC_VECTOR(UNSIGNED(a)-UNSIGNED(b)) when sel = "10" else
|
21 | STD_LOGIC_VECTOR(SIGNED(a)-SIGNED(b)) when sel = "11" else
|
22 | (others => '0');
|
23 |
|
24 |
|
25 | end Behavioral;
|
26 |
|
27 | -----------------------------------------------
|
Die Constaints Datei sieht so aus:
1 | ###############################################
|
2 |
|
3 | NET "a[0]" LOC = V8;
|
4 | NET "a[1]" LOC = U10;
|
5 | NET "b[0]" LOC = U8;
|
6 | NET "b[1]" LOC = T9;
|
7 | NET "y[0]" LOC = R20;
|
8 | NET "y[1]" LOC = T19;
|
9 | NET "y[2]" LOC = U20;
|
10 |
|
11 | NET "sel[0]" LOC = T15 | IOSTANDARD = LVCMOS33 | PULLDOWN;
|
12 | NET "sel[1]" LOC = T14 | IOSTANDARD = LVCMOS33 | PULLDOWN;
|
13 |
|
14 | ###############################################
|
Das Synthesiswerkzeug gibt aber eine Warnung bei dem Prozess "Map", mit
dem Folgenden Log:
WARNING:PhysDesignRules:367 - The signal <sel<0>_IBUF> is incomplete.
The signal
does not drive any load pins in the design.
Ich habe ein Paar codes geschrieben mit der selben Methode und habe
keine Probleme bekommen.
Könnt ihr bitte mir erklären warum ich diese Warnung bekomme?
Danke sehr :)