news 2026/4/27 18:57:42

11-3 register integration

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
11-3 register integration

文章目录

  • 原始代码
  • 详细解读:Direct vs Layered UVM验证框架
    • 一、第一段代码(Direct框架)详细解读
      • 1. APB从设备模块(slave)
      • 2. 寄存器模型(dut_regmodel)
      • 3. 测试平台(tb_top)
      • 4. 测试环境(tb_env)关键代码
    • 二、第二段代码(Layered框架)详细解读
      • 1. APB从设备模块(slave)
      • 2. 寄存器模型(dut_regmodel)
      • 3. 测试平台(tb_top)
      • 4. 测试环境(tb_env)关键代码
    • 三、关键组件详解
      • 1. `uvm_sequencer#(uvm_reg_item) reg_seqr;`
      • 2. `reg2apb_seq_t reg2apb_seq;`
      • 3. `uvm_reg_sequence seq;`
      • 4. `regmodel.set_hdl_path_root(hdl_root);`
      • 5. `reg2apb_adapter reg2apb = new;`
      • 6. `regmodel.default_map.set_sequencer(xxx, reg2apb);`
    • 四、Direct vs Layered 的关键区别
      • 1. 事务处理方式
      • 2. 代码结构对比
      • 3. 为什么需要Layered框架?
    • 五、小白理解版
      • Direct框架(直接点餐)
      • Layered框架(分层点餐)
      • 为什么Layered更好?
    • 六、实际应用中的区别
    • 七、总结

原始代码

`timescale1ns/1nsmoduleslave(apb_if apb,input bit rst);reg[31:0]pr_data;assign apb.prdata=(apb.psel&&apb.penable&&!apb.pwrite)?pr_data:'z;reg[31:0]DATA;reg[63:0]SOCKET[256];reg[31:0]DMA[1024];always @(posedge apb.pclk)beginif(rst)begin DATA<='h00;foreach(SOCKET[i])begin SOCKET[i]<=64'h0000_0000;end pr_data<=32'h0;endelsebegin// Wait for a SETUP+READ or ENABLE+WRITE cycleif(apb.psel==1'b1&&apb.penable==apb.pwrite)begin pr_data<=32'h0;if(apb.pwrite)begincasex(apb.paddr)16'h0024:DATA<=apb.pwdata;16'h1XX0:SOCKET[apb.paddr[11:4]][63:32]<=apb.pwdata;16'h1XX4:SOCKET[apb.paddr[11:4]][31:0]<=apb.pwdata;16'h2XXX:DMA[apb.paddr[11:2]]<=apb.pwdata;endcase endelsebegincasex(apb.paddr)16'h0000:pr_data<={4'h0,10'h176,8'h5A,8'h03};16'h0024:pr_data<=DATA;16'h1XX0:pr_data<=SOCKET[apb.paddr[11:4]][63:32];16'h1XX4:pr_data<=SOCKET[apb.paddr[11:4]][31:0];16'h2XXX:pr_data<=DMA[apb.paddr[11:2]];endcase end end end end endmoduleclassdut_IDextends uvm_reg;uvm_reg_field REVISION_ID;uvm_reg_field CHIP_ID;uvm_reg_field PRODUCT_ID;functionnew(string name="dut_ID");super.new(name,32,UVM_NO_COVERAGE);endfunctionvirtualfunctionvoidbuild();this.REVISION_ID=uvm_reg_field::type_id::create("REVISION_ID");this.CHIP_ID=uvm_reg_field::type_id::create("CHIP_ID");this.PRODUCT_ID=uvm_reg_field::type_id::create("PRODUCT_ID");this.REVISION_ID.configure(this,8,0,"RO",0,8'h03,1,0,1);this.CHIP_ID.configure(this,8,8,"RO",0,8'h5A,1,0,1);this.PRODUCT_ID.configure(this,10,16,"RO",0,10'h176,1,0,1);endfunction `uvm_object_utils(dut_ID)endclassclassdut_DATAextends uvm_reg;uvm_reg_field value;functionnew(string name="dut_DATA");super.new(name,32,UVM_NO_COVERAGE);endfunctionvirtualfunctionvoidbuild();this.value=uvm_reg_field::type_id::create("value");this.value.configure(this,32,0,"RW",1,32'h0,1,0,1);endfunction `uvm_object_utils(dut_DATA)endclassclassdut_SOCKETextends uvm_reg;rand uvm_reg_field IP;rand uvm_reg_field PORT;functionnew(string name="dut_ADDR");super.new(name,64,UVM_NO_COVERAGE);endfunction:newvirtualfunctionvoidbuild();this.IP=uvm_reg_field::type_id::create("value");this.PORT=uvm_reg_field::type_id::create("value");this.IP.configure(this,48,0,"RW",0,48'h0,1,0,1);this.PORT.configure(this,16,48,"RW",0,16'h0,1,0,1);endfunction `uvm_object_utils(dut_SOCKET)endclassclassdut_RAMextends uvm_mem;functionnew(string name="dut_RAM");super.new(name,'h400,32,"RW",UVM_NO_COVERAGE);endfunction `uvm_object_utils(dut_RAM)endclassclassdut_regmodelextends uvm_reg_block;rand dut_ID ID;rand dut_DATA DATA;rand dut_SOCKET SOCKET[256];rand dut_RAM RAM;functionnew(string name="slave");super.new(name,UVM_NO_COVERAGE);endfunctionvirtualfunctionvoidbuild();// createID=dut_ID::type_id::create("ID");DATA=dut_DATA::type_id::create("DATA");foreach(SOCKET[i])SOCKET
版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/4/26 5:50:42

12款智能论文生成工具分析:数学建模论文快速复现与专业格式调整方法

还在为数学建模论文的复现与排版问题困扰&#xff1f;面对时间紧迫、任务繁重的挑战&#xff0c;AI工具或许能成为你的得力助手。本次评测将针对10款热门AI论文写作工具进行深度分析&#xff0c;帮助你快速找到最适合提升写作效率与排版质量的解决方案&#xff0c;让学术创作事…

作者头像 李华
网站建设 2026/4/25 4:06:06

9D VR体验馆设备多少钱的投资分析与运营策略探讨

9D VR体验馆设备投资成本详解与市场分析 在考虑9D VR体验馆设备的投资成本时&#xff0c;首先需要评估几个关键因素&#xff0c;包括设施建设、设备采购及日常运营等方面。通常&#xff0c;初期投资大约在10万至15万元之间&#xff0c;这包括了VR双人蛋椅、VR魔力互动设备和VR3…

作者头像 李华
网站建设 2026/4/25 8:08:25

基于51/STM32单片机智能水杯保温杯恒温温度控制防干烧水质设计(设计源文件+万字报告+讲解)(支持资料、图片参考_相关定制)_文章底部可以扫码

STM32-S264-水量监测保温常温温度灯光指示定时提醒定时开关加热防干烧参数可设OLED屏声光提醒(无线方式选择)STM32-S264N无无线-无APP板(硬件操作详细): STM32-S264B蓝牙无线-APP版: STM32-S264W-WIFI无线-APP版: STM32-S264CAN-视频监控WIFI无线-APP版: STM32-S264I-云平台-AP…

作者头像 李华
网站建设 2026/4/17 1:31:58

超算AI任务调度:架构师的动态资源分配策略

超算AI任务调度&#xff1a;架构师如何用动态资源分配破解“算力堵车”&#xff1f; 关键词 超算任务调度、动态资源分配、AI工作负载、算力优化、调度算法、资源虚拟化、实时监控 摘要 当AI大模型训练&#xff08;如GPT-4、AlphaFold&#xff09;撞上超算中心的“算力堵车”&a…

作者头像 李华
网站建设 2026/4/27 6:22:01

基于NASA C-MAPSS数据的剩余机械寿命RUL预测,Python代码(添加了非常详细中文注释),线性回归LR、支持向量回归SVR、随机森林回归RF、xgboost模型

1.运行效果&#xff1a;基于NASA C-MAPSS数据的剩余机械寿命RUL预测&#xff0c;Python代码&#xff08;添加了非常详细中文注释&#xff09;&#xff0c;线性回归LR、支持向量回归SVR、随机森林回归RF、xgb_哔哩哔哩_bilibili 2.环境库 如果库版本不一样&#xff0c; 一般也可…

作者头像 李华