图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模块功能验证图4 验证CPI模块原理框图
在ChipScope中正确设置触发条件并可以通过FPGA编程器及JTAG传送到PC主机,可观察其逻辑波形的正确性。下图5可以看车CPI_INT6从高电平到低电平的转化,可说明DSP对CPI中断事件进行了处理,并正确相应外部中断。可验证正确设置CCS配置IP模块寄存器后,IP硬件模块能够正常运行。
图5 CPI中断事件
3.4 PWM、SPI、CAN、UART等外设模块
通过控制内部寄存器,能够产生正确的PWM波,分别在示波器及ChipScope上对一些信号进行采取及观测分析,验证其正确性。验证方法和如上验证CPI、EMIF相同。测试验证结果表明其功能正确。其中结合示波器测试PWM波,验证PWM设计正确性。另外使用相同方法验证SPI、CAN、UART等各IP功能。
4 结论
本文基于一个DSP处理器控制的SOC芯片的开发与验证项目为基础。介绍了关于FPGA的软硬件协同验证方法及过程,搭建FPGA验证硬件平台及软件平台环境, 并通过软硬件协同验证, 在线验证调试SOC系统中逻辑及功能设计, 并对每个功能模块进行了验证分析。通过CCS输入控制DSP程序进而控制SOC系统及内部IP模块,具有可观测性及实时性,结果表明通过FPGA软硬件协同验证系统可以对目标SOC芯片进行功能验证及性能评估。缩短了基于SoC芯片的应用系统的开发时间,提高流片成功率。整个验证平台及方法具有较高的可靠性。