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.
Didn't find your answer? Ask the community — no account required.
F
Fabio G.
"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)
Join the Discussion
Have something to add? Share your thoughts — no account required.
Didn't find your answer?
Ask the community — no account required
Report Content
You are reporting this content to the moderators. They will look at it
ASAP.