Forum: FPGA, VHDL & Co. implizite Prozesse


von Ooorndt (Gast)


Lesenswert?

Hallo,

ich hab da mal eine Frage zu impliziten Prozessen. Und zwar sehen ja 
Signalzuweisungen so aus: signal <= ausdruck. Und wenn solche 
Signalzuweisungen ausserhalb eines Prozesses stehen, handelt es sich um 
implizite Prozesse, richtig?
Bspw. wird
1
a <= b xor c when z = '1' else '0';
zu:
1
process(b,c,z) is
2
begin
3
  if z = '1' then
4
    a <= b xor c;
5
  else
6
    a <= '0';
7
  end if;
8
end process;
Wie ist das denn nun aber bei einer solchen Signalzuweisung:
1
s <= '1' after 10 ns, '0' after 20 ns;
 ???
Wird das dann in diesen Prozess umgewandelt:
1
process
2
begin
3
  wait for 10 ns;
4
  s <= '1';
5
  wait for 20 ns;
6
  s <= '0';
7
  wait
8
end process;
MfG
Ooorndt

von Vibrator (Gast)


Lesenswert?

Das Impfen von Geflügel ist auch eine Art impliziter Prozeß. Wer einmal 
an aufgetautem Geflügel gerochen und beschlossen hat, das Zeugs wegen 
des Gestanks nicht mehr zu verspeisen, hat heute gute Chancen, bei einer 
Infektion zu überleben.

von Sigi (Gast)


Lesenswert?

Die Frage ist ja nicht, ob es in einen Prozess
umgewandelt wird, sondern ob die Semantik dieselbe
(nicht die gleiche) ist.
Abgesehen davon sind "wait for 10 ns","after 10 ns"
nur für die Simulation interessant.

von Ooorndt (Gast)


Lesenswert?

Hallo,

danke für deine Antwort Sigi. In VHDL werden ja implizite Prozesse in 
explizite umgewandelt. Mir ging es jetzt nur einfach um die bzw. eine 
mögliche Umsetzung dieses einen impliziten Prozesses. Also rein 
theoretisch.

MfG

von Rüdiger (Gast)


Lesenswert?

Ooorndt schrieb:
> Also rein theoretisch.
Siehst du wenigstens ein, dass du deine Nahrungsmittel nicht nur 
theoretisch zu dir nimmst, sondern in der Tat tatsächlich verspeist? Das 
ist der Unterschied zischen Theorie und Praxis bzw. Behaviour and 
Simulation :-)

von Ooorndt (Gast)


Lesenswert?

Hallo,

sehe ich ein.

-.- Ich hätte vllt einfach fragen sollen ob
1
s <= '1' after 10 ns, '0' after 20 ns;
und
1
process
2
begin
3
  wait for 10 ns;
4
  s <= '1';
5
  wait for 20 ns;
6
  s <= '0';
7
  wait
8
end process;
äquivalent sind.

von Ooorndt (Gast)


Lesenswert?

Bin nun beim lesen selbst auf die korrekte Antwort gestossen. Der 
Prozess wie er oben steht ist falsch. Richtig wäre:
1
process
2
begin
3
  s <= '1' after 10 ns;
4
  s <= transport '0' after 20 ns;
5
  wait;
6
end process;

Erledigt.

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.