Menu
Coddy logo textTech

Fonctions combinatoires

Fait partie de la section Conception et vérification RTL du Journey Verilog de Coddy. Leçon 11 sur 38.

Une function Verilog encapsule un calcul sans durée afin de le réutiliser au sein d’un module. Déclarez sa largeur de retour, ses arguments d’entrée et ses variables locales, puis affectez le résultat au nom de la function avec assign. Les fonctions combinatoires ne contiennent ni délais ni contrôles d’événements ; une boucle avec des bornes fixes peut décrire une logique répétée.

Extrait pertinent ; les déclarations et connexions environnantes sont fournies dans le défi.

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

L’appel de la function calcule une expression sans ajouter de temps de simulation.

Affectez le résultat de la function sur chaque chemin et veillez à ce que les fonctions combinatoires soient dépourvues de contrôles temporels.

challenge icon

Défi

Moyen

Implémentez une function Verilog gray qui convertit une valeur binaire non signée de 8 bits en code Gray à l’aide de value XOR (value décalée vers la droite d’un bit). Pilotez y en appelant la function avec a. Colonnes de sortie : y. Toutes les valeurs de stimulation sont des valeurs binaires connues.

Complétez design.v et préservez les noms de ses modules et ses ports. Le testbench.v verrouillé fournit les changements d’entrée et affiche les sorties une fois stabilisées. Il choisit un scénario à l’aide d’un argument du simulateur tel que +CASE=1 ; aucune entrée standard n’est requise. N’ajoutez ni affichage, ni délais, ni terminaison de simulation à la conception. La sortie attendue est une ligne de valeurs décimales par observation, séparées par un espace et se terminant par un retour à la ligne.

Essayez vous-même

module dut (input [7:0] a, output [7:0] y);
    // Remplacez ce placeholder par votre design.
    assign y = 0;
endmodule
quiz iconTestez-vous

Cette leçon comprend un petit quiz. Commencez la leçon pour y répondre et suivre votre progression.

Toutes les leçons de Conception et vérification RTL

Entraînez-vous par vous-même : Compilateur Verilog en ligne