Menu
Coddy logo textTech

Funciones combinacionales

Parte de la sección Diseño y verificación RTL del Journey de Verilog de Coddy. Lección 11 de 38.

Una function de Verilog encapsula un cálculo de tiempo cero para reutilizarlo dentro de un módulo. Declara el ancho de retorno, los argumentos de entrada y las variables locales; después, assign el resultado al nombre de la function. Las funciones combinacionales no contienen retardos ni controles de eventos; un bucle con límites fijos puede describir lógica repetida.

Extracto relevante; las declaraciones y conexiones circundantes se proporcionan en el desafío.

function [7:0] gray;
    input [7:0] value;
    begin gray = value ^ (value >> 1); end
endfunction

Llamar a la function calcula una expresión sin añadir tiempo de simulación.

Asigna el resultado de function en cada ruta y mantén las funciones combinacionales libres de controles de temporización.

challenge icon

Desafío

Intermedio

Implementa una function de Verilog llamada gray que convierta un valor binario sin signo de 8 bits a código Gray usando value XOR (value desplazado a la derecha un bit). Asigna y llamando a la function con a. Columnas de salida: y. 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 de entrada e imprime las salidas una vez que se estabilizan. 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 [7:0] a, output [7:0] y);
    // Reemplaza este marcador de posición con tu diseño.
    assign y = 0;
endmodule
quiz iconPonte a prueba

Esta 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

Practica por tu cuenta: Compilador de Verilog online