Hallo,
ich habe ein Schaltung mit einem CoolrunnerII-CPLD XC2C64A, ein Paar
Tastern und einer LED und möchte, dass die LED beim Betätigen der einen
oder anderen Taste leuchtet und nach einem Reset-Signal wieder ausgeht.
Leider habe ich keinen Takt in der Schaltung und ungefähr so versuche
ich es zu machen:
1 | LED_O: out std_logic;
|
2 | SW1: in std_logic;
|
3 | SW2: in std_logic;
|
4 | ...
|
5 | signal LED_REG: std_logic;
|
6 | signal SW_EVENT: std_logic;
|
7 | ...
|
8 | SW_EVENT <= SW1 or SW2;
|
9 | LED_O <= LED_REG;
|
10 | process(RST, SW_EVENT, LED_REG)
|
11 | begin
|
12 | if RST = '1' then
|
13 | LED_REG <= '0';
|
14 | elsif SW_EVENT = '1' then
|
15 | LED_REG <= '1';
|
16 | else
|
17 | LED_REG <= LED_REG;
|
18 | end if;
|
19 | end process;
|
Nach der Synthese kommen zwei Warnungen, dass ein Latch entsteht und
wahrscheinlich asynchroner Taktsignal verwendet wird.
Gibt es für so was vielleicht andere Möglichkeiten, ohne dass Latches
entstehen? Es muss ja bloss ein Bit gesetzt werden, aber ohne Takt...
Gruß,
alex