Alle Signale die im Prozess gelesen werden in die sensitivity list eintragen

Gast #3666709
Lesenswert?

Ausprobieren! Die meisten Synthesetools meckern, wenn die Sensitivity 
Liste nicht passt.

Kurz gesagt:
Wenn der Prozess durch eine steigende Taktflanke getaktet wird, dann 
brauchst du NUR clk.

test1: process(clk)
begin
    if (rising_edge(clk)) then
        ....
    end if;
end process;

Wenn du aber eine logische Funktion OHNE Speicherung/Flipflop machen 
willst, dann musst du alle Signale reinschreiben die gelesen werden.

test1: process(a1, a2, a3)
begin
      b <= a1 and (a2 or a3);
end process;
Moderator (Firma: Titel) Persönliche Seite #3666947
Lesenswert?

meckerziege schrieb:
> Kurz gesagt:
> Wenn der Prozess durch eine steigende Taktflanke getaktet wird, dann
> brauchst du NUR clk.
Und bei einer fallenden Flanke?

Nur zur sachlichen Richtigstellung:
1. Die Sensitivliste ist ausschließlich für die Simulation relevant!
2. In die Sensitivliste muss jedes Signal, das eine Neuberechnung des 
Prozesses nötig macht.
3. Die Neuberechnung eines Prozesses ist nötig, wenn sich durch die 
Änderung eines Signals ein anderes Signal ändern wird.

Ansonsten verweise ich auf den Beitrag vom Bitflüsterer...
Gast #3667835
Lesenswert?

Model(SIM)Athlet schrieb:
> meckerziege schrieb:
>> Ausprobieren! Die meisten Synthesetools meckern, wenn die Sensitivity
>> Liste nicht passt.
>
> ????
> "Nachdenken" wäre der richtige Ratschlag. Es gibt Fälle, bei denen der
> Process auf ein Signal reagieren muss und andere, bei denen das nicht
> der Fall sein muss.

Synthese und simulation "werten" die Sensitivity list unterschiedlich 
aus.
Da hilft ausprobieren oder nachlesen im synthesis style guide 
tatsächlich mehr als "denken wie ein Simulator".

MfG,

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