2013-05-17 4 views
0

Après la synthèse d'un code de processeur en utilisant l'outil Synopsis DCInitialiser mémoire VHDL netlist

Maintenant, je veux initialiser 2 béliers inclus dans 2 composants dans cette conception l'utilisation des fichiers .mem

comment puis-je procéder en utilisant l' fichier netlist J'ai - la sortie de la synthèse - parce que je veux tester si la synthèse a été faite correctement en testant le même code sur le processeur

Il était plus facile sans avant de synthétiser juste en chargeant des fichiers .mem dans ces RAM puis de tester

Toute aide

Répondre

2

Ne vous embêtez pas à charger des fichiers .mem; il suffit d'initialiser les souvenirs directement en VHDL.

La méthode la plus simple - s'il s'agit de ROM - est de les déclarer en tant que tableaux constants. Si cette déclaration est dans un paquet séparé, vous pouvez facilement écrire sa création à partir d'un fichier hexadécimal créé par un compilateur ou un assembleur.

Voici un exemple pour vous aider à démarrer

package Memories is 

type Address is natural range 0 to 2**8 - 1; 
type Byte is std_logic_vector(7 downto 0); 

type Memory is array(Address) of Byte; 

-- Positional association is convenient if you are filling the whole memory 
-- constant ROM1 : Memory := (X"00", X"11", X"22", and so on); 
-- I'm not going to type out the lot! 

-- Named association is better for a simple test program 
constant ROM2 : memory := (
    0  => X"C3", 
    1  => X"38", 
    2  => X"00", 
    16#38# => X"C3", 
    16#39# => X"00", 
    16#3A# => X"00", 
    others => X"FF" 
); 

end Memories; 

Si elles sont RAMs, vous pouvez appeler les initialiser à partir de la même matrice constante.

use Memories.all; 
constant ROM : Memory := ROM2; 
signal RAM : Memory := ROM2; 

Ces constructions sont gérées correctement par même des outils de synthèse les plus primitifs que je l'ai utilisé au cours des cinq dernières années au moins, donc je serais très surpris si DC ne peut pas faire la même chose.

Cette donnée initiale doit être conservée par l'outil de synthèse et figurer sous une forme quelconque dans la netlist. Si vous pouvez comprendre ce formulaire, vous pouvez modifier les données si nécessaire, mais il est probablement plus facile de mettre à jour la source et re-synthétiser.