Forum: FPGA, VHDL & Co. Fehler im Programm?


von Chris H. (xkris)


Lesenswert?

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

von Klaus F. (kfalser)


Lesenswert?

gib mal int3 in die sensitivity list !

von Chris H. (xkris)


Lesenswert?

Stimmt, der fehlte noch. Danke!

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
Noch kein Account? Hier anmelden.