7 / 37 · Concetto
Larghezze di slice, concatenazione e ripetizione
Costruire datapath calcolando larghezza complessiva e conservazione del valore.
Le lezioni sono gratuite. Iscriviti per salvare i progressi.
Concatenare non significa sommare
{a,b} accoda i bit di b a quelli di a. Con larghezze M e N, il risultato ha M+N bit. Per sequenze unsignedUnsigned Interpretazione dei bit come intero non negativo. Il campo a n bit è 0–2^n−1 e può differire dalla lettura signed degli stessi bit. Approfondisci, numericamente:
a=2'b10, b=3'b101 danno 5'b10101, cioè 21, non la somma aritmetica 7.
I bit di a salgono di tante posizioni quant'è larga b. La concatenazioneConcatenazione Accoda sequenze di bit. La larghezza risultante è la somma delle larghezze, non un’addizione numerica. qui significa a×2³+b, non a+b.
- a = 10: Larghezza 2 bit, intero 2
- b = 101: Larghezza 3 bit, intero 5
- {a,b} = 10101: Larghezza 5 bit, 2×8+5=21
Annotare la larghezza accanto alla formula
logic [7:0] word;
logic [3:0] upper, lower;
logic [7:0] swapped;
assign upper = word[7:4];
assign lower = word[3:0];
assign swapped = {lower, upper};Con 8'hA3, swapped vale 8'h3A. Un intervallo di sliceSlice Selezione di un intervallo contiguo del vettore, che determina larghezza e ordine del risultato. sbagliato cambia larghezza o valore. Un sottoinsieme può essere trattato come unsigned indipendente anche se il vettore originale è signed: ricontrollatene il significato prima dell'aritmetica signed.
Estensione del segno e ripetizione
logic signed [3:0] small;
logic signed [7:0] extended;
assign extended = {{4{small[3]}}, small};Quattro copie del bit di segno e i quattro bit originali formano otto bit. L'estensione del segno non somma 1 quando il MSBMSB Bit di peso maggiore. L’indice dipende dalla direzione dichiarata: non è necessariamente il numero più alto. Approfondisci è acceso: amplia la disposizione conservando il valore interpretato.
Un circuito generico con q[N-2:0] ha un intervallo non valido per N=1. Limitate la larghezza minima o gestite N=1 con un ramo generate. Parametrizzare non significa soltanto sostituire numeri con variabili.
Prova tu
a ha tre bit 101, b due bit 11. Quali larghezza e valore ha {a, b}, e cosa resta in quattro bit?
Leggi la spiegazione
Cinque bit 10111, valore . In quattro bit si scarta il superiore: restano 0111, cioè 7.