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

Tutoriel - Écriture de code combinatoire et séquentiel

Utilisation du processus VHDL ou de Verilog Always Blocks

Ce didacticiel montre comment écrire des blocs de VHDL ou de Verilog contenus dans un Process ou un Toujours bloquer respectivement. Les processus (en VHDL) et Always Blocks (en Verilog) sont fondamentaux et doivent être bien compris. Ils se comportent exactement de la même manière, donc les deux sont présentés ici pour vous, si vous apprenez une seule langue en ce moment, faites attention aux exemples axés sur cette langue particulière. Les processus ou Always Blocks sont utilisés dans deux scénarios principaux :

  1. Pour définir un bloc de combinaison logique
  2. Pour définir un bloc de séquentiel logique

Le premier scénario est ce que l'on voit couramment dans les manuels lors de l'introduction de processus ou de toujours bloquer à un nouvel étudiant. Il est présenté ici pour vous, afin de vous faire prendre conscience de son existence. Mais en réalité, un Process/Always Block utilisé pour définir un bloc de logique combinatoire est beaucoup moins souvent vu dans le code "du monde réel" qu'un Process/Always Block utilisé pour définir la logique séquentielle.

La première question que vous vous posez peut-être est quelle est la différence entre la logique combinatoire et la logique séquentielle ? La logique combinatoire (ou combinatoire) est une logique qui ne nécessite pas d'horloge pour fonctionner. L'exemple de la porte et précédemment est un exemple combinatoire. La logique séquentielle est une logique qui nécessite une horloge pour fonctionner. Le bloc de construction le plus fondamental de la logique séquentielle est le D Flip-Flop (illustré ci-dessous).

La bascule D !

Si vous ne savez pas comment fonctionne un D Flip-Flop, arrêtez de lire ceci immédiatement ! Vous devez comprendre comment les bascules sont utilisées dans les FPGA avant de continuer à lire. Tout est prêt ? Bien.

Processus combinatoire en VHDL :

process (input_1, input_2)
begin
    and_gate <= input_1 and input_2;
end process;

Toujours bloquer la combinaison dans Verilog :

always @ (input_1 or input_2)
  begin
    and_gate = input_1 & input_2;
  end

Dans le code VHDL et Verilog ci-dessus, input_1 et input_2 sont dans ce qu'on appelle une liste de sensibilité . La liste de sensibilité est une liste de tous les signaux qui entraîneront l'exécution de Process/Always Block. Dans l'exemple ci-dessus, une modification de l'entrée_1 ou de l'entrée_2 entraînera l'exécution du bloc Traiter/Toujours. Ce bloc process/always prend les deux entrées, effectue une opération "et" sur celles-ci et stocke le résultat dans le signal and_gate. C'est exactement la même fonctionnalité que ce code :

-- VHDL:
and_gate <= input_1 and input_2;
// Verilog:
assign and_gate = input_1 & input_2;

Les deux exemples de code ont le même objectif :affecter le signal and_gate. La différence est que l'un est dans une combinaison Process/Always Block et l'autre non. Par conséquent, étant donné que le même résultat peut être obtenu sans l'utilisation d'une combinaison Process/Always Block, je ne recommande pas au concepteur numérique débutant d'utiliser ces instructions de cette manière.

La deuxième façon d'utiliser un processus ou un bloc toujours (et l'exemple le plus intéressant) consiste à définir un bloc de logique séquentielle. Encore une fois, la logique séquentielle est une logique cadencée.


VHDL

  1. Tutoriel - Écriture de code combinatoire et séquentiel
  2. Avantages et inconvénients de l'infrastructure en tant que code
  3. Introduction aux fonctions logiques combinatoires
  4. Qu'est-ce que le codage :le travail, les langues et ses défis
  5. Utilisation de l'analyseur logique intégré (ILA) et de l'entrée/sortie virtuelle (VIO)
  6. Pile et tas Java :didacticiel sur l'allocation de mémoire Java
  7. Ladder Logic 102 :Le pour et le contre
  8. Procédures de rédaction :simples et efficaces en passant au numérique
  9. Les différences entre le code G et le code M