2017-09-18 3 views
0

J'ai essayé de définir des valeurs de file d'attente dans config db lors de la phase d'exécution du test et essayer d'obtenir cela en utilisant uvm_config_db en séquence, mais je n'y arrive pas (rien n'a été obtenu appel de uvm_config_db), seulement l'erreur ci-dessous apparaît, s'il vous plaît laissez-moi savoir si je vais mal et comment le corriger. Aussi, il semble y avoir une erreur typographique dans UVM_ERROR de BCL, au lieu de "[RNFNAME] Resrouce" il devrait être "[RNFNAME] Resource".définir et obtenir des valeurs de file d'attente en utilisant uvm_config_db

UVM_INFO ../tests/du_test_sanity.sv(116) @ 100000.0 ps: uvm_test_top [QUEUE_VAL] qu : '{3, 4, 2, 1, 7, 1, 1, -1, 0, 0} 
UVM_ERROR @ 100000.0 ps: reporter [RNFNAME] Resrouce named not found in name map; cannot change its search priority 

Dans l'essai run_phase en utilisant les éléments suivants

`uvm_info("QUEUE_VAL",$sformatf("qu : %p",qu), UVM_NONE); 
    foreach(qu[i]) 
    uvm_config_db #(bit [15:0])::set(uvm_root::get(),"*",qu[i],qu[i]); 

Dans le seqeunce je suis en train de lire les valeurs de la file d'attente à l'aide s'appeler l'intérieur du corps de la tâche();

foreach(qu[i]) 
    uvm_config_db #(bit [15:0])::get(uvm_root::get(), "*", qu[i], temp[i]) 
    foreach(temp[i])  
    `uvm_info("COMP", $sformatf("string1 : %0h", temp[i]), UVM_LOW); 

s'il vous plaît laissez-moi aussi savoir si une autre méthode possible de transmettre des valeurs de file d'attente de run_phase à la séquence

+0

Votre fonction de configuration config_db n'a pas de sens. Le troisième argument à définir est une chaîne, qui est le nom du champ. https://www.vmmcentral.com/uvm_vmm_ik/files3/base/uvm_config_db-svh.html#uvm_config_db.set – noobuntu

Répondre

0

3ème argument de la uvm_config_db est une chaîne.

La signature complète de la méthode de réglage est void uvm_config_db #(type T = int)::set(uvm_component cntxt , string inst_name , string field_name , T value);

  • T est le type de l'élément étant configuré - en général une interface virtuelle ou d'un objet de configuration.
  • cntxt et inst_name forment ensemble une portée qui est utilisée pour localiser la ressource dans la base de données. La portée est formée en ajoutant le nom de l'instance au nom hiérarchique complet du contexte, comme {cntxt.get_full_name(), ".", Nom_inst}.
  • field_name fournit le nom de la ressource
  • value est la chose qui va réellement être mise dans la base de données.

Voici un exemple.

interface abc a1(clk , reset); 
... 
uvm_config_db #(virtual abc)::set(null, "*", "my_vir_inf", a1);