Tutoriel Verilog : 5 faits intéressants à connaître

Tutoriel Verilog: Points de discussion

  • Qu'est-ce que Verilog?
  • Histoire et normalisation
  • Conception Verilog
  • Modélisation Verilog
  • Opérateurs Verilog

Pour d'autres sujets liés au didacticiel Verilog, Cliquez ici!

Qu'est-ce que Verilog?

Verilog est la combinaison des termes «vérification» et «logique». C'est un langage de description de matériel ou un type spécial de langage de programmation qui décrit les implémentations matérielles du système et des circuits numériques. Il s'agit d'un langage fortement typé et rappelle qu'il ne s'agit pas d'un langage de programmation.

Pour le didacticiel VHDL étape par étape, Cliquez ici!

Histoire et standardisation de Verilog

Prabhu Goel, Chi-Lai Huang, Douglas Warmke et Phil Moorby ont développé le Verilog autour de l'année 1983-1984. Le premier nom était «Automated Integrated Design Systems» qui a été rebaptisé «Gateway Design Automation» et a été acheté par Cadence en 1990. Cadence est maintenant le propriétaire des droits d'auteur de Verilog et du Verilog-XL.

Principalement, l'utilisation de Verilog était de définir et de démarrer la simulation. Plus tard, la popularité du langage a suscité une demande de développement supplémentaire, et cela conduit à la synthèse des circuits logiques.

640px Verilog Bus.svg
Verilog Bus, crédit d'image - Charge inductiveAutobus Verilog, marqué comme domaine public, plus de détails sur Wikimedia Commons

Tutoriel Verilog: Standardisation

La popularité de Vhdl cadence forcée de publier le Verilog Language en open source. La première normalisation de Verilog par l'IEEE a été étiquetée 1364-1995 et nommée Verilog-95.

RévisionsActualités
IEEE 1364 - 2001Verilog-2001. Prend en charge les variables signées et l'imbrication. Largement utilisé par les packages EDA.
IEEE 1364-2005Verilog 2005. Entré avec de petites corrections et clarifications.
IEEE P1800-2005Verilog système.
IEEE 1800-2017Fusion de SystemVerilog et Verilog. Connu sous le nom de SystemVerilog 2009.
Standardisation IEEE de Verilog, tableau du didacticiel Verilog -1

Conception Verilog

Verilog a deux types de méthodologies de conception. Elles sont - Approche ascendante et approche descendante.

Une approche en profondeur: C'est la manière conventionnelle de concevoir des modèles. La planification est mise en œuvre au niveau de la porte. Des portes typiques sont utilisées pour les implémentations. Cette méthode ouvre des voies pour différentes planifications structurelles et ordonnées.

Approche descendante: Cette approche présente certains avantages par rapport à la méthode conventionnelle. Les modifications peuvent être facilitées ici. Un test précoce est également possible.

Modélisation Verilog

La modélisation Verilog a quelques unités de conception. Laissez-nous discuter des principaux composants.

Code Verilog 1
Code Verilog pour tongs

A.Module

Un modèle Verilog propose des déclarations de port, des déclarations de type de données, des fonctionnalités de circuit, des spécifications de synchronisation. Une structure de base du module est donnée ci-dessous.

  • Verilog est sensible à la casse.
  • Les mots clés réservés sont écrits en minuscules.
  • Un point-virgule est utilisé pour terminer l'instruction.
  • La règle de commentaire est la même que celle du langage de programmation C.
  • Le commentaire sur une seule ligne commence par "//".

Par exemple - // Exemple de commentaire d'une seule ligne Verilog

  • Les commentaires multilignes commencent par - '/ *' et se terminent par '* /'.

Par exemple -

/* Exemple

De Verilog multiple

Commentaire de ligne * /

  • Les spécifications de temps sont utilisées pour le processus de simulation.

Un module comprend au maximum quatre niveaux de notion. Les niveaux sont définis ci-dessous.

Effet comportemental: Le plus haut niveau de notion. La conception anticipée est prévue à ce niveau. Cependant, aucune implémentation matérielle n'est envisagée.

Flux de données: Ce niveau du module Verilog décrit le flux de données de la conception souhaitée. Les implémentations matérielles du flux de données à travers les composants sont gardées à l'esprit lors de la conception de ce niveau.

Image 26 1024x464 1
Modélisation de flux de données, didacticiel Verilog

Porte: Les portes logiques sont implémentées dans ce niveau de module Verilog. Des interconnexions sont mises en œuvre entre les portes.

Commutateur: Le niveau de notion le plus bas. Des commutateurs, des blocs de stockage sont mis en œuvre. Les interconnexions sont également conçues entre eux.

Déclarations du module

Les déclarations de module commencent par 'module' mot-clé. Il comprend une liste de ports (si elle existe).

Types de ports: Il existe trois types de ports. Le nom et sa fonctionnalité sont indiqués ci-dessous.

  • contribution - port d'entrée
  • sortie - port de sortie
  • inout - port bidirectionnel
Module Mixage 1
Verilog Code for Module Mixing, tutoriel Verilog

Déclarations de port: La structure générale des déclarations de port est donnée ci-dessous.

<type_port>nom_port>;

C. Types de données

Il existe plusieurs types de types de données dans Verilog.

 Type de données net: Ce type de données décrit l'interrelation physique entre les flux.

Nets -> Functional Block: MUX -> Functional Blocks: Adders -> Nets

Le tableau ci-dessous fournira plus de détails sur le type de données net.

TypeCaractérisation
filDécrit le nœud ou les connexions
triDécrit un nœud à trois états
supply0Représente la logique 0
approvisionnement1Représente la logique 1
Types de données réseau, tableau du didacticiel Verilog - 2
  •  Déclarations de bus: La structure générale des déclarations de bus est donnée ci-dessous.

<Type de données> [Bit le plus significatif (MSB): Bit le moins significatif (LSB)]nom_signal>;

          <Type de données> [Bit le moins significatif (LSB): Bit le plus significatif (MSB)]nom_signal>;

Par exemple -

fil [3: 1] in;

Type de données variable: Ce type de données décrit l'élément pour enregistrer une donnée pour le moment.

Il existe de nombreux types de variables, pris en charge par Verilog. Certains d'entre eux sont -

entier - 32 bits, signé.

reg - toute taille de bit, non signée. Pour implémenter un reg signé, utilisez le mot clé «reg signé».

réel, temps, temps réel - pas de support pour la synthèse.

D. Instanciation du module

Après toutes les déclarations, le module peut être instancié dans un module de niveau supérieur à l'aide de quelques syntaxes. En instanciant des modules, nous pouvons créer des conceptions avec plusieurs niveaux de hiérarchie. Cela nous aidera en outre à obtenir une maintenabilité plus simple. La plupart des conceptions modernes ont de nombreuses couches de hiérarchie.

Le format général de l'instanciation est indiqué ci-dessous.

<nom_composant> #<retarder>inom_stance> (liste_port);

Nom du composant: C'est le nom du module du composant de niveau inférieur.

retard: C'est un choix facultatif. Delay introduit un retard dans tout le composant.

nom de l'instance: C'est le nom exclusif donné par le concepteur pour chaque instance individuelle.

liste des ports: La liste des ports donne les listes de signaux qui seront connectés au composant.

E. Composant de simulation

Une fois le processus de conception terminé, le processus de test démarre. Ce test peut être effectué en utilisant le bloc de stimulation. Les blocs de stimulation sont communément appelés bancs d'essai.

Les applications de stimulation peuvent être de deux types. La conception principale commence par le bloc de conception et fait directement glisser les signaux de port dans les blocs de conception.

La deuxième conception instancie le bloc de stimulus et le bloc de conception dans un modèle de réplique de niveau supérieur. L'interface est le lien de communication entre les blocs.

Quelques concepts de base de Verilog

Opérateurs Verilog

Verilog dispose de trois opérateurs fondamentaux pour Verilog HDL. Ils sont donnés ci-dessous.

Opérateurs unaires Verilog: Ces types d'opérateurs Verilog viennent en premier des opérandes.

Par exemple: x = ~ y; Ici '~' est un opérateur unaire

Opérateurs binaires Verilog: Ces types d'opérateurs Verilog se situent entre deux opérandes.

Par exemple: x = y || z; Ici '||' est un opérateur binaire.

Opérateurs ternaires Verilog: TCes types d'opérateurs Verilog utilisent deux opérateurs différents pour différencier trois opérateurs.

Par exemple: x = y? z: w; ici '?' et ':' sont des opérateurs ternaires.

Les opérateurs catégoriels de Verilog HDL sont: arithmétique, logique, relationnelle, bit à bit, décalage, concaténation et égalité. Différents types d'opérateurs Verilog et leurs symboles sont indiqués dans le tableau ci-dessous.

Type d'opérateurSymboleOpérationOpérandes nécessaires
Arithmétique*MultiplierDeux
Arithmétique/DivisionDeux
Arithmétique+AdditionDeux
Arithmétique-SoustractionDeux
Arithmétique%ModuleDeux
logique!négationUN
logique&&ETDeux
logique||ORDeux
RelationnelSupérieure àDeux
RelationnelMoins queDeux
Relationnel> =Plus grand ou égal àDeux
Relationnel<=Inférieur ou égal àDeux
L’égalité==Égale àDeux
L’égalité🇧🇷 🇧🇷Pas égal àDeux
L’égalité===Cas égalDeux
L’égalité! ==Cas différentDeux
Bitwise~NégationUN
Bitwise&ET au niveau du bitDeux
Bitwise|OU au niveau du bitDeux
Bitwise^XOR au niveau du bitDeux
Bitwise~^XNOR au niveau du bitDeux
Surface d'attaque&Réduction ETUN
Surface d'attaque~&Réduction NANDUN
Surface d'attaque|Réduction OUUN
Surface d'attaque~|Réduction NORUN
Surface d'attaque^Réduction XORUN
Surface d'attaque^~Réduction XNORUN
Shift>> Shift vers la droiteDeux
Shift<< Décalage à gaucheDeux
Enchaînement{}EnchaînementPeut être de n'importe quel nombre
réplication{{}}réplicationPeut être de n'importe quel nombre
Conditionnel? :ConditionnelTrois sièges d’
Opérateurs Verilog, Tableau du didacticiel Verilog - 3

Verilog Operators a également la priorité. Leur préséance est donnée dans le tableau ci-dessous.

OpérateurSymbolesPriorité
Multiplication unaire, division, module +, -,!, ~ *, /,%Le plus élevé
Addition, décalage de soustraction+, - <<, >> 
Égalité relationnelle<, <=,>,> = ==,! =, ===,! == 
Réduction logique&, ~ & ^, ^ ~ |, ~ | && || 
Conditionnel?:Le plus bas
Opérateur Verilog, tableau du didacticiel Verilog - 4

Spécifications du numéro Verilog

Les numéros Verilog sont de deux types, numéros dimensionnés et numéros non dimensionnés.

Numéros Verilog dimensionnés: La structure générale pour représenter les nombres dimensionnés dans Verilog HDL est donnée ci-dessous.

'

Par exemple - 8'b3456;

Il s'agit d'un nombre Verilog dimensionné qui décrit qu'il s'agit d'un nombre de 8 bits et de type binaire.

  • Taille: La taille est le nombre de chiffres du numéro principal. La taille est décrite à l'aide de valeurs décimales.
  • format_base : Le format de base suggère de quel type de nombre il s'agirait. Il existe plusieurs types - binaire (donné par - 'b'), décimal (donné par - 'd'), octal (donné par - 'o'), hexadécimal (donné par - 'h'). S'il n'y a pas de spécification pour base_format, il s'agit par défaut d'un nombre décimal.
  • Nombres: Le numéro principal que vous souhaitez entrer.

Numéros Verilog non dimensionnés: Ces nombres ne nécessitent aucune taille spécifiée.

La structure générale pour représenter les nombres non dimensionnés dans Verilog HDL est donnée ci-dessous.

'

Par exemple - «h3456;

Il s'agit d'un nombre Verilog non dimensionné qui décrit qu'il s'agit d'un nombre hexadécimal.

Nombres négatifs: Si vous souhaitez déclarer un nombre comme un nombre négatif, placez un symbole moins (-) avant le nombre.

Par exemple : - 345; c'est un nombre décimal négatif, non dimensionné.

Baies Verilog

Des tableaux d'entiers, de registres (reg), de vecteurs (de types de données reg ou net, plusieurs longueurs de bits) et de temps sont possibles dans Verilog HDL. La déclaration de base des tableaux est présentée ci-dessous avec un exemple.

matrice entière [0: 3];

Cela signifie un tableau de sept valeurs.

  • Verilog n'autorise aucun tableau pour les variables réelles.
  • Verilog HDL ne prend en charge aucune matrice multidimensionnelle.
  • Les éléments de tableau peuvent être récupérés en utilisant - [ ]

Pour d'autres sujets liés au didacticiel Verilog, Cliquez ici!

Pour le didacticiel Verilog étape par étape utilisant Xilinx, consultez notre prochain article!

Laisser un commentaire