Esiste un modo per utilizzare tipi predefiniti da STD_LOGIC_1164 o STD_NUMERIC per rappresentare un numero intero compreso tra 0 e 2^32-1? (considerando il tipo intero predefinito varia da -2^31-1 a 2^31-1)Come rappresentare un numero intero superiore a un numero intero
Ho bisogno di implementare un contatore a 32 bit e cercavo un modo per salvare il codice usando il tipo intero invece di std_logic_vector .. Qualche modello di design per questo?
O meglio chiesto: quale è il modo migliore per dichiarare un numero intero (senza segno) a 32 bit che supporta le operazioni>/<, =, + - /?
Tahnks in anticipo
Edit1: Una possibilità che ho trovato è stato quello di dichiarare un segnale come std_logic_vector (31 downto 0), e per eseguire le conversioni quando fare paragoni + o - operazioni .. ex: contatore < = contatore + std_logic_vector (senza segno (valore) + 1). Tuttavia non è stato ancora trovato un modo per eseguire la divisione (nel caso, ad esempio, 1/4 del valore del contatore è necessario)
Preferisco numeric_std su std_logic_vector dove è possibile. Per la divisione per 4 (o le potenze di 2), guarda gli operatori di shift in numeric_std, oppure taglia il vettore da solo. output <= "00" & input (31 downto 2); –