基于DSP的SoC芯片的FPGA验证方法
引 言
本文引用地址:http://www.amcfsurvey.com/article/201808/386477.htmDSP 技术广泛地应用于数字信号处理领域, 它或者以独立的器件形式在系统中出现, 或者以IP 核的形式嵌入SoC系统中。而随着集成电路技术的发展以及EDA 设计水平的迅速提高, 基于IP( Intellectual Property) 进行SoC(System on Chip)芯片设计的能力和技术得到了大大的提高。在一些应用方面,需要处理的数据量不断增大以及数据处理时间缩短,数据运算更加复杂,内嵌DSP核处理器的SoC技术能够提高处理时间精确性并能进行大数据量的处理,提高可靠性, 缩小体积,降低功耗。因此本论文设计研究一种基于DSP的SoC芯片的FPGA验证方法,并将整个系统包括DSP处理器、片上总线、ASIC、内存模块和I/O 外围设备及其他IP模块集成到一个芯片中。 而在复杂的内嵌DSP核的SoC 芯片的系统设计中, 为了保证SoC芯片设计的正确性, 验证工作变得越来越重要, 也更加复杂。FPGA验证是复杂芯片和SoC芯片设计验证的一种有效手段,可以弥补软件模拟仿真的不足,减少验证时间,检验SoC的设计是否实现了设计规范确定的功能,从而提高SoC芯片流片成功率。
1 基于DSP核控制的SoC系统
本论文设计的SoC系统采用国内自主研发DSP核 ,而基于DSP设计的SoC系统主要包括: DSP 处理器核、片上AXI总线、PWM、事件捕获器、看门狗控制、中断控制器、复位管理、存储模块、I/O及其他外设UART、CAN、SPI等模块。这些模块与DSP核之间通过AXI总线连接,进行数据通信。AMBA AXI的总线协议具有高性能、支持高频传输、高速亚微型系统互连的特征。AXI协议是主从结构的,一切触发都由主设备发起。核间通信总线采用实际SoC系统中应用最多的AXI总线结构,比较灵活,可满足对带宽需求高低不同的各种IP。
基于DSP的SOC系统结构框图如图1所示。
图1 基于DSP的SOC系统架构
2 SoC系统的FPGA验证平台
FPGA验证平台用于SoC芯片验证,对于大规模SoC系统的设计进行快速准确地实时验证,根据不同SoC规模容量,采用不同的FPGA硬件资源,硬件平台建设有所不同。由于FPGA具有静态可编程和在线动态重构特性,能够使硬件的功能电路同软件程序一样方便修改,使得FPGA验证修改十分便利易操作,实时性较好;还可以缩短开发周期,节约时间,降低开发成本;FPGA具有的这些特点使得FPGA成为通用的SoC功能验证的器件,为SoC的系统原型验证提供了一个非常合适的平台。FPGA器件在SoC验证设计中的应用越来越广泛。目前FPGA已经从系统集成、系统存储、系统时钟和系统接口四个方面满足了SoC芯片验证的要求,为SoC芯片的快速系统原型验证提供了一个非常合适的平台。此基于DSP的SoC系统的FPGA验证平台采用Xilinx Virtex-6 LX760器件,是建立在Xilinx Virtex6 FPGA板上的软硬件联合验证系统,并用ISE13.3进行综合和布局布线。另外此FPGA硬件验证平台包括支持DSP程序下载的JTAG通路及接口。
2.1 FPGA 硬件平台建设
关于硬件平台搭建主要使用了两颗Xilinx Virtex-6 LX760 FPGA器件,双FPGA Virtex-6核具有15.2M 逻辑门的逻辑资源。Virtex-6 LX760是面向于高端应用,具有更多的时钟和存储资源,而且能够支持运行更快的速度。通过分析所选择FPAG具备资源满足此SoC验证使用,为了实现通用性,该FPGA硬件验证平台采用了子板和母板相结合的方式。在母板上设置有通用的FPGA芯片,相应的PROM,系统全局时钟的选择和配置模块,系统复位逻辑,FPGA芯片下载通路,与子板连接的connector接口等模块。子板根据基于DSP的SoC系统验证需求,该FPGA硬件平台设计的子卡配置了JTAG调试子板,以提供DSP仿真器连接的调试接口通路。另外还设计配置了验证EMIF访问外部存储设备通路的SRAM存储器子板。为了方便测试和验证EMIF接口功能,在这两类测试子板上,都设有关键信号的测试探测点,以方便测试一些基础的时钟、复位信号及其他探测信号。
2.2 FPGA 软件环境建设
在SoC 设计中,经常会使用一些硬IP 核,如PLL、SRAM、ADC、USB transceiver 等,而在采用FPGA验证技术验证ASIC及SoC设计过程中,需要做ASIC的设计原码的转换。所以首先需要对SoC进行修改,以适合FPGA的开发环境。如门控的处理,添加PLL对所需要的时钟进行适当的分/倍频,存储单元RAM、FIFO的替换,修改子模块配置,特殊单元的处理等。还要根据特定的硬件平台增加FPGA 相关的时序Timing的约束和IO引脚的指定约束,并搭建一个能够自动仿真和验证的环境。在此FPGA验证过程中主要使用ISE13.3内置综合工具或专用综合工具对RTL进行编译、综合,生成网表。生成的网表以生成bit文件,包括优化、适配、bit文件生成等。进行静态时序分析,检查是否满足预定的时钟频率要求,若不能满足,则重新进行综合编译优化如果多次进行仍不能满足时序要求,则根据违反时序信息查找关键路径对RTL设计代码进行修改优化。
基于DSP控制的SoC系统的FPGA验证软件除了需要上述提到的综合布局布线的软件环境ISE13.3外,还需要FPGA内部信号在线调试工具Chipscope,即时抓取一些内部逻辑信号分析内部逻辑正确与否。在验证调试阶段,还需要DSP核下载调试软件CCS3.3以编写控制处理器核DSP执行运行的软件测试程序。
2.3 软硬件协同验证系统
FPGA验证SoC系统方法是软硬件协同仿真和验证,并搭建软硬件协同验证平台系统。基于FPGA的SoC验证系统,即硬件平台和软件环境结合的验证系统,已经成为SoC设计验证流程中的重要方法和技术手段。实现的基础条件常常是需要上述提出的能够满足工作要求的FPGA硬件平台,以及有力的设计描述及编译工具等软件环境。而基于DSP控制的SoC验证系统还需要DSP软件程序开发环境及下载通路等。
2.3.1 FPGA软硬件协同验证架构
FPGA验证是使设计的SoC系统及IP模块硬件化,通过实现在具体的FPGA验证平台上运行及验证,具体化设计研发的SoC系统及IP电路,弥补软件仿真存在的差距。为了验证的完整性与可靠性,采用FPGA硬件平台和软件环境建设的软硬件协调验证方法。
FPGA验证是为了实现和验证SoC芯片在实际硬件环境下的功能和运行工作情况。针对基于本文设计提出的基于DSP的SoC系统,搭建能够实现和验证其DSP程序指令及内部电路工作的软硬件验证系统平台。建立的FPGA软硬件协同验证系统的基本架构如图3所示。其中包括FPGA原型验证需要的XILINX V6芯片的FPGA验证母板、支持下载bit位文件及验证调试过程中需要的XILINX FPGA 编程器及下载线、能够支持正确下载DSP激励测试程序的DSP-JTAG调试子板、支持DSP芯片的仿真器、安装有TI CCS软件和 ISE13.3 软件及支持DSP芯片驱动的微机。
图2 FPGA软硬件协同验证系统的基本架构
2.3.2 验证过程
软硬件协同验证过程分以下几个步骤(1)首先把要验证的SoC系统经由ISE13.3自动综合及布局布线实现后生成相应的FPGA位流文件经JTAG下载线下载至构建的FPGA验证系统中的FPGA芯片或对应的PROM中。(2)通过微机CCS 界面编写控制内部DSP核运行的程序,完成程序启动初始化、测试激励程序编译,及开发验证IP及系统需要的程序。(3)并通过DSP仿真器以实时的方式进行软硬件协同验证过程中的管理控制,通过编写及测试程序的加载、运行、调试,实现对DSP核进行的单步操作、连续运行等操作;通过设置正确中断服务程序、设置断点、观测DSP核内部寄存器及SoC配置寄存器值等分析DSP核运行及操作IP情况(4)透过不同的控制程序驱动运行相应功能IP模块及整个系统工作运行,验证IP功能及不同IP之间的交互和总线竞争。在验证过程中可以根据IP功能及SoC系统特性使用示波器观测引脚信号,使用ChipScope软件抓取内部信号来判断逻辑关系及系统运行的准确性。验证DSP核、SoC系统及相应IP功能;验证系统各模块间的相互操作、片上系统内的数据相互流通功能;验证所有IP集合协同运行情况;验证整个系统。具体验证流程图可参见图3
图3 基于DSP的SoC系统的FPGA验证流程图
3 SoC系统及IP模块功能验证
对SoC系统及内部IP功能模块进行验证,需要首先验证FPGA软件平台及硬件平台正确性,才能在CCS环境下编写控制DSP处理器的程序以验证SoC系统设计及各个功能模块的正确性。通过CCS编程器与FPGA硬件平台连接正确后,可通过下载编写控制DSP内核的程序,验证DSP运行正确性,并通过编写控制其他IP逻辑模块验证SoC系统内部交互及IP逻辑设计。其中主要进行了下面几种功能模块划分及其验证,通过验证功能模块也进一步验证SoC系统及片上总线等设计的正确性。
评论