Les partenaires publicitaires:

Comment faire pour créer une impulsion de retard dans verilog

Verilog, un langage de description de matériel utilisé pour générer des circuits numériques pour les puces programmables, peut être utilisé pour écrire le code qui décrit des circuits numériques, de simuler le comportement du circuit et le matériel du programme. Un bon exemple d'un circuit Verilog est simple: celui qui crée une impulsion après un court délai. Vous pouvez écrire un programme Verilog qui accomplit cela avec quelques lignes de code sans aucune expérience préalable de la programmation.

Choses que vous devez

  • Verilog environnement de développement intégré (IDE), comme Altera Quartus II

Instructions

  1. Ouvrez l'IDE Verilog et de créer un nouveau projet en cliquant "Fichier," puis en sélectionnant "New Project Wizard." Une fenêtre de création de projet apparaît. Sélectionnez un nom et un répertoire pour ce projet. Par exemple, vous pouvez nommer le projet "retard" et le placer dans le répertoire "C: Projets Verilog."

  2. Appuyez sur la "Suivant" bouton pour passer à travers le reste des pages, laissant tous les paramètres à leurs valeurs par défaut. Appuyez sur la "Finition" bouton pour créer le projet.

  3. Sélectionner "Fichier," puis "Nouveau," pour ouvrir une fenêtre de création du fichier. Sélectionner "Verilog HDL fichier" et appuyez sur la "OK" bouton pour ajouter un nouveau fichier Verilog au projet. Un fichier Verilog vide apparaît dans la fenêtre principale de l'éditeur de texte.

  4. Définir un nouveau "module" qui a le même nom que le projet. Ce module va abriter tout le code pour le programme d'impulsion de retard. Lorsque vous définissez un module, vous pouvez également définir certains paramètres tels que les entrées et sorties. Le module de retard a besoin de deux paramètres: un signal d'horloge et une sortie pour l'impulsion générée. Écrivez ce qui suit pour définir le module avec ces paramètres:

    Le délai du module (horloge, pouls);

  5. Définir deux signaux: un signal d'horloge d'entrée et un signal d'impulsion de sortie. Le signal d'horloge est utilisé pour compter une séquence courte avant d'envoyer un signal d'impulsion à travers la sortie. Cela vous permet de chronométrer un retard sur la base du nombre de transitions d'horloge qui se produisent. Ecrire les définitions de signaux suivants:

    entrée le sens des aiguilles
    impulsion de sortie;



  6. Définir un registre qui stocke le nombre actuel de transitions d'horloge qui se sont produits. Depuis ce registre est utilisé pour compter le nombre de transitions, un bon nom car il est "compter." Ecrire la suivante à définir et initialiser ce registre:

    reg comptage
    dépouillement initial begin = 0;

  7. Écrire la déclaration suivante pour effectuer une séquence d'actions à chaque tic-tac de l'horloge:

    toujours @ (posedge horloge)




  8. Incrémenter le "compter" inscrivez-vous par un avec chaque transition de l'horloge:

    compter lt; = count + 1;

  9. Testez pour voir si le "compter" registre est égal à 10 ou une autre valeur arbitraire. Voici comment vous pouvez prendre votre impulsion de retard. L'impulsion est émis seulement après un numéro de série de transitions d'horloge. Si la fréquence d'horloge est de 10 cycles par seconde, puis l'impulsion est générée après un délai d'une seconde. Vous pouvez tester la "compter" inscrivez-vous en utilisant un "si" déclaration, tel que ce qui suit:

    if (count == 10)

  10. Placez un seul bit sur le "pouls" signal de sortie en écrivant:

    pouls lt; = 1'b1;

  11. Mettre fin à la "si" déclaration avec la déclaration suivante:

    fin

  12. Fin du module avec la déclaration suivante:

    endmodule

  13. Compiler et tester votre circuit. Ce circuit génère une impulsion qui dure pendant une transition d'horloge unique. L'impulsion est généré uniquement après un délai prédéterminé, dans ce cas 10 transitions d'horloge. Vous pouvez modifier cette valeur au temps de la génération d'impulsions correspondant à vos critères.

» » » » Comment faire pour créer une impulsion de retard dans verilog