Cadence AXI VIP(2)——示例环境解析
仿真文件仿真文件可以分为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, 1); uvm_config_db#(int)::set(this,*passiveMaster.inst, waveformDebuggerMonEnable, 1); uvm_config_db#(int)::set(this,*passiveSlave.inst, waveformDebuggerMonEnable, 1); uvm_config_db#(int)::set(this,*activeSlave.inst, waveformDebuggerMonEnable, 1);test还在build phase传递了sequence。uvm_config_db#(uvm_object_wrapper)::set(this, axiSve0.axiEnv0.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/4、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 ;

相关新闻

低显存福音:Qwen2.5-1.5B轻量级对话助手使用全攻略

低显存福音:Qwen2.5-1.5B轻量级对话助手使用全攻略

低显存福音:Qwen2.5-1.5B轻量级对话助手使用全攻略 1. 为什么你需要一个“能跑在旧显卡上的AI助手” 你是不是也遇到过这些情况: 想试试本地大模型,但刚下载完Qwen2.5-7B,显存就爆了,GPU温度直逼90℃;笔…

2026/7/4 14:13:44 阅读更多 →
无需Prompt技巧:InstructPix2Pix魔法修图师中文用户实操手册

无需Prompt技巧:InstructPix2Pix魔法修图师中文用户实操手册

无需Prompt技巧:InstructPix2Pix魔法修图师中文用户实操手册 1. 这不是滤镜,是会听指令的修图师 你有没有过这样的时刻: 想把一张旅行照里的阴天改成晴空万里,却卡在PS图层蒙版里反复调试; 想给朋友合影加一副复古圆…

2026/7/5 6:00:18 阅读更多 →
为什么Qwen3-4B-Instruct-2507加载失败?Chainlit调用避坑指南

为什么Qwen3-4B-Instruct-2507加载失败?Chainlit调用避坑指南

为什么Qwen3-4B-Instruct-2507加载失败?Chainlit调用避坑指南 你是不是也遇到过这样的情况:vLLM服务明明启动了,日志里显示模型加载完成,可一打开Chainlit前端提问,页面就卡在“思考中”,或者直接报错“Co…

2026/7/3 17:43:45 阅读更多 →

最新新闻

LTC6904与PIC24FV16KA304实现精密脉冲控制方案

LTC6904与PIC24FV16KA304实现精密脉冲控制方案

1. 项目背景与核心价值在嵌入式系统开发中,精确的时序控制往往是最具挑战性的环节之一。无论是工业自动化中的电机控制、医疗设备中的信号同步,还是科研实验中的精密测量,对脉冲信号的精度要求常常达到微秒甚至纳秒级。传统方案通常采用分立元…

2026/7/6 4:20:18 阅读更多 →
Python抖音机器人开发指南:从零构建智能互动系统

Python抖音机器人开发指南:从零构建智能互动系统

Python抖音机器人开发指南:从零构建智能互动系统 【免费下载链接】Douyin-Bot 😍 Python 抖音机器人,论如何在抖音上找到漂亮小姐姐? 项目地址: https://gitcode.com/gh_mirrors/do/Douyin-Bot 在当今短视频内容爆炸的时代…

2026/7/6 4:20:18 阅读更多 →
LSTM 多步预测实战:从单步滚动到 Seq2Seq 的 2 种方案详解

LSTM 多步预测实战:从单步滚动到 Seq2Seq 的 2 种方案详解

LSTM多步预测实战:从递归滚动到Seq2Seq的深度对比与优化1. 多步预测的核心挑战与解决方案全景当我们面对"用前30天数据预测后10天"这类多步预测任务时,传统单步预测方法会遇到三个本质性挑战:误差累积问题:递归预测中每…

2026/7/6 4:18:18 阅读更多 →
太原考公考编线下班口碑红黑榜:2026学员真实评价背后的选班避坑指南

太原考公考编线下班口碑红黑榜:2026学员真实评价背后的选班避坑指南

一边是动辄数万元的协议班,一边是朋友圈里满天飞的“上岸喜报”,在太原,选一家靠谱的考公考编线下班,正在变成一场信息战。我们花了三周时间,深度整理了太原及周边学员在社交平台、备考群、公开评价里的真实反馈&#…

2026/7/6 4:18:18 阅读更多 →
HTTP协议及其POST与GET操作差异  C#中如何使用POST、GET等

HTTP协议及其POST与GET操作差异 C#中如何使用POST、GET等

HTTP协议我想任何IT人士都耳熟能详了,大家都能说出个所以然来。但是如果我问你HTTP协议的请求方法有哪些?POST与GET的差异?GET或POST传送数据量的大小有限制吗?HTTP响应的状态有哪些?以及在C#中你如何使用?…

2026/7/6 4:16:17 阅读更多 →
【git教程】科研技能必备——git的使用

【git教程】科研技能必备——git的使用

【git教程】科研技能必备——git的使用 git的知识其实常用的就那几个,由于网上的教程有很多,笔者感觉能给各位读者做的也只有帮忙筛选了。 注:其实这些git的命令行操作在目前主流的IDE(如VScode,cursor)上已经集成好了…

2026/7/6 4:14:17 阅读更多 →

日新闻

H2 与 MySQL 单元测试兼容性:5 个关键 SQL 语句差异与规避方案

H2 与 MySQL 单元测试兼容性:5 个关键 SQL 语句差异与规避方案

H2与MySQL单元测试兼容性:5个关键SQL语句差异与规避方案1. 单元测试中的数据库兼容性挑战在Java开发领域,单元测试是保证代码质量的重要环节。当应用涉及数据库操作时,测试环境的搭建往往成为开发者的痛点。H2数据库因其轻量级、内存模式和快…

2026/7/6 0:01:17 阅读更多 →
Windows任务栏终极清理指南:用RBTray一键隐藏窗口到系统托盘

Windows任务栏终极清理指南:用RBTray一键隐藏窗口到系统托盘

Windows任务栏终极清理指南:用RBTray一键隐藏窗口到系统托盘 【免费下载链接】rbtray A fork of RBTray from http://sourceforge.net/p/rbtray/code/. 项目地址: https://gitcode.com/gh_mirrors/rb/rbtray 你是否厌倦了Windows任务栏上密密麻麻的图标&…

2026/7/6 0:01:17 阅读更多 →
Visual C++ 运行时库一键安装终极指南:告别DLL缺失烦恼

Visual C++ 运行时库一键安装终极指南:告别DLL缺失烦恼

Visual C 运行时库一键安装终极指南:告别DLL缺失烦恼 【免费下载链接】vcredist AIO Repack for latest Microsoft Visual C Redistributable Runtimes 项目地址: https://gitcode.com/gh_mirrors/vc/vcredist 你是否曾经遇到过这样的情况:下载了…

2026/7/6 0:05:19 阅读更多 →

周新闻

B站视频下载神器BiliTools:5分钟学会轻松保存任何B站内容

B站视频下载神器BiliTools:5分钟学会轻松保存任何B站内容

B站视频下载神器BiliTools:5分钟学会轻松保存任何B站内容 【免费下载链接】BiliTools A cross-platform bilibili toolbox. 跨平台哔哩哔哩工具箱,支持下载视频、番剧等等各类资源 项目地址: https://gitcode.com/GitHub_Trending/bilit/BiliTools …

2026/7/5 0:03:34 阅读更多 →
威胁模型全解析:从新手入门到实战应用,助你构建安全产品!

威胁模型全解析:从新手入门到实战应用,助你构建安全产品!

威胁模型的陌生现状在忙碌疲惫的一天里,参与了关于混合后量子密码学的讨论,应付端点攻击找茬的人,还参与留言板讨论后,发现“威胁模型”对多数人仍是陌生概念,且多被当作时髦用语。有趣的相关画作有一幅由 Embyr 创作的…

2026/7/5 0:03:34 阅读更多 →
渗透测试入门指南:从零基础到实战环境搭建

渗透测试入门指南:从零基础到实战环境搭建

1. 从“看热闹”到“入门”:我理解的渗透测试到底是什么?每次看到新闻里说某个大公司的数据被“黑”了,或者某个网站被攻击导致服务瘫痪,你是不是和我一样,心里会冒出两个念头:一是“这黑客真厉害”&#x…

2026/7/5 0:07:38 阅读更多 →

月新闻