简介
规划正变得日益杂乱,越来越多的规划包含了处理器,乃至常常包含多个处理器。因为处理器是规划的不可分割的一部分,因此咱们有必要验证在处理器上运转的软件与规划的其他部分之间的交互,这一点十分重要。软件对当今体系的运作至关重要,因此在实验室中调通原型芯片之前,对硬件/软件鸿沟的验证和承认不容呈现任何推迟。至少,验证团队有必要完结这项使命,而且自行承当危险。信任咱们都听说过一些严重过错的场景,例如,团队在实验室中发现,处理器的总线与规划的衔接次序接反了,或许处理器在低功耗形式下再无法加电发动。
硬件/软件逐渐细化
一个清楚明了的解决方案就是在传统的验证流程中,环绕硬件/软件鸿沟进行更多验证。可是,咱们无法直接从以硬件为中心的验证,转变为测验运转整个应用程序仓库。测验运转很多的软件而导致的杂乱性及生成的很多调试日志,让追寻简略过错也会变得十分杂乱。一种高效的办法是在最简略的验证环境中进行一切可行的验证,该环境让咱们可以履行方针功用,而且具有最高的可见性,最大程度削减与测验目的不相关的作业。在本文中,咱们将评论涉及到寄存器拜访验证的简略示例。验证处理器是否可以正确写入和读取 IP 寄存器,是十分要害的集成验证使命。即便是简略的 SoC,也包含数以百计的寄存器,因此创立测验来验证处理器是否可以读取和写入一切寄存器将会是十分耗时的作业。图 1 显现了一个简略的 SoC,它搭载了闪存、DDR 存储器、紧耦合存储器以及 UART 和 DMA 引擎,引擎的寄存器经过低速外设总线来拜访。尽管最终方针是验证在处理器上运转的代码是否可以拜访 IP 寄存器,但咱们可以首要从根据 UVM 的验证开端,愈加会集验证某一部分。在首要验证UVM 中的存储器子体系后,咱们在嵌入式处理器上调通软件时将更有决心。运用 Mentor 的 Questa inFact 可移植性鼓励东西,可让咱们将同一测验目的重定向到UVM 和嵌入式软件环境,然后节约测验开发时刻。
图 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)
图 2 – 中心寄存器拜访结构体
图 3 – DMA 寄存器地址挑选
图 4 – DMA 寄存器地址挑选规矩
图 4 显现了此进程的文字描绘
…未完待续…
点击免费下载完好白皮书>>