一、簡單的建立通訊埠並連線
1.1 uvm平台搭建時最先匯入pkg
首先搭建uvm平台一定要匯入pkg。
package axi_bus_pkg:
import uvm_pkg:: *;
'include 「uvm_macros.svh」
'include 自定義vip
endpackage
1.2 mst agent
axi_mst_agt中建立埠,
例化axi_analysis #(axi_bus_item #(axi_bus_data)) agt_out_by_burst;
構造agt_out_by_burst=new(「agt_out_by_burst」)
virtual function void write(axi_bus_item #(axi_bus_data) item);
agt_out_by_burst.write(item);
endfunction
1.3 refm
'uvm_analysis_imp_deal(axi_mst_1)
例化uvm_analysis_imp_axi_mst_1 #(axi_bus_item #(128),soc_sys_refm) axi_mst_1_in_port;
構造axi_mst_1_in_port=new(「axi_mst_1_in_port」,this);
virtual function void write_axi_mst_1 (axi_bus_item #(128) itm);
endfunction
1.4 env
例化soc_sys_refm soc_sys_rf;
例化axi_bus_pkg::axi_mst_agt #(128,32,11,0) mst_1;
例項化soc_sys_rf=soc_sys_refm::type_id::creat(「soc_sys_rf」,this);
例項化mst_1=axi_bus_pkg::axi_mst_agt #(128,32,11,0)::type_id::creat(「mst_1」,this);
connect_phase
mst_1.agt_out_by_burst.connect(soc_sys_rf.axi_mst_1_in_port);
二、簡單的建立通訊埠並連線
2.1. 同樣的匯入pkg
2.2 mon
例化uvm_analysis_port #(item) ap_in_mon_port_afifo;
構造ap_in_mon_port_afifo=new(「ap_in_mon_port_afifo」,this);
write函式寫入item
task
item itm
ap_in_mon_port_afifo.write(itm)
endtask
2.3 scb
定義巨集 port macro declare
'uvm_analysis_imp_deal(in_mon_port_afifo)
例化uvm_analysis_imp_in_mon_port_afifo #(item,scb)in_mon_port_afifo;
構造in_mon_port_afifo=new(「in_mon_port_afifo」,this);
extern virtual function void write_in_mon_port_afifo(input item itm);
endfunction
2.4 env
mo_input_agt.mo_mon.ap_in_mon_port_afifo.connect(mo_scb.in_mon_port_afifo);
談一談UVM中的p sequencer
我們先來看乙個簡單的例子 bird是乙個基類 class bird bit 3 0 src 0 bit 3 0 drc 1 virtual task exec task display in bird endtask endclass parr是乙個bird的擴充套件類 class parr ext...
QT中的 TCP 通訊 (一)
客戶端 widget.h ifndef widget h define widget h include include 4.5版本的 qt標頭檔案 arm 開發板使用的 qt版本 include include include include include include include inc...
在串列埠通訊開發中實現自動查詢串列埠埠的方法
開發工具 visual studio 2010 本機可用串列埠資訊如下 1 查詢登錄檔 查詢登錄檔的方法是比較常見的方法,通過檢視 hkey local machine hardware devicemap serialcomm 項來獲取串列埠資訊。該方法就是使用程式設計方法讀取登錄檔內資訊,相當於...