当前位置: 首页 > wzjs >正文

网站做多大尺寸江苏搜索引擎优化公司

网站做多大尺寸,江苏搜索引擎优化公司,做网站技术服务费属于什么科目,哈尔滨市建设工程信息网官网寄存器模型的镜像值和期望值定义是什么?他们会保持一致吗? 摘要:在 UVM (Universal Verification Methodology) 寄存器模型中,镜像值 (mirrored value) 和期望值 (desired value) 是两个非常重要的概念,用于管理寄存器…

寄存器模型的镜像值和期望值定义是什么?他们会保持一致吗?

       摘要:在 UVM (Universal Verification Methodology) 寄存器模型中,镜像值 (mirrored value) 和期望值 (desired value) 是两个非常重要的概念,用于管理寄存器的状态和验证过程中的数据一致性。以下是它们的定义以及它们是否会保持一致的说明:

1. 镜像值 (Mirrored Value)

  • 定义:镜像值是寄存器模型中存储的、反映硬件寄存器当前状态的值。它是通过对硬件寄存器的读写操作(通过 read()write() 方法)来更新的。镜像值代表了寄存器模型对硬件寄存器的“当前认知”。
  • 作用:镜像值用于在验证过程中检查硬件寄存器的行为是否符合预期。例如,在读取寄存器时,可以将实际读取的值与镜像值进行比较,以验证硬件是否正确返回了之前写入的值。
  • 更新时机:每当通过 UVM 寄存器模型对硬件寄存器进行读或写操作时,镜像值会根据操作结果更新。例如:
    • 写入操作:镜像值会更新为写入的值(如果写入成功)。
    • 读取操作:镜像值会更新为从硬件读取的值。

2. 期望值 (Desired Value)

  • 定义:期望值是寄存器模型中存储的、用户希望硬件寄存器达到的值。它通常由测试用例或用户设置,表示希望寄存器的最终状态。
  • 作用:期望值用于与镜像值或实际硬件值进行比较,以验证硬件是否达到了预期的状态。期望值通常通过 set() 方法设置,而不会直接影响硬件。
  • 更新时机:期望值由用户显式设置,通常在测试用例中通过调用 set() 方法来定义期望的寄存器值。它不会因为读写硬件而自动更新。

3. 镜像值和期望值是否会保持一致?

  • 一般情况下不一致:镜像值和期望值通常是独立的,互不影响。镜像值反映的是硬件的当前状态,而期望值反映的是用户希望达到的状态。两者可能不同,例如:
    • 用户通过 set() 设置了一个期望值,但尚未通过 write() 将其写入硬件,此时镜像值保持不变。
    • 硬件可能由于某些原因(如错误或未实现的功能)没有达到期望值,此时镜像值(反映硬件实际状态)与期望值不一致。
  • 一致的情况:只有在用户通过 write() 将期望值写入硬件,并且硬件成功更新后,镜像值才会与期望值一致。此外,可以通过调用 mirror() 方法来读取硬件的值并更新镜像值,从而检查是否与期望值一致。
  • 同步机制:UVM 提供了 update() 方法,可以将期望值写入硬件(如果期望值与镜像值不同),从而尝试使镜像值与期望值一致。

4. 总结与使用场景

  • 镜像值:反映硬件的当前状态,自动更新于读写操作之后。
  • 期望值:反映用户的预期状态,由用户手动设置。
  • 一致性:两者不一定一致,只有在期望值被成功写入硬件并更新镜像值时才会一致。
  • 典型验证流程
    1. 使用 set() 设置期望值。
    2. 使用 update() 将期望值写入硬件(更新镜像值)。
    3. 使用 mirror() 读取硬件值并检查镜像值是否与期望值一致。

5. 代码示例

以下是一个简单的 UVM 寄存器模型使用示例,展示了镜像值和期望值的操作:

class MyReg extends uvm_reg;rand uvm_reg_field data;function new(string name = "MyReg");super.new(name, 32, UVM_NO_COVERAGE);endfunctionvirtual function void build();data = uvm_reg_field::type_id::create("data",, get_full_name());data.configure(this, 32, 0, "RW", 0, 32'h0, 1, 1, 1);endfunction
endclass// 在测试用例中
task run_phase(uvm_phase phase);MyReg reg_inst;uvm_status_e status;uvm_reg_data_t data_val;reg_inst = reg_block.my_reg; // 假设 reg_block 是寄存器块// 设置期望值reg_inst.data.set(32'hA5A5_A5A5);$display("Desired value: %0h", reg_inst.data.get());// 将期望值写入硬件reg_inst.update(status);$display("Mirrored value after update: %0h", reg_inst.data.get_mirrored());// 读取硬件值并检查reg_inst.mirror(status, UVM_CHECK);$display("Mirrored value after mirror: %0h", reg_inst.data.get_mirrored());
endtask

6. 注意事项

  • 如果硬件行为异常(例如写入失败),镜像值可能无法达到期望值,验证时可以通过 mirror() 方法检测不一致。
  • 镜像值和期望值的分离设计使得 UVM 寄存器模型非常灵活,适用于复杂的验证场景。

       希望这个解释能帮助你理解 UVM 寄存器模型中镜像值和期望值的概念以及它们之间的关系!如果有进一步的问题,欢迎继续提问。

http://www.dtcms.com/wzjs/290551.html

相关文章:

  • 做网站 用什么语言sem 优化软件
  • 网站独立空间是什么意思上海培训机构整顿
  • 定州网站建设域名查询ip网站
  • 大良建设网站郑州网络营销排名
  • 免费网站在线客服系统百度查重工具
  • 一整套vi设计野狼seo团队
  • 做cpa怎么建立自己网站云南网站推广公司
  • 大连项目备案网站网站权重怎么查
  • 株洲最新消息网站seo具体怎么做?
  • 洛阳自助建站免费做网站的平台
  • 企业申报网站厦门seo优化公司
  • 无锡网站seo报价群排名优化软件
  • 做调查的网站‘十大永久免费的软件下载
  • 北太平桥网站建设百度高级搜索页面
  • 湖南网站建设小公司企点客服
  • 公司做网站有什么好处打开百度网站
  • 广州外贸营销网站建设公司广告有限公司
  • 网站链接可以自己做吗老师直播课
  • 做营销型网站 公司拉新推广怎么快速拉人
  • 商城网站开发嵌入支付宝seo点击软件
  • 专业苏州网站建设做个公司网站大概多少钱
  • 南充网站建设费用杭州网站seo外包
  • 手机网站有免费做的吗短视频如何引流与推广
  • 莒南县建设局网站企业网站营销
  • 政府门户网站建设经验发言深圳优化公司找高粱seo服务
  • 企业做网站建设的好处seo职位描述
  • 网上做任务网站有哪些青岛网络科技公司排名
  • 在哪个网站做兼职靠谱微商已经被国家定为传销了
  • 福田商城网站制作软件外包平台
  • 手机wap网站制作推广普通话手抄报