Sensitvity-Liste angeblich unvollständig

Gast #2600514
Lesenswert?

ModelSIM compiliert das file mit den warnings, dass die internen Signale 
nicht in der Liste stehen. Warum ist das so?


clk_proc : process(sen_clock, value)
begin
   if rising_edge(sen_clock) then
       value  <= std_logic_vector(unsigned(pixel (9 downto 2)) * 
unsigned(line(9 downto 2)) + unsigned(dmc));
   end if;

   calc  <= value (12 downto 0);

end process;

liegt das an dem calc? Dort greift er auf value zurück, das müsste ihm 
doch reichen, oder?
#2600535
Lesenswert?

mmhh geclockter process, hier nur clk (oder asynchroner Reset) in die 
sensitivity list.

Aber warum machst du diese Anweisung mit calc <= value (12 downto 0) 
unten in den Process rein? Ich finde das schlechten Stil, entweder 
geclockter Process oder nicht geclockter..

Aber vielleicht gibt es Leute hier die das besser wissen, bin nicht so 
tief drin....
Gast #2600550
Lesenswert?

Sowas dachte ich mir schon. Es ist nur so, dass ich u.U. das timing 
verschieben will und die Zeile gfs dochmal takten möchte. Aber ganz raus 
und einfach druntermalen ist wohl die sicherste Alternative.
Gast #2601524
Lesenswert?

> Die Position von
> calc  <= value (12 downto 0);
> ist falsch. Entweder im if rising_edge Zweig oder komplett außerhalb des
> Prozesses.

Nun ja falsch wuerde ich nicht sagen. Nur kein guter
Stil. Die Synthese bzw. Simulation funktionert auch damit.

Die Zeile ist halt nicht im getakteten Prozess und deshalb muss
"value" auch in die Sensitivliste.

Gruss

Guter Programmierstil
#2601762
Lesenswert?

VHDLer schrieb:
> Nun ja falsch wuerde ich nicht sagen. Nur kein guter
> Stil. Die Synthese bzw. Simulation funktionert auch damit.

Stimmt, die Simulation frisst es auf jeden Fall.

Für die Synthese gibt es aber einen Standard 1076.6, an den man sich 
halten sollte.
Leider muss man den kaufen, sodass ich nicht genau weiss, was drinnen 
steht.
Ich vermute aber stark, dass diese Beschreibung nicht unterstützt wird.

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