您的位置 首页 编程

使用可移植性鼓励为软件驱动的验证铺平道路

简介设计正变得日益复杂,越来越多的设计包含了处理器,甚至经常包含多个处理器。由于处理器是设计的不可分割的一部分,因此我们必须验证在处理器上运行的软件与设计的其他部分之间的交互,这一点非常重要。软件对当

简介

规划正变得日益杂乱,越来越多的规划包含了处理器,乃至常常包含多个处理器。因为处理器是规划的不可分割的一部分,因此咱们有必要验证在处理器上运转的软件与规划的其他部分之间的交互,这一点十分重要。软件对当今体系的运作至关重要,因此在实验室中调通原型芯片之前,对硬件/软件鸿沟的验证和承认不容呈现任何推迟。至少,验证团队有必要完结这项使命,而且自行承当危险。信任咱们都听说过一些严重过错的场景,例如,团队在实验室中发现,处理器的总线与规划的衔接次序接反了,或许处理器在低功耗形式下再无法加电发动。

硬件/软件逐渐细化

一个清楚明了的解决方案就是在传统的验证流程中,环绕硬件/软件鸿沟进行更多验证。可是,咱们无法直接从以硬件为中心的验证,转变为测验运转整个应用程序仓库。测验运转很多的软件而导致的杂乱性及生成的很多调试日志,让追寻简略过错也会变得十分杂乱。一种高效的办法是在最简略的验证环境中进行一切可行的验证,该环境让咱们可以履行方针功用,而且具有最高的可见性,最大程度削减与测验目的不相关的作业。在本文中,咱们将评论涉及到寄存器拜访验证的简略示例。验证处理器是否可以正确写入和读取 IP 寄存器,是十分要害的集成验证使命。即便是简略的 SoC,也包含数以百计的寄存器,因此创立测验来验证处理器是否可以读取和写入一切寄存器将会是十分耗时的作业。图 1 显现了一个简略的 SoC,它搭载了闪存、DDR 存储器、紧耦合存储器以及  UART  和  DMA  引擎,引擎的寄存器经过低速外设总线来拜访。尽管最终方针是验证在处理器上运转的代码是否可以拜访  IP  寄存器,但咱们可以首要从根据  UVM  的验证开端,愈加会集验证某一部分。在首要验证UVM 中的存储器子体系后,咱们在嵌入式处理器上调通软件时将更有决心。运用 Mentor 的 Questa inFact 可移植性鼓励东西,可让咱们将同一测验目的重定向到UVM 和嵌入式软件环境,然后节约测验开发时刻。

QQ截图20200206091420.png

图 1 – 简略的 SoC

运用图表描绘寄存器

Questa  inFact  运用了根据图表的声明输入描绘,可提供束缚编程的功用,增强以迭代方法指定决议计划的才能。在指定拜访寄存器的束缚方面,以迭代方法进行决议计划的才能十分有协助。

首要,咱们要捕获存储器测验操作的中心特点:地址、拜访巨细、写入数据、写入掩码。写入掩码指定了在进行检查时应该读取/写入哪些位,而有必要疏忽哪些位。

Action 是指要在方针验证环境中履行的操作单位。鄙人文中,咱们将了解更改  body  action  的完成怎么让咱们轻松地将寄存器拜访测验目的重定向到UVM 和嵌入式软件环境。

图  2  显现的寄存器拜访描绘符不包含体系中的任何IP 详细信息。接下来,咱们需求增加这些约束。咱们的  DMA  引擎(来自  opencores.org  的  Wishbone  DMA Core)包含一系列的中心寄存器,还有一组通道描绘符寄存器。运用根据图表的描绘,咱们可以以迭代方法描绘寄存器地址。

图 3 中的图形描绘显现了挑选 DMA 寄存器地址的进程:

 挑选中心寄存器或通道操控寄存器阵列(dma_reg)

 假如挑选通道操控寄存器

——挑选哪个通道 (dma_ch)

——挑选哪个通道寄存器被作为方针(dma_ch_reg)

QQ截图20200206091945.png

图 2 – 中心寄存器拜访结构体

QQ截图20200206091955.png

图 3 – DMA 寄存器地址挑选

QQ截图20200206092010.png

图 4 – DMA 寄存器地址挑选规矩

图 4 显现了此进程的文字描绘

…未完待续…

点击免费下载完好白皮书>>

声明:本文内容来自网络转载或用户投稿,文章版权归原作者和原出处所有。文中观点,不代表本站立场。若有侵权请联系本站删除(kf@86ic.com)https://www.86ic.net/fangan/biancheng/125225.html

为您推荐

联系我们

联系我们

在线咨询: QQ交谈

邮箱: kf@86ic.com

关注微信
微信扫一扫关注我们

微信扫一扫关注我们

返回顶部