写在最前面的话

2010年年底我开始接触LEON3,花了3个月时间把LEON3源代码大致阅读完,然后参照Gaisler Research 网站上提供的leon3-altera-ep3c25源代码,修改并移植到DE2-70平台上,并作了一些AHB和APB外设的IP核设计,历时近一年,最终完成了我的本科毕业设计。之后因为觉得自己的水平仍不够“FPGA工程师”,觉得LEON3过于复杂,资料太少,学习起来过于疲惫,从而转战NIOS II SOPC和基础数字系统设计,停止对LEON3的进一步学习和研究。这段时间总是会有网友问我一些LEON3的问题,都是基本的问题,比如硬件怎么配置,eclipse怎么使用,IP怎么写。由于自己的确不在做LEON3的研究和开发,连开发环境都没有了,就把以前做的和写的一些材料整理一下,分作四篇博客分享给大家,希望能让初学者少走弯路,快速入门。最后,我自己能力有限,文字水平也有限,如果有什么问题我能帮上大家的我一定不吝啬自己的文字,也希望大家能把LEON3做出点东西。

============================================================

摘要:

本系列博客主要简述了如何将简单的LEON3 SOPC系统的配置,并移植到的友晶 DE2-70开发板上,并根据AMBA 总线协议设计一个的用户自定义APB IP,并嵌入到这个SOPC系统中。共分为四个部分,第一部分对LEON3一些基本知识进行介绍,以及开发需要使用到的软件和源代码;第二部分介绍Cygwin和GRtools软件的安装和配置说明;第三部分介绍LEON3 SOPC系统构建,并使用Eclipse (LEON3 IDE) LEON3 开发应用程序;最后一部分简单介绍了简单APB IP核(七段数码管的IP)的设计。

四篇博客依次为:

(原创)LEON3入门教程(一):什么是LEON3?需要哪些开发工具和软件?

(原创)LEON3入门教程(二):Cygwin和GRtools的安装与配置

(原创)LEON3入门教程(三):基于LEON3的SOPC设计:HELLOWORLD和流水灯

(原创)LEON3入门教程(四):基于AMBA APB总线的七段数码管IP核设计

一、总体描述

1 LEON3处理器简介

LEON处理器系列是欧洲航空局的下属的研究所开发的32位的微处理器,应用在航天局的各种ASIC芯片内。目前有LEON2、LEON3系列。LEON系列处理器是一个可配置可综合适用于SoC设计中的微处理器核。LEON3处理器是一个使用SPARC V8(IEEE-1754)指令集的32位RISC处理器,它的源代码由可综合的VHDL代码构成。同时LEON系列处理器的性能也比较理想,可以达到大约0.85MIPS/MHz。更大的好处是LEON处理器是一个公开源代码,遵循GNU LGPL协议。任何人都可以在其网站上免费下载其硬件代码和各种开发软件工具与文档。并在自己的ASIC项目中使用。LEON3的结构框图如图1所示。

图1  LEON3的结构框图

2 LEON3处理器的技术特点

LEON3处理器的技术特点主要有:采用SPARC V8结构、采用内部AMBA总线结构、容错设计和VHDL编程风格。

1. SPARC V8

可扩展处理器体系架构(SPARC),是一个从RISC派生出的CPU指令集结构(ISA)。指令集结构是指:定义了指令、寄存器、指令和数据存储器、指令执行对寄存器和存储器的影响、控制指令执行的算法等内容,但不定义时钟周期、每条指令的执行时钟周期数(CPI)、数据通路等内容。作为一个结构,SPARC允许在具有不同性能价格比的广泛应用中,实现不同系列的芯片和系统,包括科学、工程、实时和商业应用等。SPARC的设计目标是优化编译器和易于硬件流水线实现。

SPARC处理器由整数单元(IU)、浮点和协处理器单元(FPU和CP)构成。它们各自都有自己的寄存器,其中IU有8个全局寄存器、2-32个寄存器窗口(由用户设定),浮点和协处理器单元的选择依赖于具体应用。

2. 容错问题

为了适用于航空航天的高可靠性应用,LEON3处理器采用多层次的容错策略:奇偶校验、TMR(三模冗余)寄存器、片上EDAC(检错和纠错)、流水线重启、强迫Cache不命中等。尽管现在几乎所有CPU都有一些常规的容错措施,如奇偶校验、流水线重启等,像 IBM5/390GS 还采用了写阶段以前的全部流水线复制技术, Intelftanium采用的混合ECC和校验编码等技术;但远没有LEON3处理器那样,采用如此全面的容错措施。LEON3处理器将时序(存储)单元的状态翻转作为数字容错的主要内容,根据时序逻辑的不同特点和性质,采用了不同的容错技术和手段。

3. 编码风格

LEON3的VHDL编码风格,同传统以并发执行的并发进程(或并发语句)作为模块的所谓“数据流”编码风格不一样,采用的是“二进程”的设计方法。这种编码风格克服了“数据流”编码方式的可读性差、抽象级低、仿真时间长等缺点。“二进程”编码风格的具体措施是:①所有的端口和信号声明采用记录的形式进行说明,如按输入输出分类进行记录说明;②每个实体只有两个进程,一个组合进程和一个时序进程;③在组合进程中全部采用变量(而不是信号),以使用结构化的顺序编码方式;④在时序进程中通过时钟同步,进行状态的转换。它基本与状态机模型一样,只是组合进程部分采用变量形式进行结构化顺序编码,来完成下一个时钟周期的输出和下一个状态进行计算。时序进程部分是在时钟的作用下,完成状态转换和输出驱动。

3 本系列所搭建的SOPC

硬件部分使用到了Gaisler提供的GRLIB,来配置在AlteraDE2-70开发板上的SOPC系统。该系统包含LEON3 SPARC V8处理器,AMBA和AHB、APB总线、调试用的Jtag和调试单元DSU、测试的Uart模块,以及Timier和中断。

系统的结构图如图2结构所示。

图 2 基于LEON3处理器的SOPC系统的结构框图

4 软件代码编写和测试。

软件部分是由Gaisler提供的GRTools来完成。GRTools包含了基于Eclipse的LEON集成开发环境(简称 LEON IDE)。在LEON IDE中编写需要的测试代码并进行编程、下载测试。

二、相关文件准备

这里介绍所需要下载的安装包以及软件源代码:

2.1 Cygwin

简    :Cygwin是一个在windows平台上运行的unix模拟环境,本文所涉及的大部分操作都需要在Cygwin下实现。

下载地址:http://cygwin.com/install.html

版本说明:1.7.7-1

大    : 549K

备    :教育网可能不能正常使用所下载的setup.exe进行网络安装,这时候可以下载离线包Cygwin.iso进行安装,这里给出几个教育网可以下载的连接。

1、东北大学Ftp下载

ftp://ftp.neu.edu.cn/software/Linux_Unix/Distribution/CygWin/cygwin-release-20071020.iso

大    小:1.55G

2、coolersky下载

ftp://soft.coolersky.com:19527/iso/cygwin2.510.2.2.iso。

大    小:668M。

2.2 GRLIB

简    介:GRLIB IP库为SOC开发设计的一套集成的IP 库。IP核面向片上总线,不用修改任何全局资源用即插即用方法即可配置和连接IP核。IP库对各种厂商是独立的,支持不同的CAD工具和目标技术。

下载地址:http://www.gaisler.com/products/grlib/grlib-gpl-1.1.0-b4104.zip

版本说明:gaisler官网www.gaisler.com会定时更新GRLIB,最新版的是2010年11月9日发布的grlib-gpl-1.1.0-b4104版本。

大    小:21.2M

备    :教育网不能直接访问gaisler官网,因此下载本软件需要使用外网,如网通或者电信网络;或使用代理访问并下载(如使用搜狗浏览器下载)。

2.3 GRTools

简    :GRTools包含了LEON3软件开发所需要的所有基本的交叉编译器和仿真器。

下载地址:ftp://gaisler.com/gaisler.com/grtools/GRTools-20101104.exe。

版本说明:gaisler官网www.gaisler.com会定期更新GRTools,此文使用的是2010年11月4日发布的GRTools-20101104.exe版本。

大    :270 M

备    注:教育网不能直接访问gaisler官网的ftp,因此下载本软件需要使用外网,如网通或者电信网络。

2.4 Quartus II

简    介:Quartus II 是Altera公司的综合性PLD开发软件,支持原理图、VHDL、Verilog HDL以及AHDL(Altera Hardware Description Language)等多种设计输入形式,内嵌自有的综合器以及仿真器,可以完成从设计输入到硬件配置的完整PLD设计流程。

下载地址:Altera公司提供的开发光盘

版本说明:Quartus II 9.0

大    小:5.2G

备    注:Altera公司提供的开发光盘,包含Quartus II和其他集成开发包,如NIOS II IDE、ModelSim等,可以选择安装,也可以全部安装。在本次LEON3开发过程中只需要使用Quartus II。

2.5目录和文件

简    介:本实验在E盘下建立一个名为LEON3的文件夹,本文将下载好的GRLIB压缩包grlib-gpl-1.1.0-b4104.zip拷贝至E:\LEON3文件夹下。再在E:\LEON3下建立一个名为LEON3IDE的文件夹作为软件工程的Workspace目录。

转载于:https://www.cnblogs.com/surpassal/archive/2012/10/20/LEON3_1.html

(原创)LEON3入门教程(一):什么是LEON3?需要哪些开发工具和软件?相关推荐

  1. (原创)LEON3入门教程(三):基于LEON3的SOPC设计以及HELLOWORLD和流水灯

    摘要:通过前两篇博客的介绍,Windows下基本的LEON3开发环境就已经搭建好了.这篇博客将要介绍LEON3 SOPC平台的搭建(使用Cygwin+GRLIB)和 LEON3 IDE(eclipse ...

  2. Golang 新手入门教程(二):Go 常用开发工具介绍

    本节重点: 将介绍几款常用的开发工具以及特点.可根据自已爱好以及经济实力自行选择. Visual Studio Code Vscode 是微软基于 Electron 和 Web 技术构建的开源编辑器, ...

  3. (原创)LEON3入门教程(四):基于AMBA APB总线的七段数码管IP核设计

    摘要:这一小节将介绍下如何设计用户自定义的APB IP,并将IP嵌入到SOPC中去.一个APB IP核的主要分为三个部分:逻辑单元.寄存器单元和接口单元.所设计的IP是一个简单的七段数码管显示IP,只 ...

  4. 原创 TypeScript入门教程 之  迭代器

    原创 TypeScript入门教程 之 迭代器 Iterator Iterator本身不是TypeScript或ES6功能,Iterator是面向对象的编程语言所通用的行为设计模式.通常,它是一个实现 ...

  5. xilinx fpga 开发工具vivado 软件的安装,使用详细教程

    文章目录 xilinx fpga 开发工具vivado 软件的安装,使用详细教程 xilinx fpga 开发工具vivado 软件的安装,使用详细教程 点此下载vivado软件的安装说明文档 点此下 ...

  6. Xamarin.Forms教程下载安装Windows版的Xamarin开发工具

    Xamarin.Forms教程下载安装Windows版的Xamarin开发工具 下载安装Windows版的Xamarin开发工具 本节将讲解如何下载并安装Windows版的Xamarin开发工具. 下 ...

  7. Django 2入门教程:利用GoormIDE和Bootstrap 4开发旅游博客

    原版书名:<Django 2.1 Tutorial : Build a Travel Blog with GoormIDE and Bootstrap 4 (Tutorial Project)& ...

  8. Python3教程——3、Python3 用什么IDE开发工具好呢

    和小名一起学Python Python3教程--Python3 用什么IDE开发工具 这也许是学习一门语言时大家都会问的一个问题,其实我个人认为无所谓哪个最好,关键在于哪个用着顺手,方便.还有很多人乐 ...

  9. LaTex零基础入门教程(含附件:安装包+LaTex文本编译软件+SCI期刊LaTex投稿图文流程)

    LaTex是一种基于ΤΕΧ的排版系统,使用LaTex最大的好处就是"只需要写内容就可以,至于内容排版就不是我们的事".LaTex的使用可以大大提高我们科研论文写作的工作效率.平时写 ...

最新文章

  1. TensorFlow XLA加速编译器
  2. 1小时教你做360度全景“小星球”效果图 Skillshare – Create a Panoramic ‘Little Planet’ from Anywhere
  3. 各种有return的情况下try-catch-finally的执行顺序
  4. XCTF WEB simple_js
  5. kisnetflt64.sys怎么删除
  6. 计算机教育日志,信息技术日志1
  7. Qt OpenGL 问题总结
  8. 三个线程按顺序输出数字
  9. spring mvc学习(32):原生代码导入
  10. 那个傻子的网站突然打不开虚拟光驱
  11. java 切换目录,java-使用SVNKit,如何将目录切换到其他分支?
  12. 华为云MVP程云:知识化转型,最终要赋能一线
  13. java实现rabbitmq动态路由/话题模型(topic queues), 生产者 消费者 交换机 消息队列
  14. android studio 全局变量和变量保存到xml文件的方法及应用
  15. centos 卸载docker_五分钟安装docker并启动第一个docker容器
  16. stc8a循迹小车程序编写实验:完成循迹功能,包括直角转弯,以及调头
  17. linux 显示数字权限,Linux数字权限解释
  18. 计算机科学与技术专业校友会排名,校友会2017中国民办大学计算机科学与技术专业排行榜...
  19. 为fetch添加拦截器功能
  20. Base64在线转换工具(详解)

热门文章

  1. 安卓还是鸿蒙,SaaS应用移动化靠谁?
  2. 车易加加油优惠卡_造型极具未来感 一汽奔腾全新概念车正式亮相
  3. 小颖用计算机探索方程,数字信号处理(邓小颖)-中国大学mooc-题库零氪
  4. 音乐号将成在线音乐标配,QQ音乐如何诠释强用户导向思维?
  5. 企业组织结构图怎么画?分享简单的结构图绘制方法
  6. Java中文编程开发,让Java编写更加容易
  7. RKC Z-TIO 模块基于MODBUS使用PROTEM软件设定参数
  8. Java中文汉字排序
  9. 移动IP技术研究(转)
  10. 随手记高管专访之CEO谷风专访——随手记理财安全吗