HDL et vérification

Quel est le rôle de l'instruction generate ci-dessus ?

genvar i;
generate
    for (i = 0; i < 4; i = i + 1) begin : g
        fifo u_fifo (.clk(clk), .din(din[i]), .dout(dout[i]));
    end
endgenerate
  1. ARéutiliser une seule fifo quatre fois sur quatre cycles d'horloge
  2. BAfficher la fifo quatre fois uniquement en simulation
  3. CCréer quatre modules fifo et relier chacun à un élément différent de din et dout
Afficher la réponse et l'explication

Réponse : C. Créer quatre modules fifo et relier chacun à un élément différent de din et dout

La boucle for d'une instruction generate déroule son contenu pour chaque valeur de genvar et produit des descriptions de circuit répétées. Dans cet exemple, quatre instances de fifo sont créées, de g[0].u_fifo à g[3].u_fifo, reliées respectivement à din[i] et dout[i]. Le nombre d'instances suit le nombre de canaux ou de bits défini par parameter, ce qui permet d'écrire brièvement des circuits à structure régulière.

S'entraîner sur ce thème Retour au thème

Autres questions sur HDL et vérification

  1. Quel est le rôle des outils de lint utilisés en vérification HDL ?
  2. Quel est l'objectif principal d'une simulation avec informations de délai sur le circuit après synthèse logique ou placement-routage (netlist au niveau portes) ?
  3. Comment appelle-t-on la forme ci-dessus, où la sortie d'un circuit combinatoire revient à sa propre entrée sans passer par une bascule, et pourquoi faut-il l'éviter ?
  4. Comment la description ci-dessus est-elle généralement traitée lors de la synthèse logique pour FPGA ?
  5. Pour un circuit combinatoire, quelle comparaison est correcte entre une longue chaîne de if/else if et une instruction case à conditions mutuellement exclusives ?

Comparatifs sur ce thème