基于LEON3的SoC平台搭建与流水灯控制验证

2013-09-25 14:12陈荣军刘松劲谭洪舟丁颜玉
电子设计工程 2013年4期
关键词:开源流水命令

陈荣军,刘松劲,谭洪舟,丁颜玉

(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平台设计提供一个良好的参考方案。

1 主流免费处理器IP核

目前开放性源码已经从软件 (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核,有着明显优势。

2 基于LEON3的SoC平台的搭建

2.1 系统设计框架

LEON3内部包含7级整数流水线。支持硬件乘/除法器以及分立的指令与数据缓存(Harvard结构)。LEON3通过高速的AMBA AHB总线连接内存控制器、USB接口、JTAG接口等高速外部接口,低速的AMBA APB总线实现片上外设的接口,如定时器、串口、VGA等[4]。其系统框图如图1所示。

图1 系统框图Fig.1 System block diagram

2.2 系统设计方法

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

3 基于LEON3的SOC平台流水灯控制验证

在搭建好LEON3硬件平台后,我们在windows平台,编写流水灯程序,使用sparc-elf-3.4.4-mingw进行编译[6],再用grmon2-eval下载到FPGA目标板,使用命令go,运行程序,可以看到LED灯依次闪烁,说明验证成功。

3.1 硬件平台验证环境

1)硬件条件

① 开发板:DE2-115

② FPGA:Cyclone II,EP2C70,Altera Inc.

2)软件条件

①Cygwin

②sparc-elf-3.4.4-mingw

③grmon2-eval

3.2 编写流水灯程序

使用grmon2-eval得到的LEON3各个模块以及PIO的地址信息,编写流水灯程序。LEON3的PIO偏移地址信息如表2所示。

表2 PIO偏移地址信息Tab.2 Offset address information of PIO

硬件地址信息映射PIO部分代码:

3.3 编译并下载流水灯程序

安装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平台验证成功。

4 结束语

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.

猜你喜欢
开源流水命令
只听主人的命令
流水
五毛钱能买多少头牛
2019开源杰出贡献奖
移防命令下达后
流水有心
大家说:开源、人工智能及创新
开源中国开源世界高峰论坛圆桌会议纵论开源与互联网+创新2.0
这是人民的命令
前身寄予流水,几世修到莲花?