7 / 37 · Concepto
Anchos de selección, concatenación y repetición de bits
Calcule ancho total y conservación de valor al construir caminos de datos.
Las lecciones se pueden leer gratis. Inscríbete para guardar el progreso.
Concatenar no es sumar
{a,b} coloca los bits de b después de los de a. Con anchos M y N, el resultado mide M+N. Para secuencias unsignedunsigned Interpretación de una secuencia de bits como entero no negativo. Con n bits, el rango es de 0 a 2^n−1; puede diferir de la interpretación signed de los mismos bits. Más información:
Si a=2'b10 y b=3'b101, resulta 5'b10101, 21. Es distinto de la suma aritmética 7.
Los bits de a suben tantas posiciones como mide b. La concatenaciónConcatenación Operación que une secuencias de bits una junto a otra. El ancho resultante es la suma de sus anchos; no es una suma numérica. se interpreta como a×2³+b, no a+b.
- a = 10: Ancho de dos bits, entero 2
- b = 101: Ancho de tres bits, entero 5
- {a,b} = 10101: Ancho de cinco bits, 2×8+5=21
Anote los anchos junto a cada expresión
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 entrada 8'hA3, swapped vale 8'h3A. Equivocarse en un extremo de la selecciónSelección de bits Operación que extrae un intervalo contiguo de un vector. El intervalo determina el ancho y el orden de los bits del resultado. cambia ancho o valor. Una selección parcial puede tratarse como unsigned aunque el vector original sea signed; revise su significado antes de operar con signo.
Extensión de signo mediante repetición
logic signed [3:0] small;
logic signed [7:0] extended;
assign extended = {{4{small[3]}}, small};Se concatenan cuatro copias del signo y los cuatro bits originales: ocho bits en total. Extender signo no consiste en sumar 1 porque el MSBMSB Bit de mayor peso. Su índice depende del sentido de declaración del vector; no debe suponerse que siempre tiene el número más alto. Más información valga 1; se amplía la representación para conservar su valor interpretado.
El intervalo q[N-2:0] de un desplazador genérico no es válido para N=1. Restrinja el mínimo admitido o trate N=1 en una rama generate. Parametrizar exige más que sustituir números por variables.
Inténtalo tú
a tiene tres bits 101 y b dos bits 11. ¿Qué ancho y valor tiene {a,b}? ¿Qué queda al almacenarlo en cuatro bits?
Leer la explicación
Son cinco bits, 10111, con valor . En cuatro bits se descarta el superior: queda 0111, es decir, 7.