Domanda VHDL

Ho iniziato da poco a fare qualche esperimento in VHDL ma ho qualche dubbio:

1) Esattamente quale è la differenza tra i costrutti sequenziali e quelli concorrenti ? Non riesco a capire la loro differenza a livello implementativo.

2) All'interno di un processo è obbligatorio inserire solo costrutti sequenziali ? E' per come viene sintetizzato un processo ? Lo stesso vale per i costrutti sequenziali ? Per es. all'interno di un if non posso metterne uno concorrente ?

Scusate per le molte domande forse banali ma sono agli inizi...

Grazie a tutti, Simone Navari.

Reply to
Marcel
Loading thread data ...

"Marcel" ha scritto:

Innanzitutto ricordati *sempre* che il VHDL e' un linguaggio molto potente che non serve solo per sintetizzare hardware, e quindi NON tutto quello che si scrive in VHDL e' possibile replicarlo sull'hardware. Di conseguenza il fatto di avere all'interno di un processo istruzioni sequenziali e' solo un *comportamento* che il sintetizzatore hardware riconosce nel suo complesso e *tenta* di implementare. All'interno dell'FPGA i segnali digitali viaggiano in modo combinatorio, non stanno certo a guardare quale riga di codice e' stata scritta prima: e' il sintetizzatore che deve mappare opportunamente la logica affinche' il *risultato* sia quello che tu vuoi.

Si'

I processi sono eseguiti tra di loro in maniera concorrente, ma al loro interno il comportamento e' sequenziale. Non focalizzarti troppo sul concorrente o meno, quando non serve: all'interno puoi fare gli IF che vuoi, basta che siano coperti *tutti* i casi possibili (pena la creazione di flip flop e latch nella sintesi del circuito).

Ad esempio:

begin -- behavioral

out_mux: process (Q,C,cin,conf) variable muxsel : Std_logic_vector(1 downto 0); begin -- process out_mux

if conf = '0' then muxsel(0) := C(0); else muxsel(0) := cin; end if; muxsel(1) := C(1); case muxsel is when "00" => out_data out_data(3 downto 2)

Reply to
Fabio G.

ElectronDepot website is not affiliated with any of the manufacturers or service providers discussed here. All logos and trade names are the property of their respective owners.