0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

基于Palladium解决方案实现硬件加速器的设计

电子设计 来源:电子设计应用 作者:霍晓方 2020-09-28 09:42 次阅读

目前,多媒体芯片的开发面临着集成度高、产品上市时间紧迫、市场变化迅速等诸多挑战。不同于传统的ASIC,多媒体芯片通常是复杂的SoC,在芯片中除了核心的音视频处理电路以外,一般都有MCUDSPCPU来协助音视频处理电路完成系统级的控制功能,或者由DSP、CPU完成某些音视频算法。有的多媒体芯片内部甚至集成了多个MCU、DSP或CPU内核。另外,大部分多媒体芯片都需要与外部CPU协同工作,如PC摄像头多媒体芯片需要和PC一起工作,移动终端多媒体芯片需要和基带处理器一起工作。

中星微电子公司致力于多媒体芯片的开发,并可提供完整的软件和系统解决方案。根据功能的不同,软件可分为驱动程序、固件和应用程序。对多媒体芯片进行系统级验证要同时验证驱动程序、固件等软件部分。基于NC-SystemC,中星微开发出系统级的验证平台,该平台用SystemC集成芯片的驱动程序和应用程序,用Perl来解析测试命令,用NC仿真器进行SystemC和Verilog的联合仿真,较好地解决了软硬件联合仿真的问题,大大提高了验证效率。但由于多媒体芯片规模比较大,依据一个系统级的仿真向量对芯片进行仿真时往往需要几个小时,比如仿真一秒钟的声音需要7~10个小时,仿真一幅1.3M或3M的图像需要1~2个小时。在验证初期,系统的硬件和软件都不稳定,往往需要花费大量时间来验证一个很小的问题,这严重影响了芯片的开发进度。在验证后期,迫于流片时间的压力,又没有时间对芯片进行充分验证。因此,工程师迫切需要一种新的验证方法来加快仿真速度,这就是硬件加速器。

目前,EDA市场上有许多硬件加速器的解决方案,Cadence的Palladium是基于定制CPU的解决方案,其它都是基于FPGA的。本文采用Palladium作为硬件加速解决方案。

基于ARM的STB

STB的硬件结构

基于ARM的STB(可综合测试平台)的硬件结构如图1所示。

基于Palladium解决方案实现硬件加速器的设计

传统的硬件加速器大多工作在ICE(电路内仿真)模式下,这种模式的测试激励由外部硬件设备提供。但是,由于硬件加速器的工作速度有限,无法实现与外部高速设备的直接连接,因此,需要采用Cadence的速率适配器(Speedbridge)来进行速率转换,这样又会增加整个验证系统的复杂程度。STB的基本思想是用可综合的RTL来实现SoC验证中用到的所有仿真模型。由于不同的SoC芯片对各个仿真模型的要求不完全相同,所以,仿真模型必须是可配置的。STB中利用ARM来配置各个仿真模型,并控制各个仿真模型对芯片进行操作,比如读/写芯片的寄存器、为芯片提供音视频输入数据等。同时,ARM也可以运行芯片的驱动程序和应用程序(实际上许多手机基带处理器都是ARM内核)。STB可以对中星微的所有多媒体芯片进行系统级的软硬件联合验证,能够降低验证环境的复杂度,实现更灵活的配置,同时不会降低性能。

STB的ARM子系统

ARM子系统包括ARM内核、多层AHB总线、连接到AHB总线上的SRAM控制器SDRAM控制器、DMA控制器、外部异步接口CPU_BFM、AHB-APB接口电路,以及连接到APB总线上的中断控制器、定时器等。

多层AHB总线可以连接8个AHB主设备和8个AHB从设备。不同的AHB主设备可以同时访问不同的AHB从设备,从而提高了系统的数据吞吐能力。为了简化设计,多层AHB总线不支持Burst、Split、Retry和Error传输。为了适应不同仿真模型的需求,多层AHB总线对AHB总线的传输类型没有限制,支持SINGLE和所有INCR及WRAP传输类型。

DMA控制器协助ARM完成数据搬运工作。DMA控制器提供了4个硬件通道和4个软件通道,每个通道可以独立设置源地址、目的地址、传输长度和控制字。DMA控制器支持嵌套操作,即高优先级的数据传输可以暂时打断低优先级的数据传输,高优先级的数据传输结束后再继续进行低优先级的数据传输。为了提高数据传输的速率并尽量减少对多层AHB总线的占用,DMA控制器使用了两个AHB主设备:一个AHB主设备负责从源地址读取数据,然后把数据存人FIFO中;另一个AHB主设备则从FIFO中读取数据,并写到目的地址中。

CPU_BFM模拟手机基带处理器的异步接口,用来访问其它异步接口。CPU_BFM是STB控制DUV的主要途径,ARM通过CPU_BFM可以读写DUV的寄存器,DMA控制器可以通过CPU_BFM把需要解码的音视频数据快速写到DUV中,或者把解码后的数据读入到STB中。ARM可以配置CPU_BFM的读写宽度,从而具有更大的灵活性。

AHB-APB接口电路提供了ARM控制大多数仿真模型的通路。ARM子系统中的中断控制器和定时器都连接到APB总线上。

STB的其它仿真模型

除了ARM子系统外,STB还集成了其它仿真模型,如USB OTG、UTMI PHY、图像传感器ADC、SCI、SPI、IIC、NOR闪存、NAND闪存、SD卡等。这些仿真模型都连接到APB总线上,ARM通过AHB-APB来配置和控制这些仿真模型。

STB的软件架构

eCos(嵌入式可配置操作系统)是一种针对16位、32位和64位处理器的可移植嵌入式实时操作系统。eCos的源代码是公开的,其最大的特点是模块化,内核可配置。它的另一个优点是使用多任务抢占机制,具有最小的中断延迟,支持嵌入式系统所需的所有同步原语,并拥有灵活的调度策略和中断处理机制,因而具有良好的实时性。

STB的软件基于eCos构建,如图2所示。HAL、eCos内核、eCos内核API、硬件驱动程序构成了eCos的基本架构。DUV驱动程序可以调用STB硬件驱动程序、eCos内核API和HAL硬件抽象层。DUV应用程序调用DUV驱动程序和文件系统对DUV进行系统级验证。如果对相对比较简单的DUV进行验证,可以不使用文件系统和eCos。

Palladium的使用流程

Palladium是基于定制CPU的硬件加速解决方案。和传统的基于FPGA的硬件加速器相比,Palladium的编译速度快、调试能力强,并支持多用户。

Palladium支持SA(模拟加速)和ICE两种模式,后者的运行速度更快,但要求测试平台完全可综合。本文选用ICE模式,其流程顺序为模型替换、代码综合、编译硬件、编译软件、运行和测试。

模型替换

由于ICE模式只能处理可综合的RTL代码,所以需要把测试平台和DUV中所有不可综合的仿真模型(如存储器的仿真模型)都替换为可综合的仿真模型,把所有不可综合的语句如initial、PLI调用等放入∥synopsys translate_off/on语句块中。Palladium可以支持Pullup和Pulldown。

代码综合

对验证的测试平台和DUV进行综合,把RTL代码转化为门级网表。典型的综合脚本如下:

综合结束后可以检查报告文件hdlIce.log,如果有错误提示,就需要修改RTL代码并重新综合;如果有警告提示,则需要确认是否有问题。

编译硬件

对综合后的门级网表进行编译,把门级网表转化为可以在Palladium上运行的数据库。编译过程分为如下步骤:输入门级网表、设置设计、设置仿真器配置、设置时钟、设置编译、选项、预编译、ICE准备、编译。

编译软件

编译STB中在ARM上运行的软件,把编译后的软件代码存为数据文件。同时准备其它的数据文件,如音视频输入数据等。

运行

在Palladium上运行编译好的数据库,运行过程分为如下步骤:下载设计的数据库和各个存储器的初始化文件、设置内置逻辑分析仪的触发条件、设置波形信息、复位芯片、运行芯片、上载存储器内容和仿真波形。

调试

检查上载的存储器内容和仿真波形,如果不符合设计的要求,则查找相应原因。如果是测试平台和DUV的错误,则需要修改相应的RTL代码并重新进行综合、编译硬件和运行;如果是ARM软件的错误,则需要修改ARM软件、编译软件并运行。

Palladium的测试结果

对Palladium的使用可分为三个阶段:第一阶段主要测试Palladium的基本流程,重点是STB的硬件和基本软件;第二阶段用已经流片的设计进行测试,测试重点是STB的软件和Palladium的功能、运行性能以及测试能力;第三阶段用Palladium对正待开发的芯片进行验证。

Palladium可以正确仿真数字逻辑,并且能够处理多时钟和异步时钟。Palladium的运行速度大约是200 kHz~500kHz,比RTL仿真快了100倍~500倍。

使用Palladium时的限制在于,Palladium只能做数字逻辑的功能验证,不能做模拟电路的验证,也不能验证建立时间和保持时间等时序问题。为了达到更好的运行性能,需要对DUV中相关的时钟电路进行优化,所以该部分电路不能通过Palladium进行验证。另外,由于替换了存储器仿真模型和其它不可综合的仿真模型,所以该部分也不能通过Palladium进行验证。所有Palladium不能验证的部分必须采用传统的逻辑仿真器进行充分验证。

可以看出,Palladium不可能取代传统的逻辑仿真和FPGA原型验证,Palladium只是这些验证手段的补充。

结语

基于Cadence提供的Palladium硬件加速解决方案,本文构建了一个全新的验证平台。该平台加速了多媒体的系统级验证,使得工程师可以在流片之前对芯片进行更充分的软硬件验证。

责任编辑:gt

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 芯片
    +关注

    关注

    455

    文章

    50756

    浏览量

    423345
  • 摄像头
    +关注

    关注

    59

    文章

    4838

    浏览量

    95634
  • 多媒体
    +关注

    关注

    0

    文章

    496

    浏览量

    36978
收藏 人收藏

    评论

    相关推荐

    MCU厂推多样解决方案 DSP/FPU硬件加速芯片整合

    方面就可仅整合FPU、DSP硬件加速定位市场区 隔,在高阶的微控制应用上,甚至有解决方案直接整合硬件绘图引擎,直接看准工业用人机介面终端的应用需求,另针对如车用电子、IoT物联网等不
    发表于 10-14 17:17

    无法导入硬件加速器

    嗨!我已经创建了一个硬件加速器(在vhdl中)并且合成成功完成。但是,当我使用创建和导入外围设备向导时,它向我显示我的包在库中不可用,尽管它是。我能做什么 ???L'enfer,c'est l
    发表于 02-27 14:15

    H.264解码中CABAC硬件加速器怎么实现

    H.264解码中CABAC硬件加速器怎么实现
    发表于 06-07 06:48

    问下ARM3的硬件加速器只能用verilog写吗?

    问下ARM3的硬件加速器只能用verilog写吗?
    发表于 09-30 10:45

    基于FPGA Nios-Ⅱ的矩阵运算硬件加速器设计

    针对复杂算法中矩阵运算量大, 计算复杂, 耗时多, 制约算法在线计算性能的问题, 从硬件实现角度, 研究基于FPGA/Nios-Ⅱ的矩阵运算硬件加速器设计, 实现矩阵并行计算。首先根据
    发表于 12-06 17:30 89次下载
    基于FPGA Nios-Ⅱ的矩阵运算<b class='flag-5'>硬件加速器</b>设计

    添加硬件加速器可以加快处理的正弦计算

    如果修改软件不能实现所需速度,那么你可能顺理成章的想到在你的设计中加入硬件加速模块。 作 有很多种算法可对单精度浮点数字的正弦值进行计算,但添加硬件加速器是功能最为强大的方法之一。之所以得出这一结论
    发表于 11-24 18:38 2241次阅读
    添加<b class='flag-5'>硬件加速器</b>可以加快处理<b class='flag-5'>器</b>的正弦计算

    利用硬件加速器提高处理的性能

    处理内部集成的硬件加速器可以实现三种广泛使用的信号处理操作:FIR(有限冲激响应)、IIR(无限冲激响应)和FFT(快速傅里叶变换)。硬件加速器减轻了核处理
    发表于 12-04 15:22 1313次阅读

    基于Xilinx FPGA的Memcached硬件加速器的介绍

    本教程讨论基于Xilinx FPGA的Memcached硬件加速器的技术细节,该硬件加速器可为10G以太网端口提供线速Memcached服务。
    的头像 发表于 11-27 06:41 3730次阅读

    毫米波传感1443硬件加速器的简单介绍

    2.6 mmWave波形传感简介1443硬件加速器
    的头像 发表于 05-08 06:20 3321次阅读
    毫米波传感<b class='flag-5'>器</b>1443<b class='flag-5'>硬件加速器</b>的简单介绍

    硬件加速器提升下一代SHARC处理的性能

    硬件加速器提升下一代SHARC处理的性能
    发表于 04-23 13:06 6次下载
    <b class='flag-5'>硬件加速器</b>提升下一代SHARC处理<b class='flag-5'>器</b>的性能

    OpenHarmony Dev-Board-SIG专场:OpenHarmony 新硬件加速器

    OpenHarmony Dev-Board-SIG专场:OpenHarmony 新硬件加速器
    的头像 发表于 12-28 15:12 1369次阅读
    OpenHarmony Dev-Board-SIG专场:OpenHarmony 新<b class='flag-5'>硬件加速器</b>

    用于 AI 应用的硬件加速器设计师指南

    当 AI 设计人员将硬件加速器整合到用于训练和推理应用的定制芯片中时,应考虑以下四个因素
    发表于 08-19 11:35 1648次阅读
    用于 AI 应用的<b class='flag-5'>硬件加速器</b>设计师指南

    借助硬件加速器开发您的设计

    借助硬件加速器开发您的设计
    的头像 发表于 01-03 09:45 915次阅读

    Alveo卡的区块链硬件加速器解决方案

    电子发烧友网站提供《Alveo卡的区块链硬件加速器解决方案.pdf》资料免费下载
    发表于 09-15 14:42 0次下载
    Alveo卡的区块链<b class='flag-5'>硬件加速器</b><b class='flag-5'>解决方案</b>

    适用于数据中心应用中的硬件加速器的直流/直流转换解决方案

    电子发烧友网站提供《适用于数据中心应用中的硬件加速器的直流/直流转换解决方案.pdf》资料免费下载
    发表于 08-26 09:38 0次下载
    适用于数据中心应用中的<b class='flag-5'>硬件加速器</b>的直流/直流转换<b class='flag-5'>器</b><b class='flag-5'>解决方案</b>