11
votes

Gamme multidimensionnelle de signaux dans VHDL

J'ai un signal dans VHDL déclaré comme ceci: xxx

ceci temp_key est transmis via un pour boucle 31 fois et il est modifié. Je veux stocker tous les 31 différents temp_keys dans un tableau.

est-il possible d'utiliser des tableaux multidimensionnels dans VHDL pour stocker des signaux 80 bits?


0 commentaires

3 Réponses :


27
votes

Oui, vous devez d'abord déclarer un type:

signal MY_SIGNAL : YOUR_ARRAY_TYPE;
...
MY_SIGNAL(0) <= data;
...
MY_SIGNAL(1) <= data;


0 commentaires

0
votes

Comme le poste ci-dessus dit, vous pouvez créer n'importe quel type de données multi-dimensionnel. L'autre chose que vous devez faire attention est de savoir si ce code est synthétisable (c'est-à-dire ciblé aux FPGA ou aux ASIC, ou est-il purement pour la simulation). Vous pouvez itération de 0 à 31 à l'aide d'un compteur FSM / Compteur ou d'un bloc de génération, en fonction de la critique de votre synchronisation et de la quantité de zone que vous souhaitez utiliser. Une instance de tableau multidimensionnelle indiquée dans la poste ci-dessus est certainement synthétisable.


1 commentaires

Malheureusement, le post ci-dessus ne contient pas de type de matrice multidimensionnelle. "Un objet de tableau est caractérisé par le nombre d'indices (la dimensionnalité de la matrice); ...", IEEE STD 1076-2008 5.3.2 Types de réseau, 5.3.2.1. Le type de tableau indiqué n'a qu'un seul index. Le type d'élément se trouve être un type de tableau.



0
votes

dans VHDL Il existe deux options

Option 1 H2>
signal Y is array (range1, range2) of Type;


2 commentaires

Ainsi, lorsque vous utilisez l'option 2 et en passant ce signal à une fonction, comment pourrais-je obtenir la plage1 et la plage2?


Voulez-vous dire que ce sera un problème de stocker des signaux de 80 bits dans 31Keys différents? Comment est-ce lié à la question et à ma réponse? Il ne semble pas facile d'itérus de la matrice 2D arbitraire. C'est une bonne question réellement. Beaucoup mieux que de demander la syntaxe 2D-Array. C'est pourquoi vous me le demandez plutôt que sur Stackoverflow.