
qinhailiang
Members-
Content Count
61 -
Joined
-
Last visited
About qinhailiang
-
Rank
Advanced Member
Recent Profile Visitors
530 profile views
-
Hi, all When i read the uvm source code, I had a puzzle as follow: Why are the twelve runtime phases added into m_uvm_schedule phase instead of being added directly m_uvm_domain domain in file uvm_domain.svh? static function void add_uvm_phases(uvm_phase schedule); schedule.add(uvm_pre_reset_phase::get()); schedule.add(uvm_reset_phase::get()); schedule.add(uvm_post_reset_phase::get()); schedule.add(uvm_pre_configure_phase::get()); schedule.add(uvm_configure_phase::get()); schedule.add(uvm_post_configure_phase::get()); schedule.add(uvm_pre_ma
-
wszhong631 reacted to a post in a topic: what is the intend of uvm_wait_for_nba_region?
-
UVM 1.2 Introduction and Code Examples
qinhailiang replied to getvictor's topic in UVM Commercial Announcements
getvictor, Thanks for your reply. BR QIN -
UVM 1.2 Introduction and Code Examples
qinhailiang replied to getvictor's topic in UVM Commercial Announcements
Would you like to us when we get it? -
What's the matter with $cast()?
qinhailiang replied to qinhailiang's topic in UVM (Pre-IEEE) Methodology and BCL Forum
Hi, all Thanks for your valuable informaiton. It is very useful to understand the cast operation. Thank you again. BR QIN -
What's the matter with $cast()?
qinhailiang replied to qinhailiang's topic in UVM (Pre-IEEE) Methodology and BCL Forum
Hi, Zhuang Thank you for your value information. I also want to know what the assignment of P1 with P2 does? BR -
What's the matter with $cast()?
qinhailiang replied to qinhailiang's topic in UVM (Pre-IEEE) Methodology and BCL Forum
Hi, Zhuang I modified the source code as you said as follow: class BasePacket; int A = 1; int C = 2; function void printA; $display("BasePacket::A is %d", A); endfunction : printA virtual function void printC; $display("BasePacket::C is %d", C); endfunction : printC endclass : BasePacket class My_Packet extends BasePacket; int A = 3; int C = 4; function void printA; $display("My_Packet::A is %d", A); endfunction: printA virtual function void printC; $display("My_Packet::C is %d", C); endfunction : printC endclass : My_Packet BaseP -
Hi, all //Case One class BasePacket; int A; endclass : BasePacket class My_Packet extends BasePacket; int C; endclass : My_Packet class BaseTest; BasePacket PB[string]; virtual function void Create_PKT(string s); PB = new(); endfunction : Create_PKT virtual function void Configure_PKT(string s); PB.A = 1; endfunction : Configure_PKT virtual function void printP(string s); $display("BaseTest::PB[%s].A is %d", s, PB.A); endfunction : printP endclass : BaseTest class My_Test extends BaseTest; virtual function void Create_PKT(string s); My_Packet MP =
-
Hi, all I has an example as follow: class BasePacket; int A = 1; int C = 2; function void printA; $display("BasePacket::A is %d", A); endfunction : printA virtual function void printC; $display("BasePacket::C is %d", C); endfunction : printC endclass : BasePacket class My_Packet extends BasePacket; int A = 3; int C = 4; function void printA; $display("My_Packet::A is %d", A); endfunction: printA virtual function void printC; $display("My_Packet::C is %d", C); endfunction : printC endclass : My_Packet BasePacket P1 = new; M
-
Hi, all There is a piece of code in the function m_add_tw_cbs of the uvm_typed_callbacks#(type T=uvm_object) of the file uvm_callback.sv as follow: if(m_t_inst.m_pool.first(obj)) begin do begin if($cast(me,obj)) begin q = m_t_inst.m_pool.get(obj); if(q==null) begin q=new; m_t_inst.m_pool.add(obj,q); end if(m_cb_find(q,cb) == -1) begin if(ordering == UVM_APPEND) q.push_back(cb); else q.push_front(cb); end end end while(m_t
-
Hi, all We have one monitor and one driver as follow: class monitor extends uvm_monitor; `uvm_component_utils(monitor) function new(string name, uvm_component parent); super.new(name, parent); endfunction virtual task post_shutdown_phase(uvm_phase phase); #50ns; `uvm_info(get_type_name(), "Monitor is printing at post_shutdown_phase executing...", UVM_LOW ) endtask: post_shutdown_phase virtual function void phase_ready_to_end(uvm_phase phase); if(phase.get_name == "post_shutdown") `uvm_info(get_type_name(), "Monitor is printing
-
a question about the compiling order
qinhailiang replied to qinhailiang's topic in UVM (Pre-IEEE) Methodology and BCL Forum
Thanks Dave_59 for your reply! BR QIN