Rufio00 schrieb:
> zu 2.)
> alle Signal die innerhalb eines Prozesses gelesen werden, müssen in die
> sensitivitylist!
Aha, okay. Ich dachte die 'sensitivity list' ist nur dazu da, den
Prozess bei entsprechen Signaländerungen der Signale in der 'sensitivity
list' zu starten.
Kann es zudem das Problem sein, dass man versucht 2 Treiber ('1' und
'0') auf ein Signal zu geben und dadurch ein unbekannter Zustand
entsteht ?
St. D. schrieb:
> Alles, in diesem Fall,
>
> SIG <= '1';
>
> und
>
> if SIG = '1' then
> SIG <= '0';
> endif;
>
> sind parallel und machen keinen Sinn.
Innerhalb von Prozessen werden Anweisungen doch sequentiell abgearbeitet
?
St. D. schrieb:
> 1. Prozessvariablen sind temporär und fast überflüssig! Mach alles mit
> richtigen Signals.
Danke, ich muss trotzdem noch mal nachhaken. Beispiel:
(in der entity ist A : out std_logic; definiert)
1)
signal test;
process(X)
begin
if X = '0' then
test <= '0';
end if;
A <= test;
end process;
2)
process(X)
variable test;
begin
if X = '0' then
test := '0';
end if;
A <= test;
end process;
Laut Skript ist beides syntaktisch richtig, führt aber zu zwei
unterschiedlichen Ergebnissen. Warum ?