摘要:阐述了片上系统(SoC)设计的发展情况和现场可编程门阵列(FPGA)的独特优势,为基于龙芯I号处理器IP核的SoC设计了FPGA验证平台,并介绍了怎样利用该平台进行软硬件协同设计、SoC系统移植、IP核验证和运行实时操作系统。
片上系统SoC(Sytem。n Chip),即是将整个系统集成在单个的芯片上。与传统的板级电路不同,SoC集成的完整系统一般包括系统级芯片控制逻辑模块、微处理器/微控制器CPU内核模块、数字信号处理器(DSP)模块、嵌入的存储器模块、与外部进行通信的接口模块、含有ADC/DAC的模拟前端模块、电源和功耗管理模块,是一个具各特定功能、服务于特定市场的软件和硅集成电路的混合体(如U LAN基带芯片、便携式多媒体芯片、DVD播放机解码芯片等)。
在SoC的设计总时间中,系统验证的时间约占70%以上。为缩短SoC的设计时间、提高设计质量,需要对验证技术进行研究开发。软硬件协同验证方法与传统的数字系统仿真验证方法不同,软硬件协同仿真验证是针对软件和硬件系统模块进行的混合模拟仿真[剑。目前大多数公司提供的开发验证系统(开发板)存在两个不足:一是开发板的性能、规模难以根据特定的设计需求灵活、自由地调节;二是开发板的功能大多数只能进行软件代码的调试,即使ARM公司提供的开发平台也只能调试部分硬件。而现场可编程门阵列(FPGA)作为集成电路设计技术的第三次重大进步的重要标志,可以使RTL综合的结果直接运行在SoC芯片上,重用性及现汤灵活性较好。因此,本文利用Altera公司的FPGA开发工具对皋于国产龙芯I号处理器IP核的SoC芯片进行ASIC流片前的系统验证,全实时方式运行协同设计所产生的硬件代码和软件代码,构建一个可独立运行、可现场监测的验证平台。
1、基于龙芯I号处理器IP核SoC芯片
龙芯I号CPU IP核是兼顾通用及嵌人CPU特点的32位处理器内核,采用类MIPS Ⅲ指令集,具有7级流水线、32位整数单元和64位浮点单元;具有高度灵活的可配置性,方便集成的各种标准接口。图1为龙芯I号CPU IP核可配置结构,用户可根据自己的需求进行选择配置,从而定制出最适合用户应用的处理器结构。
主要的可配置模块包括:浮点部件、多媒体部件、内存管理、Cache、协处理器接口。浮点部件完全兼容MIPS的浮点指令集合,其相关的系统软件完全符合ANSI/IEEE 754-1985二进制浮点运算标准。浮点部件主要包括浮点ALU部件和浮点乘法/除法部件,用户可根据自己的实际应用选择是否添加。媒体部件复用了MIPS浮点指令的Format域,并复用了浮点寄存器堆,媒体指令集基本对应了Intel SSE媒体指令集合的各种操作。图2为基于龙芯I号CPU IP核的SoC系统架构。
该SoC芯片支持通用MIPS32指令集,主频可达266MHz;内置MAC网络,提供MII接口;存储器接口,芯片同时支持SDRAM接口、NOR Flash/ROM和\AND Flash接口,并特置HPI接口可直接与Y0IP CODEC芯片相连;提供丰富的其他外设接凵支持,包括PC接口、UART串口、SP!接口、AC97等接口设备。提供丰富的GP10接口,能够为“网络+语音”以及工业控制应用提供高效的