Global définit en VHDL

P

pastro

Guest
Salut à tous, Je travaille sur le firmware VHDL pour un projet impliquant un groupe de FPGA. La plupart des FPGA ont firmware similaires, avec des choses que comme leur ID évolution de FPGA pour FPGA. Je veux créer un fichier VHDL avec les données de configuration, où toutes les constantes spécifiques au FPGA sont répertoriés, puis avoir une sorte de "include" pour faire référence à des constantes dans tous les modules VHDL. Quelle est la bonne façon de faire cela? Merci!
 
Vous pouvez placer toutes les constantes respectives dans un paquet par exemple "defs" et l'importer dans toutes les entités de conception qui s'y réfèrent.
Code:
 DEFS paquet est CONSTANT MAJOR_VERSION: INTEGER: = 0; minor_version CONSTANT: INTEGER: = 16; - DEFS paquet fin; Dans la conception des fichiers de travail de la bibliothèque; work.defs.all UTILISATION;
Le nom réel du le fichier defs peut varier, vous pouvez également mettre en place une hiérarchie de général définit et cible des définitions spécifiques.
 
Notez que cela nécessite un re-compile/synth/PAR pour chaque puce menant à un train de bits par puce unique. Si les dispositifs sont en fait identiques, sauf pour quelques paramètres, une solution pourrait être de permettre à ces paramètres à * chargé après la configuration et la puissance-on-reset, mais avant que la puce ne pas de travail. * Chargé: certains CPU superviseur avec un interface d'écriture pour chaque puce. ou chaque puce a une logique à tirer de configuration à partir d'une eeprom config. ou une autre méthode.
 
Si les dispositifs sont en fait identiques, sauf pour quelques paramètres, une solution pourrait être de permettre à ces paramètres à * chargé après la configuration et la puissance-on-reset, mais avant que la puce ne pas de travail.
Runtime configuration est une alternative bien sûr, et à mon avis, il ne devrait pas être limitée au chargement des paramètres "avant la puce est-ce qu'un vrai travail». Mais, outre les frais généraux pour les registres de configuration, il peut s'agir d'un élément logique considérablement plus élevé et le routage condition de ressources. L'avantage le plus important, au-dessus du temps de compilation d'épargne est de simplifier l'inventaire variante du logiciel.
 
Il ya aussi un cas où le logiciel est développé indépendamment du firmware et il utilise la version registre pour vérifier la compatibilité ou de voir quelles fonctions sont disponibles.
 
Quelque chose avec faible surcharge pourrait être de stocker les paramètres pour toutes les puces possible dans le «groupe» dans le fichier binaire comme un tableau (s). Ensuite, utilisez un peu d'ailleurs utilisé broches E / S de manière statique de code pour «quelle puce / fonction / ID suis-je?" Ensuite, vos paramètres: = PARAM_ARRAY (to_unsigned (IdPins (5 downto 0));
 

Welcome to EDABoard.com

Sponsor

Back
Top