CPLD - Signal toggeln

Gast #2194738
Lesenswert?

Hallo,

ich habe zwei Inputs, welche ein internes Signal toggeln sollen. Bisher 
habe ich das in etwa so gelöst:

1
entity test is 
2
  Port ( 
3
    CLK : in  STD_LOGIC;
4
    RESET : in  STD_LOGIC;
5
    ON : in  STD_LOGIC;
6
    OFF : in  STD_LOGIC
7
  );
8
end test;
9

10
architecture Behavioral of test 
11
  signal STATE : STD_LOGIC;
12

13
begin
14
  process (RESET,CLK) begin
15
    if RESET = '1' then
16
      STATE <= '0';
17
    end if;
18

19
    ..
20
    ..
21
  end process;
22

23
  process (ON,OFF) begin
24
    if ON = '1' then
25
      STATE <= '1';
26
    elsif OFF = '1' then
27
      STATE <= '0';
28
    end if;
29
  end process;
30
end Behavioral;

Jetzt erhalte ich die Warnung, dass ich ein Latch fabriziert habe, was - 
soviel ich weiß - vermieden werden sollte. Ich frage mich nun, wie mache 
ich das mit einem Flip-Flop?

Danke schonmal für die Hilfe.

Gruß Sam
#2194844
Lesenswert?

Hallo Sam,

hier sind noch einige Dinge im Argen. Ich vermute mal, dass Du noch 
Anfänger bist.

Drei Dinge sind mir auf die Schnelle eingefallen:

1. Deine Signal STATE wird in mehreren Prozessen zugewiesen.
   Ein Signal kann (zumindest sollte) immer nur an einer Stelle (in 
einem Process oder concurrent) erfolgen.

2. Du verwendest den Clock nicht. Daher auch das Latch. Der Clock ist 
zwar in der sensitivity-Liste enthalten wird aber nicht verwendet.

3. Deine Entity hat keinen Ausgang. Für die Simulation ist das kein 
Problem. Aber sonst wird dir alles wegoptimiert.

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