Outre tableau simple dans verilog

S

samviva72

Guest
C'est mon premier post et je suis sur le point de poser une question très très basique. Je n'ai jamais touché avant Verilog HDL ni les autres, mais je sais que C, C + + etc Puis quelqu'un s'il vous plaît me donner l'équivalent du code C suivant dans Verilog (si telle chose existe)? Je veux être en mesure de définir et de remplir le tableau dans un module verilog lui-même, et il est juste à des fins de simulation. Je serais très reconnaissant si quelqu'un peut me donner le code, alors je vais l'utiliser comme une base pour commencer à apprendre plus sur Verilog.
Code:
 void main (void) {int array_1 [] = {1, 2, 3, 4}; int array_2 [] = {5, 5, 5, 5}; int i; c_sum int = 0; for (i = 0; i
 
Code:
 »1ns calendrier / 1ps ////////////////////////////////////////// //////////////////////////////////////// / / Société: / / Ingénieur: / / / / Date de création: 20/04/2011 10:31:23 / / Design Nom: / / Nom du module: tableauZ / / Nom du projet: / / équipements cibles: / / versions d'outils: / / Description: / / / / Dépendances : / / / / Version: / / Révision 0,01 - Fichier Créé / / Commentaires supplémentaires: / / ///////////////////////////// ////////////////////////////////////////////////// / / / array module (clk, somme, remise à zéro); clk entrée, réinitialisation, entrée [7:0] din; reg sortie [07:00] somme; reg [7:0] memu1 [3:0], [reg 7:0] memu2 [3:0]; i entier, toujours @ (posedge clk) commencer si (réinitialisation == 1'b1) commencent memu1 [0]
 
Bien qu'il ne pose aucun problème à l'utiliser pour la simulation, je ne veux pas dire une boucle d'itération (similaire au code C) pour la conception, car elle empêcherait la synthèse de matériel raisonnable dans la plupart des cas. La chose la plus difficile lors de l'apprentissage HDL avec un fond programmeur de logiciels est de comprendre que les boucles d'itération ne décrivent pas des actions séquentielles dans le temps et doit être évitée dans de nombreuses situations.
 
Merci pour le Blooz exemple de code. Je viens de recevoir la main sur une copie de Palnitkar et je commence mon apprentissage dès maintenant. Deux autres requêtes rapides pour vous: - Qu'est-ce verilog compilateur / simulateur de suggérez-vous d'utiliser? Le livre est livré avec un Palnitkar sur le CD d'accompagnement. Est-ce bon? - Dans cet exemple de code que vous avez donné, le «si (i
 
Bien qu'il ne pose aucun problème à l'utiliser pour la simulation, je ne veux pas dire une boucle d'itération (similaire au code C) pour la conception, car elle empêcherait la synthèse de matériel raisonnable dans la plupart des cas. La chose la plus difficile lors de l'apprentissage HDL avec un fond programmeur de logiciels est de comprendre que les boucles d'itération ne décrivent pas des actions séquentielles dans le temps et doit être évitée dans de nombreuses situations.
Comme FVM souligné meilleur matériel serait synthétisé si le code est sans itération .. Le code ci-dessus dans le style C peuvent être modifiés pour le rendre apte à la synthèse dans un style de matériel. en une seule étape, vous pouvez écrire. = somme (((memu1 [0] * memu2 [0]) + (memu1 [1] * memu2 [1 ]))+(( memu1 [2] * memu2 [2]) + (memu1 [3] * memu2 [ 3 ]))); parce que la nature parallèle du matériel doit être pris en compte.

<span style="color: grey;"><span style="font-size: 10px">---------- Post ajoutés à 14:56 --- ------- Le post précédent a été, à 14:31 ----------</span></span>
Merci pour le Blooz exemple de code. Je viens de recevoir la main sur une copie de Palnitkar et je commence mon apprentissage dès maintenant. Deux autres requêtes rapides pour vous: - Qu'est-ce verilog compilateur / simulateur de suggérez-vous d'utiliser? Le livre est livré avec un Palnitkar sur le CD d'accompagnement. Est-ce bon? - Dans cet exemple de code que vous avez donné, le «si (i
 
Comme FVM souligné meilleur matériel serait synthétisé si le code est sans itération .. Le code ci-dessus dans le style C peuvent être modifiés pour le rendre apte à la synthèse dans un style de matériel. en une seule étape, vous pouvez écrire. = somme (((memu1 [0] * memu2 [0]) + (memu1 [1] * memu2 [1 ]))+(( memu1 [2] * memu2 [2]) + (memu1 [3] * memu2 [ 3 ]))); parce que la nature parallèle du matériel doit être pris en compte.
OK, je comprends la nature parallèle maintenant. Mais est-il une limite à ce "parallélisme"? - Si j'avais deux tableaux de valeurs de 2000 chacun. Est-ce que ce calcul dépend de la taille des éléments FPGA? - Supposons que je veuille faire un autre calcul sur la somme reg après la «somme des produits 'opération est terminée. Si les calculs intervenir en parallèle, comment puis-je connaître la valeur correcte de la somme va à la ligne suivante doit être multiplié par 50 dans le code suivant? Dois-je commencer un autre début-fin entre ces deux lignes?
Code:
 = somme (((memu1 [0] * memu2 [0]) + (memu1 [1] * memu2 [1 ]))+(( memu1 [2] * memu2 [2]) + (memu1 [3] * memu2 [3 another_val ]))); = 50 * somme;
Merci pour les liens simulateur Verilog. Vous êtes une star!
 
OK, je comprends la nature parallèle maintenant. Mais est-il une limite à ce "parallélisme"? - Si j'avais deux tableaux de valeurs de 2000 chacun. Est-ce que ce calcul dépend de la taille des éléments FPGA? - Supposons que je veuille faire un autre calcul sur la somme reg après la «somme des produits 'opération est terminée. Si les calculs intervenir en parallèle, comment puis-je connaître la valeur correcte de la somme va à la ligne suivante doit être multiplié par 50 dans le code suivant? Dois-je commencer un autre début-fin entre ces deux lignes?
Code:
 = somme (((memu1 [0] * memu2 [0]) + (memu1 [1] * memu2 [1 ]))+(( memu1 [2] * memu2 [2]) + (memu1 [3] * memu2 [3 another_val ]))); * somme = 50;.
1 Réponse à votre première question est-FPGA de ressources est un facteur que vous devez consider.Larger le nombre d'éléments plus de mémoire les ressources sont consommées. quelque chose de code 2.Dans vous aimez ce que, toujours @ (posedge de clk) commencent statement1; instruction2; Déclarations fin entre begin seront exécutées séquentiellement déclaration d'une déclaration de deux alors. il n'ya donc pas besoin d'une autre commencer à la fin.
 

Welcome to EDABoard.com

Sponsor

Back
Top