pour les aider à boucle en vhdl .....

R

ramz

Guest
bibliothèque de l'IEEE; ieee.std_logic_1164.all utilisation; IEEE.STD_LOGIC_ARITH.ALL utilisation; utilisation IEEE.STD_LOGIC_UNSIGNED.ALL; ---- Décommentez la déclaration suivante, si la bibliothèque de l'instanciation de toutes les primitives Xilinx ---- dans le présent code. - Bibliothèque UNISIM; - UNISIM.VComponents.all utilisation; control_path_new_ver entité est port (clk: en std_logic; RST: dans std_logic; outp: hors std_logic); control_path_new_ver fin; l'architecture comportementale des control_path_new_ver signal de comptage est: std_logic_vector (2 downto 0): = "000"; - signal de comptage: std_logic_vector (2 downto 0): = "000"; commencer le processus (TVD) commencer if (rising_edge (CLK)) alors - la variable i: std_logic_vector (2 downto 0) : = "000"; if (rst = '1 ') puis outp
 
pour la boucle en VHDL est terminé dans les temps zéro (pas de triangle). Cherchez un manuel VHDL si vous ne comprenez pas. Vous pouvez utiliser temp. variable 'i' comme ça, mais je ne comprends pas vraiment pourquoi voulez-vous faire? Il ya plusieurs façons beaucoup plus simples à décrire le circuit que vous voulez, il suffit de demander. D'abord me dire ce qu'est exactement le circuit devrait faire:)
 
en fait je veux savoir une pour les travaux en boucle ... quand j'ai écrit un banc d'essai .. résultats de simulation m'a montré que la dernière valeur incrémenté d'une boucle for .. en fait pour n'importe quelle boucle dire i = 0 à 5 .. combien de cycles d'horloge sont requied pour effectuer cette [size = 2] [color = # 999999] Ajouté après 2 minutes: [/color] [/size] Aussi je voudrais savoir .... quand boucle commence .. dire i = 0, je veux utiliser cette valeur pour la comparaison dans l'instruction if .. par exemple: if (i = 0) alors faire ceci ... elsif (i = 1) ce faire .. et ainsi de suite
 
Hehe. Mais bien sûr! pour la boucle est une instruction d'affectation séquentielle et il est achevé en TIME ZERO . Il n'y a pas de cycles d'horloge nécessaires pour compléter la boucle. Vous ne pouvez voir le résultat final. Pensez à cela comme un langage de programmation comme C la normale, avec une exception cette boucle se termine instantanément. Une autre chose, un processus dans le temps de simulation exécutés dans le delta (par défaut est 0 ns). pour la boucle dans exécutés en un rien de temps (même pas du delta qui peut être 0ns). Cherchez une définition d'un processus en VHDL et les états séquentiels
 
Utiliser un compteur, si vous avez l'intention une machine d'état cadencé.
Code:
 signal de compteur: unsigned (1 donwto 0); ... if (rst = '1 ') puis contre
 
J'ai ce trop demander. Je veux afficher un tableau 12345 et en boucle. Comment puis-je faire? Merci
 
Il ya un gros problème avec la boucle for est
Je ne vois pas de problème avec des boucles. Il ya un problème avec les programmeurs de HDL qui commencent à écrire du code sans avoir à apprendre la langue ou au moins consulter un manuel de temps en temps.
 
@ FVM: ok .. Je suis d'accord avec you.Is-il un moyen de faire une boucle for dans lequel les index de boucle incrémenter seulement pendant bords positif ou négatif de l'horloge cycle.I ne pouvait trouver aucune aide online.pls méthode.
 
[Citer] incrémenter seulement pendant bords positive ou négative [/quote] Si tu veux dire une augmentation pour chaque cycle d'horloge, clairement non. Ce n'est pas le but d'un schéma VHDL itération (Verilog est fondamentalement la même). Il spécifie une action, qui doit être réalisée pour chaque valeur de l'indice en parallèle. Si le bloc contenant la boucle est contrôlée par une condition de bord sensible, la boucle complète est exécutée à chaque cycle d'horloge. L'aspect séquentiel de l'itération des questions si elle utilise des variables, de sorte que le résultat de preceedings itérations doivent être considérés dans la suite. Sauf pour les effets spéciaux avec des variables, vous pouvez considérer une boucle for comme la variante du code séquentiel d'une déclaration générer. En général, je suggère un livre de texte VHDL ou VHDL un bon compilateur manuel, par exemple, le manuel Synopsis: ~ http://www.cse.unsw.edu.au/ cs3211/refs/vhdl1.pdf
 
Salut je suis un peu de mal avec les boucles ainsi. \ Je suis intéressé à obtenir des échantillons d'une forme d'onde arbitraire à partir d'un signal externe en utilisant un flop D simples flip. (C'est l'esprit que le signal de forme d'onde entrante est inconnue) Donc ce que je fais, c'est que j'ai besoin de goûter à la forme d'onde entrante pour une seule seconde et voir ce que c'est que la forme du signal entrant pendant cette période d'une seconde. J'ai l'horloge interne tourne à 50MHz sur la carte FPGA et je suis en utilisant cette horloge pour échantillonner les impulsions du signal entrant. Donc, chaque fois que l'horloge est haute, je simple échantillon du signal d'entrée à la sortie. Mais je veux avoir un certain contrôle sur le moment. Je veux dire que je veux faire cet échantillonnage pour une seule seconde. Après, j'ai échantillonné le signal entrant pendant une seconde, je vais répéter la même procédure pour la prochaine d'une seconde et ainsi de suite. J'ai un problème de codage qu'il en VHDL. Quelqu'un peut m'aider sur ce s'il vous plaît?
 

Welcome to EDABoard.com

Sponsor

Back
Top