Ubuntu20.04右键菜单缺失文本文件选项?3步快速修复指南

核心内容摘要

NASA锂电池数据处理的Matlab实战:从原始数据到容量增量分析
内存爆炸?系统卡成 PPT?这 6 款一键优化神器,让老电脑再战 3 年!

Xinference-v1.17.1网络安全应用:恶意代码智能检测

仿真文件仿真文件可以分为3类在不同路径下分别是VIP通用文件、AXI VIP文件和example文件首先建议将example拷贝到VIPCAT的路径之外。

/usr/Cadence/vipcat/vipcat_11_30_106/tools/denali_64bit/ddvapi/sv /usr/Cadence/vipcat/vipcat_11_30_106/tools/denali_64bit/ddvapi/sv/uvm/cdn_axi /usr/Cadence/vipcat/vipcat_11_30_106/tools/denali_64bit/ddvapi/sv/uvm/cdn_axi/examples/legacy_examples/using_soma_interface/axi4验证环境tb主要是定义了时钟、复位系统包含1主、1从、1无效主、1无效从对4个子接口又包了1层总接口但实际接口均为example文件定义接口包含获取路径的方法。

string instance_path $sformatf(%m); function automatic string getPath(); return instance_path; endfunctiontop_testexample路径下的vip_example.f会指定测试用例也可以直接通过生成路径下csh脚本修改。

test首先会例化sve这是个example文件就是把env和sqrt包在了一起。

axi4UvmUserSve axiSve0;test在build phase对VIP进行了配置VIP以agent形式例化*后是4个agent的名字然后通过agent的inst成员进行配置。

uvm_config_db#(int)::set(this,*activeMaster.inst, waveformDebuggerMonEnable,

; uvm_config_db#(int)::set(this,*passiveMaster.inst, waveformDebuggerMonEnable,

; uvm_config_db#(int)::set(this,*passiveSlave.inst, waveformDebuggerMonEnable,

; uvm_config_db#(int)::set(this,*activeSlave.inst, waveformDebuggerMonEnable,

;test还在build phase传递了sequence。

uvm_config_db#(uvm_object_wrapper)::set(this, axiSve

axiEnv

activeMaster.sequencer.run_phase, default_sequence,userSimpleSeq::type_id::get());env由于VIP是agentenvironment同样是example文件。

env首先例化了4个agent例化的agent是VIP agentcdnAxiUvmAgent的example定义的子类。

axi4UvmUserActiveMasterAgent activeMaster; axi4UvmUserActiveSlaveAgent activeSlave; axi4UvmUserPassiveAgent passiveSlave; axi4UvmUserPassiveAgent passiveMaster;env在build phase对VIP进行了配置通过cfg类实现。

activeMasterCfg.is_active UVM_ACTIVE; activeMasterCfg.PortType CDN_AXI_CFG_MASTER; uvm_config_object::set(this,activeSlave,cfg,activeSlaveCfg);agentexample文件定义了VIP agent的2级子类只做了传递接口1件事。

传递方法是tb传递虚接口子类agent通过虚接口的getPath()获取路径字符串然后通过配置agent的字符串变量实现驱动/检测接口的绑定。

uvm_config_db#(...)::get(this,,vif,vif); __internal_interface_Path string(vif.getPath());seqrsequencer为example文件包含了主/从agent的seqr。

cdnAxiUvmSequencer masterSeqr; cdnAxiUvmSequencer slaveSeqr;seq示例使用sequence为userSimpleSeq为example文件从前面可以看到发给了master agent的seqr。

seq内容是发送4次长burst传输和8次随机传输通过约束trans进行传输。

denaliCdn_axiTransaction trans; uvm_do_with(trans, { trans.Type inside {DENALI_CDN_AXI_TR_Read, DENALI_CDN_AXI_TR_Write}; trans.Length 16; }); get_response(trans);VIPagentCadence AXI VIP以agent的形式展现对于多主多从场景需要例化多个agent。

类名为cdnAxiUvmAgent包含常规的monitor、driver和sequencer题外话VIP竟然都是明码。

需要注意的是agent不包含虚接口是通过__internal__interfacePath字符串变量实现传递。

cdnAxiUvmMonitor monitor; cdnAxiUvmDriver driver; cdnAxiUvmSequencer sequencer; cdnAxiUvmInstance inst; cdnAxiUvmMemInstance regInst; cdnAxiUvmMemInstance memoryInst; string __internal__interfacePath; cdnAxiUvmConfig cfg;transVIP中传输类的类名为denaliCdn_axiTransaction。

首先包含协议信息例如AXI3/

AXI/ACE、AXI/AXI-Lite。

rand denaliCdn_axiSpecVersionT SpecVer ; rand denaliCdn_axiSpecSubtypeT SpecSubtype ; rand denaliCdn_axiSpecInterfaceT SpecInterface ;然后包含传输信息包括读/写、地址、数据、边带信号。

rand denaliCdn_axiDirectionT Direction ; rand reg [63:0] StartAddress ; rand reg [7:0] Data [] ; rand reg [7:0] Alen ; rand denaliCdn_axiTransferSizeT Size ; rand denaliCdn_axiBurstKindT Kind ; rand reg [4:0] Region ; rand reg [31:0] Auser [] ; rand reg [31:0] Buser [] ;同时包含一些接口信息和延时等控制信息。

// id max size rand reg [31:0] ArIdLength; // address max size rand reg [31:0] ArAddrLength; rand reg [31:0] UserData ; rand reg [31:0] BreadyDelay ;

兽人在线观看免费完整版-兽人在线观看免费完整版应用

百度百家号客服电话人工服务

123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123