Salve Giuseppe,
Purtroppo non si possono avere risposte garantite in tempo reale.
Il valore indefinito (simbolo U per undefined) è il valore che normalmente viene assegnato ai segnali non inizializzati in quanto previsto dal tipo STD_LOGIC che non contiene solamente 1 e 0. Sulla FPGA devi consultare il datasheet, in genere tutti i registri vengono inizializzati automaticamente al valore 0.
Durante la simulazione devi forzare manualmente tutti i valori di ingresso per avere tutti i valori di uscita.
Puoi definire via codice dei valori iniziali predefiniti allo scopo di simulazione (alcuni sintetizzatori inizializzano lo stato iniziale della FPGA con tale sintassi ma ciò non è garantito), un esempio di sintassi di inizializzazione è il seguente:
- Code: Select all
entity accumulatore is
generic (size : integer :=8);
port(
a : in STD_LOGIC_VECTOR(size-1 downto 0) := (others => '0');
clka : in STD_LOGIC;
c_in : in STD_LOGIC := '0';
resa : in STD_LOGIC := '0';
ena : in STD_LOGIC := '1';
sout : out STD_LOGIC_VECTOR(size-1 downto 0);
cout : out STD_LOGIC
);
end accumulatore;
Basterà applicare il clock sul segnale
clka e forzare altri eventuali ingressi a componenti utilizzati (segnali
aux nel tuo codice) prima di eseguire la simulazione
Leonardo