Fabrication industrielle
Internet des objets industriel | Matériaux industriels | Entretien et réparation d'équipement | Programmation industrielle |
home  MfgRobots >> Fabrication industrielle >  >> Industrial programming >> Verilog

Blocs initial Verilog : But, syntaxe et utilisation non-synthétisable

Un ensemble d'instructions Verilog s'exécute séquentiellement en simulation. Placées dans bloc procédural. Deux types principaux : initial et always.

Syntaxe

initial [instruction unique]
initial begin [instructions multiples] end

À quoi sert le bloc initial ?

Bloc initial non synthétisable : ne peut être converti en schéma matériel avec éléments numériques. Sert principalement pour simulations : initialiser variables et piloter ports de conception avec valeurs spécifiques.

Quand démarre et finit un bloc initial ?

Démarre au début simulation à temps 0. Exécuté une seule fois pendant toute la simulation. Se termine quand toutes instructions exécutées.

Blocs initial Verilog : But, syntaxe et utilisation non-synthétisable

Image ci-dessus : module behave avec signaux internes a et b. Bloc initial une instruction -> pas besoin begin/end. Assigne 2'b10 à a au démarrage temps 0.

Que se passe-t-il avec élément délai ?

Code ci-dessous : instruction additionnelle assigne valeur à b après 10 unités depuis instruction précédente. a assigné d'abord, puis 10 unités après, b assigné à 0.

Blocs initial Verilog : But, syntaxe et utilisation non-synthétisable

Combien de blocs initial autorisés dans un module ?

Aucune limite. Code ci-dessous a trois blocs initial tous démarrés même temps, s'exécutant en parallèle. Selon instructions et délais, temps fin varie.

Blocs initial Verilog : But, syntaxe et utilisation non-synthétisable

Exemple : premier bloc délai 20, second total 50 (10+40), dernier 60. Simulation prend 60 unités car au moins un bloc actif jusqu'à 60.

$finish = tâche système Verilog disant au simulateur de terminer simulation.

Si dernier bloc délai 30, simulation finit à 30 tuant autres blocs actifs.

initial begin #30 $finish; end

Voir exemple flash pour exécution bloc initial en simulation.

Cliquez ici pour diaporama avec exemple simulation !

Verilog

  1. Maîtriser Verilog : Tutoriel complet pour la conception de circuits numériques
  2. Maîtriser la concaténation Verilog : Guide pratique
  3. Verilog Essentiel : Aperçu concis
  4. Comprendre les affectations Verilog : Types, Syntaxe et Bonnes Pratiques
  5. Verilog Blocking vs Non-Blocking : Différences Clés Expliquées
  6. Maîtriser les Fonctions Verilog pour une Conception RTL Efficace
  7. Comprendre les Tasks Verilog : Fonctions vs Tasks, Syntaxe et Utilisation
  8. Générateur d'Horloge Verilog : Guide de Conception et d'Implémentation
  9. Maîtriser les Fonctions Mathématiques Verilog pour une Conception Matérielle Efficace