Comparaciones con signo
Parte de la sección Diseño y verificación RTL del Journey de Verilog de Coddy. Lección 7 de 38.
El mismo patrón de bits puede representar diferentes números signed y sin signo. Declara ambos operandos signed al comparar valores en complemento a dos. Mezclar operandos signed y sin signo puede cambiar la interpretación de la comparación. Las concatenaciones son expresiones sin signo, incluso cuando contienen señales signed.
Fragmento relevante; las declaraciones y conexiones circundantes se proporcionan en el desafío.
wire signed [7:0] a,b;
assign less = a < b;Las declaraciones signed hacen que los valores negativos se comparen como menores que los no negativos.
Mantén los operandos de comparación constantemente signed y extiende los valores signed con su bit de signo.
Desafío
IntermedioCompara signed a y b de 8 bits. Produce less cuando a sea menor que b, y equal cuando sean iguales. Ambas entradas son valores signed en complemento a dos. Columnas de salida: less, equal. Todos los valores de estímulo son valores binarios conocidos.
Completa design.v y conserva los nombres de sus módulos y puertos. El testbench.v bloqueado proporciona cambios en las entradas e imprime las salidas después de que se estabilicen. Elige un escenario mediante un argumento del simulador como +CASE=1; no se requiere entrada estándar. No añadas impresiones, retardos ni terminación de la simulación al diseño. La salida esperada es una fila de valores decimales por observación, separados por un espacio y terminada con un salto de línea.
Pruébalo tú mismo
module dut (input signed [7:0] a, input signed [7:0] b, output less, output equal);
// Reemplaza este marcador de posición con tu diseño.
assign less = 0;
assign equal = 0;
endmoduleEsta lección incluye un breve cuestionario. Empieza la lección para responderlo y registrar tu progreso.
Todas las lecciones de Diseño y verificación RTL
1RTL combinacional confiable
Los valores predeterminados evitan los latchesCodificadores de prioridadValidación one-hotDecodificación segura de caseRepaso: enrutador de solicitudes4RTL secuencial controlado
Prioridad de reinicio y habilitaciónContadores con saturaciónPipeline de datos y validaciónDetección de flancos muestreadosRepaso: contador de eventos7Proyecto - Monitor de muestras
Acumular muestrasAceptar muestras habilitadas2Anchos y aritmética con signo
Conservar los bits de acarreoComparaciones con signoDesplazamientos aritméticos a la derechaDesbordamiento y saturaciónRepaso: diferencia con signoPractica por tu cuenta: Compilador de Verilog online