Denali question - vérifier le fonctionnement mem lecture, printInfo

T

tarkyss

Guest
Afin de vérifier opération de lecture MEM,
données préparées dans MEM avec la fonction de setData DenaliMemTransaction classe
Par exemple, trans est une instance de DenaliMemTransaction, data1 data2 et sont
addr = 16'h0
reg [07:00] data1.data2;
data1 = new (2);
data2 = new (2);
trans.setAddress (adr)
trans.setData (data1)
addr = 16'h2
trans.setAddress (adr)
trans.setData (data2)

les premières données peuvent être écrire mem correctement, mais le second ne peut pas, les secondes données peuvent être écrites à l'adresse inattendue, pourquoi
si écrire les données sur MEM, puis de les lire, il est OK, alors peut-être le DUT est à droite (bien sûr, il est possible de mal aussi)
si ce n'est pas le problème de DUT, y at-il d'autres raisons?

En outre, lorsque j'utilise la fonction printInfo de la classe
l'adresse, de données, le masque est droit comme prévu
adresse sont 16'h0, 16'h2
le droit datra sont trop
tandis que la largeur est de 0, est-il autorisé?

 
modèle Denali a sa propre fonction de précharger la mémoire!

 
ljxpjpjljx, savez-vous comment précontrainte MEM pour le modèle Denali?Merci

 
de Denali PLI utilisation, de statistiques détaillées, vous pouvez l'utilisateur guide.pdf MMAV de référence.

 
Pour le système Verilog vous devez utiliser le système de Denali verilog interface pas le Denali PLI.Vous devez définir la lecture / écriture tâche / fonction, quelque chose de semblable, comme illustré ci-dessous.

Contact denaliMemInstance;
denaliMemTransaction trans;
l'état entier;

Contact = new ("testbench.memInst"); / / chemin complet de la mémoire par exemple Denali

WriteData fonction void (reg [addr] 63:0);
reg [07:00] [données];
trans = new;
trans.setAddress (addr);
data = [nouveau 4];
data [0] = 'h0;
des données [1] = 'h0;
des données [2] = 'b0;
des données [3] = 'hff;
trans.setData (données);
affichage $ ("# # écrire: x% ->% x", trans.getAddress (), données);
status = inst.write (trans);
endfunction

ReadData fonction void (reg [addr] 63:0);
reg [07:00] [données];
trans = new;
trans.setAddress (addr);
affichage $ ("# # LIRE:% x", trans.getAddress ());
status = inst.read (trans);
trans.getData (données);
affichage $ ("# # lecture w / DATA: x% ->% x", trans.getAddress (), données);
endfunction

 
Salut,
Denali soma fichier prend un fichier d'initialisation qui a quelque chose de format comme ça ...

Citation:

start_address: 0xff end_address;
 

Welcome to EDABoard.com

Sponsor

Back
Top