Menu
Coddy logo textTech

Récapitulatif - Banque à double lecture

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

challenge icon

Défi

Moyen

Implémentez quatre mots de 8 bits avec une écriture cadencée par horloge et deux sorties de lecture enregistrées des anciennes données, qa et qb. we écrit à l’adresse waddr. rst synchrone efface uniquement qa et qb. Sinon, re active les deux lectures depuis raddr_a et raddr_b : les lectures désactivées conservent leur valeur. Les écritures ayant lieu sur le même front ne modifient pas les anciennes valeurs capturées par ces lectures. Les tests initialisent les mots avant de les lire. Colonnes de sortie : qa, qb. Toutes les commandes et les données sont stables avant chaque front montant de l’horloge ; les résultats sont observés ensuite.

Complétez design.v et préservez les noms de module et les ports. Le testbench.v verrouillé fournit les changements d’entrée et affiche les sorties une fois celles-ci 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 pas d’affichage, de délais ni de terminaison de simulation au design. La sortie attendue est une ligne de valeurs décimales par observation, séparées par un espace et terminées par un saut de ligne.

Essayez vous-même

module dut (input clk, input rst, input we, input re, input [1:0] waddr, input [1:0] raddr_a, input [1:0] raddr_b, input [7:0] data, output reg [7:0] qa, output reg [7:0] qb);
    // Remplacez ce placeholder par votre design.
    initial qa = 0;
    initial qb = 0;
endmodule

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

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