陈荣军,刘松劲,谭洪舟,丁颜玉
(1.中山大学 南方学院,广东 广州 510197;2.中山大学 信息科学与技术学院,广东 广州 510006;3.广州市加信电子技术有限公司,广东 广州 510663)
当前芯片设计业正面临着一系列的挑战,系统芯片SoC已经成为IC设计业界的焦点,SoC性能越来越强,规模越来越大。LEON是Gaisler Research公司研发的基于SPARC V8(IEEE-1754)架构的开源处理器IP核。它的源码为可综合的VHDL代码,并且是开源的,符合SPARC标准。LEON系列处理器主要包括 3 款:LEON1,LEON2,LEON3。 目前,LEON3 凭着其诸多优势在FPGA和ASIC上有着巨大的应用场景[1]。相比传统的处理器IP核,LEON3配置灵活,成本低,性能高,更适宜SoC平台开发,文中为基于LEON3的SoC平台设计提供一个良好的参考方案。
目前开放性源码已经从软件 (Linux、GCC等)扩展到硬件,对于嵌入式软核处理器来说,出现了像OpenCores这样专门发布免费的IP核源代码的组织。目前,免费的32位嵌入式软核处理器有:Gaisler Research公司的 LEON2/LEON3、OpenCores组织公布的OR1200和Altera公司的Nios II。这3种开放性处理器凭借其高性能,低成本,良好的可配置型和完善的开发环境,受到了学术界和工业界的普遍重视[2],表1对这3种软核进行比较[3]。
表1 主流32位免费处理器比较Tab.1 Comparison of mainstream 32 free processor
由表1可以看到,对比OR1200和Nios II,LEON3拥有7级流水线,指令周期短,内存管理单元(MMU)和浮点运算单元(FPU)等,性能优越。此外它还是开源代码,配置、移植灵活,占用资源比较少,综合考虑,可以看出LEON3相比其他处理器IP核,有着明显优势。
LEON3内部包含7级整数流水线。支持硬件乘/除法器以及分立的指令与数据缓存(Harvard结构)。LEON3通过高速的AMBA AHB总线连接内存控制器、USB接口、JTAG接口等高速外部接口,低速的AMBA APB总线实现片上外设的接口,如定时器、串口、VGA等[4]。其系统框图如图1所示。
图1 系统框图Fig.1 System block diagram
2.2.1 系统开发环境
确定LEON3平台系统框架后,接下来配置硬件平台搭建环境,其开发环境如下:
1)硬件条件 使用开发板:DE2-115,FPGA芯片为:Cyclone II, EP2C70, Altera Inc.
2)软件条件 在 win 7系统安装虚拟机:VMware 7.0,然后再虚拟机上安装Linux系统:Red Hat Enterprise Linux 5。在linux环境下进行硬件配置。安装grmon2-eval,用其下载硬件sof文件,查看硬件信息。
2.2.2 硬件平台搭建步骤
在配置好硬件平台开发环境后,接下来按照步骤进行平台搭建,其流程图如图2所示。
图2 硬件平台搭建步骤Fig.2 Procedure of designing hardware platform
在Gaisler Research官网上下载LEON3源代码,然后解压,在Linux环境下,找到目标板的文件目录,使用命令make xconfig进行各个硬件模块的配置,界面如图3所示,配置信息会写入config.vhd文件中[5]。
图3 LEON3配置界面Fig.3 Configuration interface of LEON3
然后使用命令make quartus建立工程(PC机上需要预先安装quartus ii这个软件),使用软件quartus ii编译整个工程生成sof文件,最后把sof文件下载到FPGA开发板。
安装软件GRMON并打开,使用命令info sys,可以看到LEON3内核的硬件地址信息,如图4所示,说明LEON 3硬件平台搭建完成。
图4 LEON3硬件地址信息Fig.4 Hardware address information of LEON3
在搭建好LEON3硬件平台后,我们在windows平台,编写流水灯程序,使用sparc-elf-3.4.4-mingw进行编译[6],再用grmon2-eval下载到FPGA目标板,使用命令go,运行程序,可以看到LED灯依次闪烁,说明验证成功。
1)硬件条件
① 开发板:DE2-115
② FPGA:Cyclone II,EP2C70,Altera Inc.
2)软件条件
①Cygwin
②sparc-elf-3.4.4-mingw
③grmon2-eval
使用grmon2-eval得到的LEON3各个模块以及PIO的地址信息,编写流水灯程序。LEON3的PIO偏移地址信息如表2所示。
表2 PIO偏移地址信息Tab.2 Offset address information of PIO
硬件地址信息映射PIO部分代码:
安装sparc-elf-gcc,使用命令:sparc-elf-gcc-g-O2 LED.co LED-msoft-float编译代码LED.c生成可执行程序LED。
打开软件GRMON,使用命令:load LED把可执行程序LED下载到目标系统。最后使用命令:go,运行程序,如图5所示。
图5 下载并运行程序Fig.5 Download and run the program
运行程序后,如图6所示,可以观察到测试平台上8盏LED灯依次闪烁,SOC平台验证成功。
LEON3处理器以其高性能,低成本和配置灵活等优势在SoC应用上有着广泛的应用。本文使用开源的硬件代码,提出了一个比较详细的基于LEON3平台的精简的,灵活的SoC平台开发流程,并编写流水灯程序,验证平台搭建成功,为LEON3开发提供了很好的参考[7]。
图6 LED灯Fig.6 LED lights
[1]LUO Pei,ZHANG Jian.A high reliable SOC on-board computer based on Leon3[C]//IEEE International Conference on Computer Science and Automation Engineering (CSAE),2012.
[2]徐敏,孙恺.开源软核处理器OpenRisc的SOPC设计[M].北京:北京航空航天大学出版社,2008.
[3]1-CODE TECHNOLOGIES.Soft CPU Cores for FPGA.1-CODE TECHNOLOGIES.[EB/OL].(2012).http://www.1-core.com/library/digital/soft-cpu-cores/
[4]LI Xue-mei,HOU Li-gang.The FPGA prototyping implementation of LEON3 SoC[C]//IEEE Conference Publications on Industrial Control and Electronics Engineering (ICICEE),2012.
[5]ZHOU Zhong-hua,WU Wu-chen.A SoPC design based on LEON3 SoC platform [C]//1st Asia Pacific Conference on Postgraduate Research in Microelectronics and Electronics,2009.
[6]李林,张晓林,杨希.基于LEON开源软核的SoC平台构建与测试[J].单片机与嵌入系统用,2007(1):32-35.
LI Lin,ZHANG Xiao-lin,YANG Xi.Construction and testing of SoC platform based on the LEON open source soft-core[J].Microcontroller and Embedded Systems Applications,2007.
[7]熊来红,高健,汪皓钰.COM技术和遗传算法在无功优化软件开发中的应用[J].陕西电力,2011(12):22-26,75.
XIONG Lai-hong,GAO Jian,WANG Hao-yu.Application of com technology and genetic algorithms in power reactive optimization software design[J].Shaanxi Electric Power,2011(12):22-26,75.