Verhalten Sim vs Post Fit Sim

Gast #672939
Lesenswert?

Ich bins schon wieder g,

kann mir jemand sagen warum dieser code:
1
library IEEE;
2
use IEEE.STD_LOGIC_1164.ALL;
3
 
4
entity QuadDecoder is
5
    Port ( CLK      : in std_logic;
6
           A      : in std_logic;
7
           B      : in std_logic;
8
        RST      : in std_logic;
9
           UP_DOWN  : out std_logic;
10
           C_ENABLE  : out std_logic;
11
           ERR      : out std_logic);
12
end QuadDecoder;
13
 
14
architecture VERH of QuadDecoder is
15
 
16
signal RST_SIG,A_OLD, B_OLD: std_logic;
17
 
18
begin
19

20
  QDecoder:  process(CLK, RST, A, B)
21
  variable DecPattern: std_logic_vector(3 downto 0);
22
  begin
23
    if RST = '1' then
24
      C_ENABLE  <= '0';
25
      UP_DOWN   <= '0';
26
      ERR    <= '0';
27
      A_OLD    <= '0';
28
      B_OLD    <= '0';
29
      RST_SIG  <= '1';
30
    
31
    elsif CLK = '1' and CLK'event then
32
      if RST_SIG = '1' and A = '0' and B = '0' then
33
        RST_SIG <= '0';  
34
      end if;
35
        
36
      if RST_SIG = '0' then
37
        DecPattern := A & B & A_OLD & B_OLD;
38
        A_OLD <= A;
39
        B_OLD <= B;
40
    
41
        case DecPattern is
42
          when "0000" => UP_DOWN <= '0'; C_ENABLE <= '0'; ERR <= '0';
43
          when "0001" => UP_DOWN <= '1'; C_ENABLE <= '1'; ERR <= '0';
44
          when "0010" => UP_DOWN <= '0'; C_ENABLE <= '1'; ERR <= '0';
45
          when "0011" => UP_DOWN <= '0'; C_ENABLE <= '0'; ERR <= '1';
46
          when "0100" => UP_DOWN <= '0'; C_ENABLE <= '1'; ERR <= '0';
47
          when "0101" => UP_DOWN <= '0'; C_ENABLE <= '0'; ERR <= '0';
48
          when "0110" => UP_DOWN <= '1'; C_ENABLE <= '0'; ERR <= '1';
49
          when "0111" => UP_DOWN <= '1'; C_ENABLE <= '1'; ERR <= '0';
50
          when "1000" => UP_DOWN <= '1'; C_ENABLE <= '1'; ERR <= '0';
51
          when "1001" => UP_DOWN <= '0'; C_ENABLE <= '0'; ERR <= '1';
52
          when "1010" => UP_DOWN <= '0'; C_ENABLE <= '0'; ERR <= '0';
53
          when "1011" => UP_DOWN <= '0'; C_ENABLE <= '1'; ERR <= '0';
54
          when "1100" => UP_DOWN <= '0'; C_ENABLE <= '0'; ERR <= '1';
55
          when "1101" => UP_DOWN <= '0'; C_ENABLE <= '1'; ERR <= '0';
56
          when "1110" => UP_DOWN <= '1'; C_ENABLE <= '1'; ERR <= '0';
57
          when "1111" => UP_DOWN <= '0'; C_ENABLE <= '0'; ERR <= '0';
58
          when others => null;
59
        end case;
60
      end if;
61
    end if;
62
  end process QDecoder;
63
 
64
end VERH;

nicht korrekt synthetisiert wird ? Verhaltenssimulation und Post Fit 
Simulation weichen voneinander ab -> Siehe Bildanhang
Angehängte Dateien:
Gast #673114
Lesenswert?

ich möchte bei einem reset definiert auf nullpegel an A und B Eingang 
warten bevor der c_enable wieder freigegeben wird. also eine Erweiterung 
:-) warum weichen denn verhaltens und post fit sim voneinander ab ?
#673138
Lesenswert?

@ AlexW (Gast)

>ich möchte bei einem reset definiert auf nullpegel an A und B Eingang
>warten bevor der c_enable wieder freigegeben wird. also eine Erweiterung
>:-)

Deren Sinn sich mir nicht erschliesst und die so wie du es geschrieben 
hast nicht erreicht wird.

MFG
Falk
#673544
Lesenswert?

@ AlexW (Gast)

>das es wohl so irgendwie falsch ist weiss ich schon. aber was ich wissen
>möchte: warum weicht die post fit sim von der verhaltens sim ab ?!

Keine Ahnung. Kan sein dass interne Signale undefineirt sind, weshalb 
das rote Ausgangssignale auftauchen. Modelsim müsste Warungen ausgeben, 
die muss man analysieren.

MFG
Falk

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren