hallo,
ich habe eine frage zum boolean datentyp in vhdl.
mir ist aufgefallen dass ich diesen datentyp in 2 oder evtl auch in
mehreren prozessen ändern kann. (natürlich nicht gleichzeitig)
ich habe es mit einem std_logic typ versucht wobei der compiler ja schon
schreit. beim boolean typ gibt es keine meldung.
lieg ich da richtig, dass ich bool'sche typen in mehreren prozessen
ändern kann? also wie ne art semaphore?!
ich habe das auch durch ein bsp-programm ausprobiert und möchte da doch
noch eure meinung hören.
verwende den MachXO von lattice und habe ispLEVER 7.2
hier mal das bsp-programm:
1 | architecture arch_led of led is
|
2 | signal EN : boolean := false;
|
3 | begin
|
4 | process
|
5 | begin
|
6 | if rising_edge(clk) then
|
7 | if EN = true then
|
8 | EN<= false;
|
9 | end if;
|
10 | end if;
|
11 | wait for 1000 ms;
|
12 | end process;
|
13 |
|
14 | process
|
15 | begin
|
16 | if rising_edge(clk) then
|
17 | if EN = false then
|
18 | EN <= true;
|
19 | end if;
|
20 | end if;
|
21 | wait for 1000 ms;
|
22 | end process;
|
23 |
|
24 | with EN select
|
25 | led <= '1' when true;
|
26 | led <= '0' when false;
|
27 | ...
|
nach dem routing oder vllt noch davor meldet der compiler
logical net 'clk' has no load
somit kann ich dann das signal auch nicht einem clk-pin des MachXO
zuweisen. woran liegt das denn? daran dass ich keine sensitivity-list
verwende??
mfg
andi