龙芯处理器IP核的FPGA验证平台设计
本文利用Altera公司的FPGA开发工具对皋于国产龙芯I号处理器IP核的SoC芯片进行ASIC流片前的系统验证,全实时方式运行协同设计所产生的硬件代码和软件代码,构建一个可独立运行、可现场监测的验证平台。
1、基于龙芯I号处理器IP核SoC芯片
龙芯I号CPU IP核是兼顾通用及嵌人CPU特点的32位处理器内核,采用类MIPS Ⅲ指令集,具有7级流水线、32位整数单元和64位浮点单元;具有高度灵活的可配置性,方便集成的各种标准接口。图1为龙芯I号CPU IP核可配置结构,用户可根据自己的需求进行选择配置,从而定制出最适合用户应用的处理器结构。
图1龙芯I号CPU IP核可配置结构
主要的可配置模块包括:浮点部件、多媒体部件、内存管理、Cache、协处理器接口。浮点部件完全兼容MIPS的浮点指令集合,其相关的系统软件完全符合ANSI/IEEE 754-1985二进制浮点运算标准。浮点部件主要包括浮点ALU部件和浮点乘法/除法部件,用户可根据自己的实际应用选择是否添加。媒体部件复用了MIPS浮点指令的Format域,并复用了浮点寄存器堆,媒体指令集基本对应了Intel SSE媒体指令集合的各种操作。图2为基于龙芯I号CPU IP核的SoC系统架构。
图2 SoC的系统结构
该SoC芯片支持通用MIPS32指令集,主频可达266 MHz;内置MAC网络,提供MII接口;存储器接口,芯片同时支持SDRAM接口、NOR Flash/ROM和\AND Flash接口,并特置HPI接口可直接与Y0IP CODEC芯片相连;提供丰富的其他外设接凵支持,包括PC接口、UART串口、SP!接口、AC97等接口设备。提供丰富的GP10接口,能够为"网络+语音"以及工业控制应用提供高效的单芯片解决方案。
2 FPGA验证平台的设计
2.1 FPGA的开发流程
FPGA的典型开发流程如图3所示。在图3中,逻辑仿真器主要有Modelsim、Verilog_XL等,逻辑综合器主要有LeonardoSpectrum、Synplify Pro、FPGA Ex~press/FPGA CompilerII等,FPGA厂家工具有Altera公司的Max+Plusll、Quartusll,Xilinx公司的Foundation ISE、Alliance等。设计输人主要有原理图输人和HDL输人两种方式,绝大部分设计,FPGA和ASIC的工程师都使用HDL平台。设计仿真主要包括功能仿真和网表仿真,设汁仿真需要RTL代码或综合后的HDL网表和验证程序,有时候还需要测试数据,测试数据可能是代码编译后的二进制文件或使用专门的工具采集的数据。布局布线工具利用综合生成的网表、调用模块的网表,根据布局布线目标,把设计翻译成原始的目标工艺,最后得到生成编程比特流所需的数据文件。布局布线一般需要的输人输出与调用关系如图4所示。布局布线目标包括所使用的FPGA具体型号等,约束条件包括管脚位置、管脚电平逻辑(LVTIL、LCMOS等)需要达到的时钟频率,有时包括部分模块的布局、块RAM的位置等。在一般设计中,只需要注意管脚位置和需要达到的时钟频率,逻辑端口与FPGA管脚的对应取决于PCB板的设计。
图3 FPGA的典型开发流程
图4布局布线的输入输出与调用关系
2.2验证平台的系统设计
本验证平台FPGA采用Altera公司的Cyclone ⅡEP2C70,该器件采用了TSMC领先的90 nm低电介工艺技术生产⒊支持4个可编程锁相环(PLL),提供灵活的时钟管理和频率合成能力;包含了150个18×18 bit乘法器,可以完成基本的DSP处理;高速外接存储器接口支持SRAM、DRAM\DDR、DDR2以及QDRII SItAM;支持差分和单端I/0标准,包括接收速率805 Mbis和发送速率640 Mb/s的LVDS、mlnl LVDS、LVPECL、 差分HSTL和差分SSTL及处理器、ASSP和ASIC接口的64位66 MHzPCI和PCI-X;高达260 MHz工作频率,真正的双端口工作(1个读和1个写,2个读或2个写);与133 MHz Pal_X1.0标准兼容;用户最多可用引脚622个;高达402.5 MHz性能的分层时钟网络,多达16个全局时钟线,快速串行配置时间小于100 ms;支持3.3 V、2,5 V或1.8 V多种电压,可用于视频、图像处理(如MPEG4编码和译码、视频滤波)和无线基础设各中。基于龙芯I号CPU IP核的SoC的验证平台结构如图5所示。
图5 SoC的FPGA验证平台结构
图5中,外围电路的主要功能是验证SoC中各个接口IP模块能否与龙芯I号IP核、外部接口单元、硬件驱动软件和实时操作系统协调高效地工作。由于接口(如USB接口、UART/IrDA接口、SPI和LCD接口等)电路结构比较简单,且很多资料都有介绍,在设计时,除了注意通用的设计规则和印匍电路板(PCB)布局布线外,没有特别的要求。同时,为了便于分析各个被验证的IP模块在任意时刻的状态,将Cyclone Ⅱ EP2C70的大多数I/0引脚都引出到PCB上,以方便SoC开发人员使用逻辑分析仪进行信号实时采集和分析,也可让信号发生器产生一些特定信号以供系统调试使用。该开发系统在设计PCB时还特别注意了电磁干扰的屏蔽问题。
2.3 SoC到FPGA的系统移植
使用Altera公司的FPGA开发工具Quartusll,将SoC向Cyclone Π EP2C70(FPGA)移植的步骤如下
(1)对SoC进行修改,以适合FPGA的开发环境。修改子模块配置、RAM、FIFO等,添加PLL对所需要的时钟进行适当的分/倍频,或提高时钟信号的质量。
(2)使用Quartusll内置综合工具或专用综合工具(如常见的Synplify._pro)单独建Project,对RTL进行综合,生成网表。时钟工作频率较高的,要写综合约束条件。
(3)指定每一个输人输出信号对应的FPGA管脚和输人输出逻辑类型。
(4)编译生成的网表以生成sof文件,包括优化、适配、sof文件生成等分步骤。
(5)进行静态时序分析,检查是否满足预定的时钟频率要求,若不能满足,则重新进行第(2)步。如果多次进行步骤(2)仍不能满足时序要求,则需要根据关键路径对RTL代码进行修改。
关键路径是指延迟最大的路径,该路径的延迟限制了时钟的最大工作频率。该SoC芯片的最大工作频率在266 MHz以上,与选用的FPGA Cyclone Ⅱ EP2C70的总线时钟速度相当。
- 常见国产处理器指令集体系及来源(02-05)
- 一种消防应急灯具专用控制芯片的设计(11-02)
- 基于FPGA的8段数码管动态显示IP核设计(02-03)
- 基于FPGA和IP Core的定制缓冲管理的实现(08-14)
- 基于Altera ASI IP核的ASI发送卡实现(02-25)
- FPGA的高速多通道数据采集控制器IP核设计(04-22)