龙芯处理器IP核的FPGA验证平台设计
3、 VxWorks实时操作系统
本文所设计的SoC硬件平台上,最终将运行Vx-Works操作系统,作为此次嵌入式SoC硬件平台设计的软件需求和最终的验证目标。VxWorks是一个具有可伸缩、可裁减、高可靠性,同时适用于所有流行CPU平台的实时操作系统㈣。可伸缩性指VxWorks提供了超过1 800个应用编程接口(API)供用户自行选择使用;可裁减性指用户可以根据自己的应用需要对VxWorks进行配置,产生具有不同功能集的操作系统映像;可靠性指VxWorks可以提供非常安全的操作系统平台。VxWorks的基本构成组件包括BSP(Board Support Package)、微内核Wind、网络系统、文件系统及I/0系统。本文测试更关注于BSP、Wind以及I/O组件。BSP中包括硬件环境中CPU的初始化及系统各项硬件资源的安装和配置,如RAM、Clock、网络接口、中断控制器等。微内核Wind是Win ̄dRiver公司自行开发的一种嵌人式操作系统内核,该内核具有标准的嵌人式实时操作系统的基本特征。
4、验证平台的检验
将已经成熟的AMBA总线IP核的Verilog代码通过Synplify综合,利用Altera公司的QUARTUS Ⅱ软件作布局布线,烧人Cyclone Ⅱ EP2C70,再用同样的方式将新开发的EMI IP核的Verilog代码烧入该FPGA,将其中的SDRAM控制器作为验证示例,选取其中最简单的访问方式来验证该平台能否使用。上电后,首先要对所有内存区(bank)预充电,经8个自刷新周期后需要设置访问模式,即编程模式寄存器。以上三个过程要求如下:
(1)预充电命令的发出要求:在时钟周期的上升沿处,CS、RAS、WE为低,CAS为高。
(2)自刷新命令的发出要求:在时钟周期的上升沿处,CS、RAS、CAS 禾口CKE保持低,WE为高。
(3)模式寄存器的激活:在时钟的上升沿处,RAS、CAS、CS和WE为低。
当要验证各个IP模块(包括[NT中断控制器、DMA控制器、LCD控制器和AC97控制器等)之间的协同工作时,烧入的代码较多,占用的FPGA资源也较多,再加上需要实时运行,例如播放PM3实时解码过程中,时钟至少要求60 MHz,需要工作的IP核有总线、DMA控制器、INT中断控制器、AC97控制器等,因此在这种情况下,最好使用Multi PointSynthesis的综合流程和Timing driv-en的综合与优化策略,并使用Logic一lock约束技术和人工干预布局布线,以达到预期目的。使用该平台对所开发的SoC的各个模块进行了验证,并在lO MHz~70 MHz条件下与代码前(后)仿真结果和SoC实测结果进行了比较,发现该FPGA验证平台在多模块、高速情况下,性能有所下降,如图6所示,需进一步提高综合和布局布线技术。
图6各模块实验验证结果比较
本文设计了基于国产龙芯I号处理器IP核的SoC的FPGA验证平台,介绍了怎样利用该平台进行软硬件协同设计、SoC系统移植、IP核验证和运行实时操作系统。在电压设计、模块选用甚至处理器核的选用方面都考虑了升级扩展技术,可为其他SoC的验证所借鉴。验证结果表明,基于龙芯I号CPU IP核的SoC可成功运行Linux嵌入式程序及VxWorks。
- 常见国产处理器指令集体系及来源(02-05)
- 一种消防应急灯具专用控制芯片的设计(11-02)
- 基于FPGA的8段数码管动态显示IP核设计(02-03)
- 基于FPGA和IP Core的定制缓冲管理的实现(08-14)
- 基于Altera ASI IP核的ASI发送卡实现(02-25)
- FPGA的高速多通道数据采集控制器IP核设计(04-22)