HDL et vérification

Pour un circuit combinatoire, quelle comparaison est correcte entre une longue chaîne de if/else if et une instruction case à conditions mutuellement exclusives ?

  1. ALa chaîne if/else if donne un circuit privilégiant les conditions antérieures, tendant à être profond et lent, alors que case tend à donner un circuit de sélection parallèle
  2. BLes deux écritures donnent exactement le même circuit synthétisé
  3. Ccase n'est pas synthétisable, seul if l'est
Afficher la réponse et l'explication

Réponse : A. La chaîne if/else if donne un circuit privilégiant les conditions antérieures, tendant à être profond et lent, alors que case tend à donner un circuit de sélection parallèle

Une chaîne if/else if signifie « si la première condition est vraie, prendre celle-ci, sinon examiner la suivante » ; elle donne un circuit à priorités (de type encodeur de priorité), avec autant de multiplexeurs en série que de conditions, ce qui tend à allonger le délai. Une case sélectionnant sur des valeurs mutuellement exclusives tend à donner un circuit parallèle, comme un grand multiplexeur à un étage, plus rapide. Les outils de synthèse récents optimisent toutefois souvent les deux.

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

Autres questions sur HDL et vérification

  1. Quelle est la différence entre les opérateurs d'égalité « == » et « === » en Verilog ?
  2. Quelle est la grande différence entre une description en HDL comme Verilog et un programme logiciel en C ou autre ?
  3. Quel est l'objectif de l'utilisation de module en Verilog ?
  4. Quelle est la différence entre les types wire et reg en Verilog ?
  5. Quel circuit représente l'instruction assign Verilog ci-dessus ?

Comparatifs sur ce thème