Comment faire Modelsim générer les données immédiatement?

M

Machael

Guest
Salut, les gars!
J'utilise Modelsim d'exécuter une simulation calendrier SDF.Dans le banc d'essai, je fais plusieurs signaux importants à la sortie les valeurs dans un texte des fichiers en utilisant la fonction $ system fdisplay tâche.Donc je peux comparer le fichier de sortie avec un produit «idéal» de fichiers réalisés par simulation Matlab pour évaluer si la conception est correcte.Parce que la simulation est assez lent, je veux tout d'abord exécuter la simulation pour plusieurs microsecondes et le casser et de comparer les premiers résultats, si la sortie est devenu mauvais, je n'ai pas besoin de continuer et nous arrêterons pour trouver les bogues dans mon conception.Si la sortie est correcte, je peux reprendre la simulation pour la plus longue.

Maintenant je rencontre un problème: Modelsim ne pas écrire le résultat du signal immédiatement, sinon, il conserve les données en mémoire.Jusqu'à ce que les données sont "assez" ou la simulation est arrêtée, le simulateur ne la jeter dans les fichiers texte.J'ai donc trouvé je ne peux pas prévisualiser les rusult simulation comme je souhaite, c'est me dérange pas vraiment.Quelqu'un peut-il me dire comment se débarrasser »les données à fdisplay" immédiatement ou chaque fois que je le désire?C'est peut-être besoin d'une commande ou un code spécial dans le banc d'essai?Je serai très reconnaissant!

 
Je ne vois pas cette commande dans ModelSim Verilog's Commad manuel de référence, mais ça marche!

Selon IEEE Std 1364-2001:

17.2.6 sortie Flushing
fflush $ (MCD);
fflush (fd);
fflush $ ();
Écrit aucune sortie tamponnée au fichier (s) spécifiée par MCD, le fichier spécifié par FD ou si $ fflush est invoqué sans arguments, écrit aucune sortie tamponnée à tous les fichiers ouverts.

 
echo47, Je vous remercie beaucoup pour votre méthode une grande détermination!

En fait, j'ai pensé à une autre méthode pour résoudre ce problème hier.C'est que chaque fois que les données ont été écrit dans le fichier par $ fdisplay, le fichier est proche par $ fclose, et quand la prochaine fois il devrait être à nouveau écrit, le fichier est ouvert par la fonction fopen $ avec option append, par exemple

$ file = fopen ( "test.txt", "a");

Ainsi, le fichier sera wroten chaque fois, et fermé, lorsque le fichier est fermé, les données sont envoyées sur elle.
Cette méthode a un autre problème: pour éviter le fichier deviennent plus gros et plus grand avec la simulation répétés.Il devrait être ouvert par un "w" option dans le processus initial de la simulation et fermé immédiatement, alors il sera effacé.

Bien sûr, ma méthode est plus triviale et votre méthode est plus efficace.Alors je veux vous dire merci encore!

Observe!

 

Welcome to EDABoard.com

Sponsor

Back
Top