fattibile opearotr

I

info_req

Guest
helo caro,
Sto usando (i) (std_logic_vector) * (intero) di spostare std_logic_vector destra
ii) SLL, SHL, ecc per spostare a destra / sinistra, ma non funziona.Sono anche l'aggiunta di librerie appropriate

ERRORE è come: operatore irrealizzabile.

quello che può essere il problema??grazie in anticipo

 
Si può fare manualmente per evitare questo problema:
Per esempio, un numero di 5 bit per essere spostato a sinistra di 3:
num (4 downto 2) <= num (2 downto 0);
num (2 downto 0) <= "00";

Se si desidera utilizzare la moltiplicazione, allora si dovrebbe utilizzare un numero binario, invece di interi:
ad esempio:
num2 <= num1 * "100"; - passaggio da 2, num2 sua dimensione dovrebbe essere superiore num1 da 2.
num1 <= num2 (4 downto 0); - se un processo interno, conterrà il valore dell'orologio precedente, fate attenzione.

e si deve includere ieee.std_logic_unsigned .*;

Si noti che il metodo di moltiplicazione consuma di più l'hardware, se si vuole sintetizzare il vostro codice.

 
Wont VHDL consente di utilizzare operatori come * su diversi tipi di dati.Che è il vostro problema.
Ma se avete a che fare, allora si dovrà definire il proprio operatore, che vorrebbe scrivere una funzione, che richiederebbe un tipo std_logic_vector, e il tipo integer, moltiplicare e restituire il risultato nel tipo di dati di vostra scelta, questo è anche chiamato sovraccarico oprator.
KR,
Avi
http://www.vlsiip.com

 

Welcome to EDABoard.com

Sponsor

Back
Top