Hallo,
steh hier grad völlig auf dem Schlauch,
der unten dargestellte Code simuliert einen Volladdierer der aus zwei
Halbaddierern aufgebaut ist.
Aus irgendeinem Grund ist das Ausgangsignal von Cout bei bestimmten
Eingangssignalen fehlerhaft. Ich benutze den ISE9.2i
1 | library IEEE;
|
2 | use IEEE.STD_LOGIC_1164.ALL;
|
3 |
|
4 |
|
5 | entity Fulladder_Sourcefile is
|
6 | Port ( A : in STD_LOGIC;
|
7 | B : in STD_LOGIC;
|
8 | Cin : in STD_LOGIC;
|
9 | Sum : out STD_LOGIC;
|
10 | Cout : out STD_LOGIC);
|
11 | end Fulladder_Sourcefile;
|
12 |
|
13 | architecture Behavioral of Fulladder_Sourcefile is
|
14 | signal int1, int2, int3: std_logic;
|
15 |
|
16 | begin
|
17 |
|
18 | P1: process (A, B)
|
19 | begin
|
20 | int1<= A xor B;
|
21 | int2<= A and B;
|
22 | end process;
|
23 |
|
24 | P2: process (int1, int2, Cin)
|
25 | begin
|
26 | Sum <= int1 xor Cin;
|
27 | int3 <= int1 and Cin;
|
28 | Cout <= int2 or int3;
|
29 | end process;
|
30 | end Behavioral;
|
Bei A=0, B=0 und Cin=1
liefert die Simulation für Cout eine 1 obwohl int1 und int2 jeweils 0
sind.
Liegt das evt. an fehlerhaften Einstellungen in der Software selbst oder
was könnte hier der Grund sein
Danke für eure Hlfe
gruß
Kristian