电子发烧友网 > 可编程逻辑 > 正文

如何利用FPAG开发板搭建LEON2 SOC开发平台

2020年01月14日 16:00 次阅读

随着IC制造工艺水平的快速发展,片上系统(SOC)在ASIC设计中得到广泛应用。微处理器IP核是SOC片上系统的核心部分。但是大多数公司和研究机构没有足够的财力与人力开发自己的处理器,所以业界比较流行的做法就是购买微处理器的IP核,例如ARM核或MIPS核,但需要数十万美金的许可证费用的投入。

除了昂贵的ARM核与MIPS核以外,我们还有另外一种选择,就是选择开放源代码的微处理器的IP核。目前可以实际使用的开放源代码处理器有LEON系列与OPENRISC系列两种。本文就介绍了LEON2微处理器核,快速的建立起一个SOC的平台的原型对于验证系统性能与加快软件开发都是相当重要的。本文还详细阐述了如何在AlteraFPGA开发板上建立基于LEON2微处理器的SOC原型平台。

1 、LEON2微处理器

LEON处理器系列是欧洲航天局的下属的研究所开发的32位微处理器,应用在航天局的各种ASIC芯片内。目前有LEON2,LEON3系列。LEON系列处理器是一个可配置,可综合适于在SOC设计中应用的微处理器核。LEON2处理器是一个使用SPARC V8指令集的32位的RISC处理器,它的源代码由可综合的VHDL代码构成。同时LEON2的性能也很不错,使用Dhrystone2.1的测试平台,LEON可以达到大约0.85MIPS/MHz。更大的好处是LEON处理器是一个公开源代码,遵循GNU LGPL协议。任何人都可以其网站上免费下载其硬件代码和各种开发软件工具与相关文档。并且在自己ASIC项目中使用。

LENO2的处理器具有以下的特点:

内部使用了5级流水线,兼容SPARC V8指令集。

具有硬件乘法,除法和MAC的功能。

具有分开的指令和数据cache结构(哈佛结构),可以根据需求灵活的配置cache的容量,大小范围是1-64kbyte

片上总线规范使用了AMBA2.0规范,支持APB,和AHB标准。

具备一些片上常用外设,包括UART,中断控制,I/O端口,实时时钟看门狗等。

支持硬件调试功能。

图1是LEON2的结构框图,虚线部分内是LEON2处理器的组成部分。

如何利用FPAG开发板搭建LEON2 SOC开发平台

图1 LEON处理器的结构框图

从上面的介绍可以看出,LEON2的性能相当不错,但是作为一个处理器,除了本身的性能以外,同时还必须要有高效的编译器软件开发环境,各种应用软件和操作系统的支持。ARM和MIPS在嵌入式的广泛应用,与其背后的高效的软件编译开发工具,以及众多支持ARM和MIPS的实时操作系统软件有很大关系。很多公司选择ARM或MIPS,不仅看重微处理器的性能,更大的方面是看重其背后的软件支持环境。虽然LEON系列在这一点上不如商用微处理器,但是也是相当不错了。和硬件代码一起,可以下载LECCS,一个基于GCC的免费的C/C++的交叉编译系统,同时也可以使用GDB调试工具做源代码级别的调试。开源社区还提供免费的实时系统RTEMS,UClinux,eCos等免费实时操作系统。上述实时操作系统都已在LEON2处理器上移植成功了。

由于LEON2处理器的源代码是公开的,任何人都可以免费得到和使用。很多研究机构和公司没有自己的处理器的核,如果去开发,需要大量的人力物力支持,而且附带的各种软件编译器的开发也需要大量的工作,对于中小型的公司或研究院很难做到。如果通过购买ARM或者MIPS的核,通常都需要几十万美金的许可证的费用,同时以后的产品也必须要付一定的费用。而LEON系列处理器就给了这些公司和研究机构另外的一种选择。虽然在功耗和性能上同常用的ARM,MIPS等处理器还有些不足,但是完全可以使用。LEON处理器是经过了多个ASIC芯片流片成功的实践检验。目前基于LEON系列的ASIC芯片也有几十个项目。

2 、在FPGA开发板上建立基于LEON2的SOC原型平台

随着片上系统复杂性的不断增加,为了克服片上系统(SOC)设计的挑战,半导体业界正在采取一种基于系统原型的平台设计方法。这种方法就是通过将片上系统映射到FPGA,这样可以在接近运行速度的前提下,验证硬件和软件。这样不仅给为软件部分能尽早的进行开发与调试工作提供了一个原型,同时也可以在实际运行中发现一些在系统设计中没有注意的地方。这样最终可以缩短设计周期,同时为ASIC设计一次成功提供了更大的把握。

在我们的设计中,为了上述的目的,所以决定在FPGA开发板上建立基于LEON2处理器的SOC平台。使用这个原型系统,就可以很容易验证系统的性能,并且加速软件开发调试流程。图2 就是我们的一个基于LEON2的平台的模块框图。LEON2处理器作为核心部分,片内ROM存放monitor负责系统初始化和将程序拷贝到片外SRAM内的任务,片外RAM是FPGA开发板上memory,用来存放程序和数据。我们自己设计的IP核通过AHB总线和LEON2相互交互。

FPGA开发板是Altera公司的FPGA开发板NIOS。板上主要有以下资源,一块APEX20KE的FPGA,256K字节的RAM(2个64K*16bit的片子),JTAG接口(通过JTAG接口我们可以从PC机上对APEX20KE进行编程),串行口和计算机的COM1口相连。APEX20KE是Altera公司的可编程逻辑器件,标准门数为20万门左右,片上可配置RAM或ROM为10K。

开发流程如图3开发流程图。

硬件流程: LEON2软核用VHDL代码编写的,和我们的VHDL设计文件一起使用Synplify综合工具生成FPGA的网表文件,然后使用Altera公司的布局布线和下载的工具Quartus生成相应的SOF文件。通过JTAG端口将SOF文件下载到片子上去。对FPGA硬件进行配置。由于Quartus软件可以预先配置APEX20KE片上ROM,所以我们可以利用这一点,在LEON2的片上ROM预先配置好1K大小的Monitor软件。

软件开发流程,当软件代码完成以后,使用LEON2的基于GCC的LECCS交叉编译系统对C代码编译,得到二进制代码以后,就可以通过串行口下载到FPGA开发板上。

3 、软硬件详细设计

在LEON的开发网站上可以下载VHDL代码, LEON2是一个可配置的处理器核,可以根据具体系统的应用范围,对处理器的性能进行权衡。例如可以将指令和数据cache进行设置,选择从1kbyte到64kbyte的大小。同时选择处理器是否要支持硬件乘法器。是否要有硬件debug的功能等等。图四是LEON2的处理器配置的界面,将各个选项部分配置完毕,系统生成对应的VHDL代码。

如何利用FPAG开发板搭建LEON2 SOC开发平台

图四 LEON2处理器的配置

在最终的设计中,选取了指令和数据cache分别是1kbyte,不带有硬件乘法功能的模块。得到LEON2的VHDL代码,然后加入我们自己设计的HDL代码,使用modelsim做简单的功能仿真。等功能仿真通过后,使用synplify对VHDL综合,应用 APEX20KE器件,最终的综合结果是:占用 FPGA资源是5800个LE,可以达到的时钟频率最大46M。应当注意的是,由于APEX20KE器件是Altera公司2000年的产品,如果采用Altera新一代的FPGA器件,例如StratixII器件,时钟频率可以达到107M,可以满足大多数的应用领域。

使用quartus进行布局布线时,需要将LEON2和外围的memory连接起来, LEON2对程序存储器和数据存储器是统一寻址。但是在FPGA原型平台设计时,软件需要多次修改调试,所以不能采取将程序固化在片外flash这种做法。所以采用了图5的结构,LEON2核同片内ROM和片外SRAM连接。其中ROM存放了一个monitor程序。由于这个部分是整个平台正常工作的核心,所以下面我专门对它做详细的解释。

如何利用FPAG开发板搭建LEON2 SOC开发平台

图 5 LEON2与存储器的连接

LEON2的平台中有两个memory,分别是片内ROM,片外SRAM,LEON2对存储器是统一寻址的。分配如下:

如何利用FPAG开发板搭建LEON2 SOC开发平台

Monitor的主要作用是在LEON2系统reset初始化的时候首先对处理器初始化,对LEON2的存储配置寄存器进行配置。然后向UART口发送启动信息,然后等待从UART信息。当软件部分使用交叉编译器LECCS在PC上编译完毕后, PC机通过UART口和FPGA开发板相互通信,就可以将编译好的srec文件下载到FPGA开发板上去,放置在片内rom里面的monitor程序就读入程序的内容以及程序的起始地址。起先monitor将srec程序拷贝到SRAM程序区,等全部程序下载好以后, monitor最后一条程序就会自动跳转到程序的起始位置,执行SRAM里的程序。

使用图5的连接。由于data_to_leon[31:0]的数据线是单向的,我们使用多路复用器来选择从外部SRAM的数据输入或者内部ROM数据输入和data_to_leon[31:0]相互连接,使用romsn[0]来选择。romsn[0]只有当访问PROM时才会置低,也就是地址为0x00000000-0x1FFFFFFF的时候。根据上面的描述只有系统reset初始化的时候访问PROM,也就是romsn[0]置低,等下载的程序全部都拷贝到SRAM程序区以后,monitor会控制LEON2处理器跳转到程序的起始位置,也就是片外的SRAM内,这时候romsn[0]保持高电平,也就是data_to_len[31:0]于ram_datain[31:0]连接。这样系统就只会接收外部SRAM的数据。

也就是,程序下载完毕后,就只会执行下载的程序。这样就可以反复修改程序,反复下载程序。可以在利用这个原型平台开发和调试软件硬件程序。

最终,在FPGA里根据上面图5的连接将LEON2分别和片内ROM,片外SRAM相互连接,其中片内rom放入了前面所说的monitor的程序。使用quartus做布局布线和下载。最终在FPGA开发板上建立了LEON2的SOC原型平台,系统可以稳定的工作在33M的时钟下,并且由于FPGA的可多次配置的特性,极大的方便了软件模块和硬件模块的开发调试工作。

4 、总结和题外话

上面的内容论述了如何利用Altera的FPAG开发板资源,使用开放源代码的LEON2微处理器,建立一个基于LEON2的SOC原型开发平台。并且从软件结构和硬件设计的两个方面详细介绍了这个平台的建立。经过实际使用,完全满足要求,加快了我们的项目开发进度。

责任编辑:gt

下载发烧友APP

打造属于您的人脉电子圈

关注电子发烧友微信

有趣有料的资讯及技术干货

关注发烧友课堂

锁定最新课程活动及技术直播

电子发烧友观察

一线报道 · 深度观察 · 最新资讯
收藏 人收藏
分享:

评论

相关推荐

小梅哥FPGA设计思想与验证方法视频教程

刚刚录制了一个fpga开发流程的视频,该视频为投石问路,主要是想听听大家对于小梅哥在录制视频时需要注意的内容以及希望系列
发烧友学院发表于 2016-03-24 00:00 37952次阅读
小梅哥FPGA设计思想与验证方法视频教程

Altera FPGA硬核浮点DSP模块解决方案...

以往FPGA在进行浮点运算时,为符合IEEE 754标准,每次运算都需要去归一化和归一化步骤,导致了....
发表于 2020-01-14 16:19 0次阅读
Altera FPGA硬核浮点DSP模块解决方案...

全球最大FPGA的问世将给IC设计带来便利

英特尔公司在京发布了Stratix 10 GX 10M FPGA,这款拥有1020万个逻辑单元的产品....
发表于 2020-01-14 16:11 5次阅读
全球最大FPGA的问世将给IC设计带来便利

基于软核LEON2在FPGA开发板实现数字机顶盒...

LEON系列32位RISC处理器核的第一个版本是LEONl,它是由欧洲航天局主持设计开发的。LEON....
发表于 2020-01-14 16:09 10次阅读
基于软核LEON2在FPGA开发板实现数字机顶盒...

英特尔与赛灵思的竞争使得FPGA进入黄金时代

目前,赛灵思和英特尔的FPGA市场竞逐角力,一来一往、有输有赢。鉴于双方都有不俗的实力,可以预计,未....
发表于 2020-01-14 16:07 2次阅读
英特尔与赛灵思的竞争使得FPGA进入黄金时代

英特尔与赛灵思的竞争将会研制更强大的FPGA器件

FPGA芯片比CPU更快,比GPU功耗更低、延时更短,且比ASIC更加便宜、周期更短,因此在目前人工....
发表于 2020-01-14 16:03 2次阅读
英特尔与赛灵思的竞争将会研制更强大的FPGA器件

物理开关+阿里IOT云+离线语音三位一体控制开发板

XR-50_EVB_AUDIO是一款基于XR-50A WiFi模组开发的音频开发板,拥有强大的MCU处理器,内部集成了音视...
发表于 2020-01-14 15:37 12次阅读
物理开关+阿里IOT云+离线语音三位一体控制开发板

北京微电子技术研究所成功研制出了高可靠多通道混合...

据悉,该产品已形成针对多通道智能传感器信号处理的集成解决方案,实现了单一封装内智能传感器模拟数字信号....
发表于 2020-01-14 11:36 25次阅读
北京微电子技术研究所成功研制出了高可靠多通道混合...

基于fpga的电源设计

我现在没有一个具体的方案 谁能给我个提示一下 比如 fpga从哪入手(fpga一点不会) 具体的电路应该分为哪几个模块 单...
发表于 2020-01-13 23:30 122次阅读
基于fpga的电源设计

【雨的FPGA笔记】基础实践-------IP核中PLL的使用

PLL锁相环,可以对时钟网络进行系统级的时钟管理和偏移控制,具有时钟倍频和分频,相位偏移和可编程占空比的功能。...
发表于 2020-01-13 19:13 43次阅读
【雨的FPGA笔记】基础实践-------IP核中PLL的使用

采用FPGA器件实现GPS数据加密系统中机载模块...

针对GPS测量系统数据传输过程中的安全问题,采用FPGA技术设计了GPS数据加密系统。系统移植MD5....
发表于 2020-01-13 17:00 99次阅读
采用FPGA器件实现GPS数据加密系统中机载模块...

【雨的FPGA笔记】基础实践-------ModelSim手动仿真

基于流水灯的ModelSIm软件仿真为例子                 ...
发表于 2020-01-13 16:34 190次阅读
【雨的FPGA笔记】基础实践-------ModelSim手动仿真

边缘处理的机器学习处理的特定领域SoC逐渐成为主...

通过SiFive的DesignShare计划进行的联合芯片开发,结合了两家公司的IP和设计优势,可为....
发表于 2020-01-13 16:14 112次阅读
边缘处理的机器学习处理的特定领域SoC逐渐成为主...

关于异构计算FPGA基础知识的详细介绍

随着云计算,大数据和人工智能技术应用,单靠 CPU 已经无法满足各行各业的算力需求。
发表于 2020-01-13 15:15 43次阅读
关于异构计算FPGA基础知识的详细介绍

【高手问答】资深工程师为你解答工程与产品设计上的...

本期我们邀请到了资深工程师白纪龙@白老大大,也是许多坛友熟知的白老师,他将为我们解答大家在PCB设计....
发表于 2020-01-13 09:39 0次阅读
【高手问答】资深工程师为你解答工程与产品设计上的...

【雨的FPGA笔记】基础实践-------呼吸灯设计和实现

呼吸灯设计和实现 内容 一个周期为1s的呼吸灯,从熄灭到完全点亮一共需要1s。 将1s分为1000个1ms作为呼吸...
发表于 2020-01-12 19:50 155次阅读
【雨的FPGA笔记】基础实践-------呼吸灯设计和实现

如何简单快速的实现嵌入式FPGA

Achronix Semiconductor 营销副总裁 Steve Mensor 表示,这款被称为....
发表于 2020-01-12 10:56 320次阅读
如何简单快速的实现嵌入式FPGA

华为和高通的GPU到底还有多大的差距

在绝大部分手机爱好者的印象中,当代手机GPU的性能与能效排名,理论上是苹果最强,高通紧随其后,而Ar....
发表于 2020-01-12 09:09 1134次阅读
华为和高通的GPU到底还有多大的差距

如何用FPGA测量数字正弦波的频率?

如何用FPGA测量数字正弦波的频率
发表于 2020-01-11 22:27 177次阅读
如何用FPGA测量数字正弦波的频率?

【雨的FPGA笔记】基础实践-------按键控制LED和BEEP设计和实现

设计内容        按KEY0时点亮最右边的灯,按动按键KEY1时依次往左移动,按下KEY2时关...
发表于 2020-01-11 12:47 72次阅读
【雨的FPGA笔记】基础实践-------按键控制LED和BEEP设计和实现

【雨的FPGA笔记】基础实践-------流水灯设计和实现

设计内容        将4个LED每隔1s从左往右分别依次点亮熄灭,形成流水状。按复位键时进行复...
发表于 2020-01-11 11:07 322次阅读
【雨的FPGA笔记】基础实践-------流水灯设计和实现

采用CC2430 SoC解决方案和Z-Stack...

仓库监控系统是仓库自动化管理的重要组成部分。监控系统可对大面积范围多部位地区实行实时有效的监控,并对....
发表于 2020-01-10 16:24 55次阅读
采用CC2430 SoC解决方案和Z-Stack...

FPGA的行业优势以及它与DSP的区别分析

FPGA的优势有三个方面:1)通信高速接口设计。FPGA可以用来做高速信号处理,一般如果AD采样率高....
发表于 2020-01-10 15:46 148次阅读
FPGA的行业优势以及它与DSP的区别分析

hdmi矩阵切换器采用FPGA纯硬件架构方案

hdmi矩阵切换器在众多的领域中有着广泛的运用,对于不同的运用场合和需求,有着许多不同的方案,而dm....
发表于 2020-01-10 15:43 108次阅读
hdmi矩阵切换器采用FPGA纯硬件架构方案

关于Xilinx FPGA内部体系结构的分析

Xilinx的FPGA的基本结构是一样的,主要由6部分组成,分别为可编程输入/输出单元、基本可编程逻....
发表于 2020-01-10 15:39 196次阅读
关于Xilinx FPGA内部体系结构的分析

如何用乘加器(mac)实现150个数平方和?

这个模块是music算法中的协方差矩阵中的一部分。输入的150个数是16位的,得到的结果是32位。 自己也写了代码可是结果...
发表于 2020-01-10 10:57 335次阅读
如何用乘加器(mac)实现150个数平方和?

深维科技荣获北航全球创新创业大赛二等奖

经过初赛、复赛的激烈对决和层层选拔,深维科技参赛项目“超高性能数据中心FPGA异构计算加速解决方案”....
发表于 2020-01-10 09:28 80次阅读
深维科技荣获北航全球创新创业大赛二等奖

香橙派Orange Pi 4/4B 开发板如何使用MIPI摄像头拍照和录像

香橙派OrangePi 4和Orange Pi 4B开发板, 最多可同时连接两个 MIPI 摄像头(官方配套的13MP摄像头,型号:...
发表于 2020-01-09 18:43 1242次阅读
香橙派Orange Pi 4/4B 开发板如何使用MIPI摄像头拍照和录像

开发STM32MP1,你需要一块好开发板

以前是基于Cortex M系列MCU惊醒开发,对于cortex-A架构的处理器以及Linux系统都不....
发表于 2020-01-09 12:13 176次阅读
开发STM32MP1,你需要一块好开发板

新型安全蓝牙5.2 SoC助力纽扣电池供电产品工...

Silicon Labs宣布推出新型Bluetooth®片上系统(SoC)解决方案,完美融合了市场领....
发表于 2020-01-09 08:11 203次阅读
新型安全蓝牙5.2 SoC助力纽扣电池供电产品工...

LVDS技术的应用优势及基于FPGA实现远端显示...

LVDS接口又称RS-644总线接口,是20世纪90年代出现的一种数据传输和接口技术。LVDS是一种....
发表于 2020-01-08 16:40 545次阅读
LVDS技术的应用优势及基于FPGA实现远端显示...

帧同步系统的工作原理及如何基于FPGA实现其设计

实现帧同步的关键是把同步码从一帧帧数据流中提取出来。本设计的一帧信码由39位码元组成。其中的巴克码为....
发表于 2020-01-08 16:30 1534次阅读
帧同步系统的工作原理及如何基于FPGA实现其设计

英特尔新发布Stratix 10,为可编程四核A...

FPGA在高度并行、大吞吐量数字信号处理(DSP)应用方面享有很好的声誉。过去几代FPGA器件一直稳....
发表于 2020-01-08 15:32 288次阅读
英特尔新发布Stratix 10,为可编程四核A...

联发科天玑800 SoC正式问世,搭乘的首批手机...

中国台湾制造商联发科(MediaTek)承诺在2020年国际消费电子展会(CES 2020)上推出新....
发表于 2020-01-08 10:24 1315次阅读
联发科天玑800 SoC正式问世,搭乘的首批手机...

FPGA的发展瓶颈有哪些,该如何解决

据Semico统计,FPGA市场正在逐年增长,而复合年均增长率高达38.4%,至2023年将具有55....
发表于 2020-01-07 15:23 171次阅读
FPGA的发展瓶颈有哪些,该如何解决

FPGA和GPU在深度神经网络方面谁更胜一筹

在今天的大数据时代,企业和消费者被各种来源的海量数据淹没,包括商业交易、社交媒体以及传感器或机器对机....
发表于 2020-01-07 15:08 256次阅读
FPGA和GPU在深度神经网络方面谁更胜一筹

FPGA中面积换速度该如何去实现

在FPGA中,如果要将一个采样率为480MHz,中频频率为302.5MHz的信号变频到零中频的基带信....
发表于 2020-01-07 14:45 87次阅读
FPGA中面积换速度该如何去实现

安路科技文余波:站在历史的关口,国产FPGA当自...

安路科技总经理文余波在接受采访时表示,安路科技能在FPGA市场上实现过亿的销售,证明了公司一直以来强....
发表于 2020-01-07 13:59 119次阅读
安路科技文余波:站在历史的关口,国产FPGA当自...

介绍FPGA中testbench的编写技巧

原来模块中的输入信号,定义成reg 类型,原来模块中的输出信号,定义为wire类型,但这里有个问题,....
发表于 2020-01-06 14:52 93次阅读
介绍FPGA中testbench的编写技巧