Apprendre Verilog : Une brève série de didacticiels sur la conception électronique numérique FPGA et Verilog HDL (12 / 21 étapes)

Étape 12 : VM 3.0 : conception modulaire

S’il vous plaît payer une attention particulière à la conception modulaire. C’est peut-être le seul sujet plus grand en Verilog et est également peut-être sa caractéristique la plus puissante et utile.

Maintenant, vous devriez être capable de mettre en œuvre des fonctions logiques simples à l’aide d’opérateurs de base Verilog (|, &,...) et le faire exécuter sur votre carte FPGA. Si vous n’êtes pas tout à fait à ce stade, veuillez commencer par VM 2.0.

« VM 2.0 : mon premier Verilog Project », j’ai introduit le concept de « modules » et « modulaire » code ; maintenant, il y a quelques nuances de modules dont vous avez besoin de savoir pour être une utilisateur expérimenté "designer modulaire". Mais tout d’abord, nous devons en discuter « Ce qui est de conception modulaire? »

Si vous effectué l’exercice « hello_world », vous ont été introduits au mot-clé Verilog « module ». Chaque fichier source de Verilog contient uniquement une définition de module. Alors, comment pouvons-nous créer des projets complexes qui impliquent de nombreux modules plus petits ? Nous allons prendre l’exemple de la construction d’une minuterie contrôlée LED circuit. Qu’aurions-nous besoin de notre circuit pour faire une LED clignote toutes les secondes si un interrupteur est une logique un et nous n’avions qu’une horloge 50MHz ?

Briser ce que nous devons en trois catégories : entrées, sorties et les composants internes.

Entrées: sources de signaux physiques comme un oscillateur ("clock"), interrupteurs, boutons, ports de données, etc....

Sorties: sorties physiques qui seront pilotées par le circuit comme LEDs, ports de données, écrans, etc...

Composants internes: les composants qui prennent l’état des entrées pour générer une sortie désirée ; tous d'entre eux n’ont pas à être connectés aux ports de « haut niveau », mais finalement tout devrait « itinéraire ».

Relire ces classifications ; Il est vital que vous connaissez les différences ! Notez également les nouveaux mots de vocabulaire: « niveau supérieur » et « route ».

Pensez à ce que ces termes pourrait signifier... Je vais officiellement les définir dans une minute.

Assimiler ces trois types de composants à une équation algébrique, les entrées sont les variables indépendantes, les sorties sont les variables dépendantes et les composants internes représentent l’équation réelle. Se souvenant de cette analogie vous aidera à décider lorsque vous travaillez sur des projets, si un composant donné est un input, output ou composant interne.

Dans le cas du circuit de clignotement de LED, voici ce que nous avons à un très haut niveau :

Entrées: horloge 50 MHz, interrupteur

Sorties: LED

Internals: un de 50 MHz à 1 Hz horloge diviseur, une seule porte et (parce que LED viendrait seulement on si les deux l’horloge divisée et l’interrupteur sont logique un)

Comment voulez-vous, à un très haut niveau (ce qui signifie que surtout « black boxes » représentent des composants plutôt que porte les patrons), bloc diagramme de ce circuit ? Rappelons que vous pouvez faire un diviseur d’horloge en connectant un certain nombre de D-Flip Flops (DFFs) ensemble avec des onduleurs.

Voir le diagramme ci-joint pour la réponse.

Défi : En réalité, nous aurions un bouton physique qui remettrait à zéro tous les DFFs dans le diviseur d’horloge. Peux-tu dessiner l’origine et la destination d’un bouton appelé « RST » sur ce schéma ?

Diagrammes de blocs comme celui-ci sont la première étape pour aider à que vous trouver une façon d’écrire un programme Verilog, comme toutes les cases dans le diagramme finira comme une instance d’un module dans votre code. Notez que nous avons un gros bloc qui contient un certain nombre de blocs plus petits ; Nous appelons cela le module « top ». Le module « top », c’est ce qui prend soin de relier tous les composants internes du circuit pour les sorties et les entrées physiques.

À l’intérieur de ce module particulier haut de la page sont deux choses : un diviseur d’horloge et d’une porte et. Mais remarquez que le bloc de diviseur d’horloge contient également un certain nombre de blocs plus petits (DFFs). Nous ne pas avoir à créer tous ces DFFs dans notre module supérieur ; Nous pouvons créer un module de diviseur d’horloge séparée qui contient tous les DFFs et créer une instance de ce diviseur d’horloge dans notre module supérieur.

Comme vous pourriez avoir deviné, nous devons également mettre un module forces de facto que nous pourrons instancier plusieurs fois dans le diviseur d’horloge. Cela nous permet seulement définissent le comportement d’un D-Flip Flop autrefois, puis instancier plusieurs instances de cette forces de facto. Tout ce que nous devons faire dans notre Verilog code est connecter à chaque instance de facto aux ports appropriés (c.-à-d. connecter ses entrées et sorties), mais plus sur l’instanciation de module plus tard.

Remarque : N’essayez pas de code de ce projet de LED clignotant tout de suite ; Il y a un peu plus de choses que nous devons couvrir.

Le point de ce module est de vous exposer à une conception modulaire ; vous voyez pourquoi j’appelle ces tutoriels « modules » ? Cette idée devrait être ancrée dans votre esprit que vous continuez d’apprentissage et à l’aide de Verilog.

Articles Liés

Une astuce simple pour ajouter un thermomètre à votre multimètre numérique

Une astuce simple pour ajouter un thermomètre à votre multimètre numérique

vous pouvez obtenir un multimètre numérique pour enlever la saleté bon marché ces jours-ci. Aujourd'hui, je vais parler de l'ajout d'une fonction de thermomètre à ces multimètres peu coûteuses en utilisant le minimum de composants externes et sans af
Conception de la logique séquentielle pour une horloge numérique d’apprentissage

Conception de la logique séquentielle pour une horloge numérique d’apprentissage

Cette instructable est pour deux raisons 1) à comprendre et apprendre que les fondements de la logique séquentielle 2) utilisent ces connaissances pour créer une horloge numérique.Pendules à lecture digitale ont été construits par des amateurs d'élec
8 bits série numérique-convertisseur analogique (gamme 5v) pour les microcontrôleurs (quand TTL et des résistances est tout vous avez)

8 bits série numérique-convertisseur analogique (gamme 5v) pour les microcontrôleurs (quand TTL et des résistances est tout vous avez)

donc j'avais besoin d'un DAC (convertisseur numérique-analogique) à utiliser avec mon pic12F675, et pour ceux d'entre vous qui n'avez jamais entendu parler de ce petit copain, c'est un microcontrôleur 8 broches de Microchip qui a seulement 6 broches
Comment faire pour prendre des clichés numériques limpides à travers une lentille microscope...

Comment faire pour prendre des clichés numériques limpides à travers une lentille microscope...

Mal à avoir trouver une façon de partager vos trouvailles incroyables à travers un microscope ? Tout le monde a vue différente, donc ce que vous voyez peut être totalement différent de ce que l'ami à côté de vous verriez. Pourquoi ne pas prendre une
Une tourelle de changement rapide de AXA taille de montage sur le tour de commande numérique par ordinateur de C6 Syil

Une tourelle de changement rapide de AXA taille de montage sur le tour de commande numérique par ordinateur de C6 Syil

il y a environ 1 an, j'ai acheté un tour CNC C6 Syil utilisé. Après la construction un banc en acier robuste sur lequel monter le tour, j'ai mis sur la configuration d'elle et de se familiariser avec elle.La C6 vient des actions avec un poste d'outil
Comment adapter une visionneuse de porte « objectif Fish-Eye » sur un appareil photo de grande taille

Comment adapter une visionneuse de porte « objectif Fish-Eye » sur un appareil photo de grande taille

nous avons vu des tutoriels sur ce site qui vous montrent comment une visionneuse de porte peu coûteux peut être utilisée comme un objectif Fish-Eye sur un point simple et shoot appareil photo numérique, mais que se passe-t-il si vous voulez essayer
Impressionnez vos amis, apprendre à conduire à une transmission manuelle

Impressionnez vos amis, apprendre à conduire à une transmission manuelle

tout d'abord quand j'apprenais à conduire mes parents ne me laisserait pas faire à moins que je conduisais une transmission manuelle, ou un levier de vitesse véhicule. Bien qu'il peut être frustrant à tout d'abord il peut très facilement devenir une
Projets d’Arduino sur une maquette (aucune série com)

Projets d’Arduino sur une maquette (aucune série com)

Intro :Si vous avez un Arduino Uno et que vous souhaitez démarrer la duplication des projets sans avoir à acheter un Uno chaque fois... Préparez-vous à vivre !  Cette instructable vous montrera comment déplacer vos projets (qui ne nécessitent pas de
Cours de peinture numérique 2: Une plume

Cours de peinture numérique 2: Une plume

ordinateurs ont apporté des changements aux quatre coins de la société moderne. Un de ces angles est art. L'internet regorge de concept art, fonds d'écran et beaucoup d'autres types d'image qui ont été dessinées par certains utilisateurs à un ordinat
Série de Mechanica céleste : conception de boîte de vitesses et de la construction

Série de Mechanica céleste : conception de boîte de vitesses et de la construction

Mechanica céleste est une sculpture en acier cinétique haute 16 pieds de notre système solaire qui représente la danse majestueuse des corps célestes. Il a été créé par une équipe dirigée par Jessika Welz pour Burning Man 2014.(Page facebook du proje
Cours de peinture numérique 1: Les bases d’utiliser une tablette graphique

Cours de peinture numérique 1: Les bases d’utiliser une tablette graphique

ordinateurs ont apporté des changements aux quatre coins de la société moderne. Un de ces angles est art. L'internet regorge de concept art, fonds d'écran et beaucoup d'autres types d'image qui ont été dessinées par certains utilisateurs à un ordinat
Numérisation 3D, rendu 3D des sculptures d’argile en inox par l’intermédiaire de rendus numériques pour une proposition d’art

Numérisation 3D, rendu 3D des sculptures d’argile en inox par l’intermédiaire de rendus numériques pour une proposition d’art

Je suis un artiste possédant une formation en peinture traditionnelle et de la sculpture, après avoir terminé l'école des Arts visuels avec un BFA en peinture.Après avoir travaillé dans un studio de Jeff Koons pour plus de deux ans, je me suis intére
Linkit une utilisation Mobile WIFI hotspot contrôler toutes les broches numériques

Linkit une utilisation Mobile WIFI hotspot contrôler toutes les broches numériques

Son très amusant à contrôler quoi que ce soit avec la radio. Avec linkit Mediatek un son font très facile de contrôler tous les accessoires électriques et électroniques à l'aide de WIFI. Avec le WIFI seul point chaud dans votre téléphone portable en
Testeur de logique numérique de la série 74LS

Testeur de logique numérique de la série 74LS

* Update * présenté sur www.freetronics.com (http://www.freetronics.com/blogs/news/11619617-build-a-74ls-series-digital-logic-tester-with-arduino#.UtgAf9JDumE)!Par la suite instructable, je démontrerai comment concevoir un circuit et écrire un progra