新闻中心

EEPW首页 > 嵌入式系统 > 设计应用 > Leon2处理器IP核的结构、技术特点及其软硬件开发过程

Leon2处理器IP核的结构、技术特点及其软硬件开发过程

作者:时间:2015-05-09来源:网络收藏

  2.2 AMBA

本文引用地址:http://www.eepw.com.cn/article/273876.htm

  AMBA(Advanced Microntroller Bus Architecture)规范,是一种已制定的、开放的规范,充当着SoC设计的架构,正迅速成为SoC和IP库开发事实上的标准,为高性能嵌入式微控制器设计定义了一种片上通信标准.AMBA规范中定义了三种不同的总线,即AHB、ASB和APBAHB是为高性能、高时钟频率的系统模块提供的,担任着高性能系统的背板总线、支持多处理器、片上各种存储器和片外外部存储器接口连接到低功耗辅助宏单元。ASB也是为高性能系统模块提供,当AHB的高性能特点无需要时,就可以用ASB来代替;它也支持多处理器、片上各种存储器和片外外部存储器接口连接到低功耗辅助宏单元。APB是为低功耗的外围设备提供的,它优化到为最小功耗和减小接口的复杂性来支持辅助功能。

  图3是AMBA总线微控制器的典型结构。它含有一套高性能的背板总线,AHB或ASB;它能支撑外部存储器带宽,在这套总线挂接着CPU、片上存储器和其他DMA设备。通过一个桥接器,可以把AHB和APB总线连接起来。APB上面连接着大多数的辅助设备,如UART、定时器、PIO等。

  

 

  2.3 容错问题

  为了适用于航空航天的高可靠性应用,采用多层次的容错策略;奇偶校验、TMR(三模冗余)寄存器、片上EDAC(检错和纠错)、流水线重启、强迫Cache不命中等.尽管现在几乎所有CPU都有一些常规的容错措施,如奇偶校验、流水线重启等,像IBM S/390 G5还采用了写阶段以前的全部流水线复制技术.IntelItanium采用的混合ECC和校验编码等技术;但远没有那样,采用如此全面的容错措施。

  将时序(存储)单元的状态翻转作为数字容错的主要内容,根据时序逻辑的不同特点和性质,采用了不同的容错技术和手段.

  ①Cache的容错。大的Cache对高性能CPU来说是至关重要的,而且位于处理器的关键(时间)通路上。为了减少复杂性和时间开销,错误检测的方法采用2位的奇偶校验位,l位用作奇校验,l位偶校验,因此可以检查所有的错误情况,在读Cache的同时进行校验。当校验出错误,强制Cache丢失,并从外部存储去获取数据。

  ②处理器寄存器文件的错误保护。寄存器文件是处理器内部的寄存器堆,内部的寄存器对于指令的运行速度和用户程序设计的灵活程度都是很重要的。内部寄存器的使用频率很大,其状态的正确性是也很关键。Leon2采用1、2奇偶校验位和(32.7)BCH校验和进行容错。

  ③触发器的错误保护。处理器的2500个触发器均采用三模冗余的方式进行容错,通过表决器来决出正确的输出。

  ④外部存储器的错误保护。采用挂上的EDAC单元实现。EDAC:采用标准的(32.7)BCH码,每32位字可纠正1位错误和检测2位错误。

  ⑤主检测模式。是指两个相同的处理器同时并行执行相同的指令,只让其中的主模式处理器输出结果,不让检测模式的处理器输出结果。在内部,将检测模式处理器的输出同主模式处理器输出进行比较,以检查错误是否存在。这种工作模式,可以应用于要求更高可靠性的情况。

  ⑥在软件上,还要考虑Cache的清洗问题。因为上面介绍的五种方法,只有在对相应的单元进行访问时才进行错误检查。如果存储单元的数据不常使用,这些单元的错误会逐渐增加,因此必须使用一些软件的方法来实现。

  2.4 编码风格

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

  “二进程”的编码风格的模型可用图4来表示。它基本与状态机模型一样,只是组合进程部分,采用变量形式进行结构化顺序编码,来完成下一个时钟周期的输出和下一个状态进行计算。时序进程部分是在时钟的作用下,完成状态转换和输出驱动。

  

 

  3 软硬件开发

  3.1 VHDL

  Leon2除了VHDL源代码外,还提供了顶层Makefile文件、Modelsim仿真器支持文件、Boot-monitor文件、VHDL测试文件、综合支持文件、Leon2调试用的C语言源文件等,便于对Leon2进行硬件和软件方面的测试。

  Leon2的内部结构可以通过模块配置,使处理器具有不同的功能结构。配置的方式可以采用tkconfig脚本进行图形界面的方式进行,也可以直接对包文件device.vhd进行手动编辑来完成。配置主要是通过修改一系列的常数的声明值来实现的。Leon2中许多模块功能是可以进行配置的,这些配置信息是在包文件Target.vhd里进行声明的。

  Leon2可配置的内容包括:①所采用的综合工具和目标库。综合的技术可以是:Synplify、Synopsys-DC、Synopsys-FC2、XST和Leonardo等,目标技术可以是Xilinx的Virtex和Virtex II(FPGA)、Atmel的ATC35和ACT25(0.35/0.25μm CMOS)、TSMC 0.25μm CMOS、UMC 0.25/0.18μm CMOS、以及Actel的ProAsie(FPGA)和Axeellerator(反熔丝FPGA)等。②整数单元IU的寄存器窗口、乘法器、除法器、快速跳转和观察点的配置。寄存器窗口可以设置为2~32个,但为了同交叉编译器LECCS兼容必须配置为8个窗口,乘法器可以配置成迭交、16×16加流水寄存器、16×16、32×8.32×16、32×32等形式。③浮点处理单元FPU的配置,可以配置为使用meiko或是lth两种浮点处理器之一。④Cache。Cache组的有效大小可以配置为1~64 KB,但必须是2的次幂,每行可以设置成4~8个字,组的数量可以是1~4。替换算法可以是随机、LRR或LRU,并且指令Cache和数据Cache是独立进行配置的。⑤存储器控制器。⑥Debug配置。⑦片上外设的配置,如中断控制器、看门狗等。⑧引导配置。⑨AMHB总线的相关配置。⑩PCI配置。

  Leon2有四个可综合的顶层文件;

  ◇leon.vhd一一标准的Leon2顶层;

  ◇leon_pci.vhd一一标准的Leon2加上PCI接口构成的顶层;

  ◇leon_eth.vhd一一标准的Leon2加上一个10/100 Mbps以太网MAC构成的顶层;

  ◇leon_etn_pci.vhd一一标准的Leon2加上一个10/100 Mbps以太网MAC以及PCI接口构成的顶层。

  在上述四个顶层的下面,可以很容易地集成用户自己的功能模块。

  3.2 系统软件开发

  同一般的嵌入式系统的软件开发一样,Leon2应用系统的软件开发需要采用交叉编译环境来进行。Leon2应用系统软件开发主要采用LECCS(Leon/ERC32 GUN交叉编译系统)。LECCS是由Cynus、OAR和Gaisler研究公司开发的多平台开发系统,是基于GNU系列的可以自由获取的、并带有一系列附加“点”工具的开发系统。LECCS可以在Linux(-2.2.x或更高)、Solaris(-2.7或更高)和windows(Cygwin-1.1.7更高)等多种平台上运行。要在Windows平台上运行LECCS,必须安装Cygwin。它一个是Unix层面模拟器。

  LECCS包括如下程序包:GCC--3.2.3C/C++编译器、RTEMS--4.6.0-βC/C++实时核、独立C库、GDB-5.3SPARC交叉调试器、远程调试监视器、GDB的DDD图形前端(仅对Unix)、GDB的GDB-TK图像前端(仅对Windows)、引导PROM的builder以及Leon调试支持单元监视器等。还包括一些工具,如交叉汇编器、汇编预处理器、GNU连接器、二进制转换器等等。

  采用LECCS进行Leon2应用系统软件开发的过程如下:

  ①利用GCC编译和链接程序;

  ②利用仿真器了SIM调试程序;

  ③在远程目标系统上调试程序;

  ④为独立应用产生引导PROM程序。

  LECCS支持两种类型的应用:一种是通常的顺序CC++程序,一种是基于R了EMS核的多任务实时CC++程序。

  软件仿真工具可以采用丁SIM。它是一个通用的SPARC架构仿真器,可以对基于ERC-32和Leon的计算系统进行仿真,性能和使用方法可以参见TSIM用户指南。Leon2为应用系统的调试在硬件上作了极大的支持,那就是它的调试支持单元(DSU)和跟踪缓冲器。具体使用时可参见Leon2用户手册和leon DSU Monitor用户手册。

  4 Leon2的应用

  Leon2在国内外都有应用。

  国外应用很多,如基于Leon的数字听写机、指纹安全系统、GPS处理机、BIST(内建自测试)等方面的产品。这里简单介绍洛杉矶加州大学的ThumbPod指纹安全系统,以及Nemerix公司的NJ1030型GPS基带产品。ThumbPod安全系统,是将人的指纹作为身份认证(数字身份)的安全系统。其原型的硬件系统由Xilinx的FPGA(XC2V1000)、Micron的 256 MHz-DDR-SDRAM、Authentec的AF-S2型手指感应器等构成。CPU采用Leon2处理器核,并通过Leon2的协处理器接口(CPI)挂接了AES(高级加密系统)协处理器来执行AES算法,以加快加密速度.系统的最大工作时钟频率可以达100 MHz,工作电压可以是3.3/2.5/1.8/1.5 V等多种电压。NJl030型GPS基带产品,目标是GPS的L1载波C/A码处理,并提供对WAAS和EGNOS两种增强系统的支持,可以和世界上领先的第三方的GPS-RF前端设备兼容。

  国内,航天部771所和中科院国家天文台都正在或计划研制基于Leon2的星载数据处理系统。这种数据处理系统,不再采用体积大、笨重而又功耗巨大的处理器芯片(如DSP),而是直接将Leon2放进FPGA。系统将大部分的处理功能硬件化,利用FPAG的丰富资源,将整个系统放入一片FPGA芯片内。其中的Leon2只进行控制管理和一些必须的计算处理。国家天文台正计划研制基于Leon2的星载系统,系统将处理每日采集到的1780 GB数据。这些数据通过预处理(图像积分、辐射校正、几何校正、磁图处理)、小波压缩、图像格式等,使图像压缩到10GB左右,并下传到地面站。

  结 语

  本文介绍了Leon2开源处理核的技术特点、软硬件开发过程、国内外的应用实例。技术特点主要是SPARCV8规范、AMBH2.0总线结构、容错设计方法和VHDL编程风格;对Leon2应用系统的软硬件开发工具和方法进行了介绍;在应用实例中,介绍两种国外的应用和两种国内的应用,其中包括作者正在进行研制的星载图像处理系统。

存储器相关文章:存储器原理



上一页 1 2 下一页

关键词: Leon2 IP核

评论


相关推荐

技术专区

关闭