Leon2处理器IP核技术
Leon2是GaislerResearch公司于2003年研制完成的一款32位、符合IEEE-1754(SPARCVS)结构的处理器IP核。它的前身是欧空局研制的Leon以及ERC32。Leon2的目标主要是权衡性能和价格、高的可靠性、可移植性、可扩展性、软件兼容性等.其内部硬件资源可裁剪(可配置)、主要面向嵌入式系统,可以用FPGA/CPLD和ASIC等技术实现。
Leon2处理器的片上资源如下:分离的指令和数据Cache、硬件乘法器和除法器、中断控制器、具有跟踪缓冲器的调试支持单元(DSU)、2个24位定时器、2个通用异步串口(UART)、低功耗模式、看门狗电路、16位I/O端口、灵活的存储控制器、以太网MAC和PCI接口。Leon2的VHDL模块可以在大多数综合工具上进行综合,可以在任何符合VHDL-87标准的仿真器上进行仿真;采用AMBA AHB/APB总线结构的用户设计新模块,可以很容易加入到Leon2中,完成用户的定制应用。
为了使Leon2得到国内业界的了解和进一步的应用,本文将从Leon2的结构、技术特点、软硬件的开发过程和应用实例等四个方面进行介绍。在技术特点中,主要介绍了它所遵循的SPARCV8规范、采用的AMBH2.0内部系统总线协议、容错设计方法和VHDL编程风格等。
1 Leon2的结构
图1是Leon2的片上结构框图。整个系统结构由AMBA AHB和APB支撑,连接着SPARC处理器、Cache系统及片上外设等设备。
(1)处理器单元
处理器单元由整数单元IU、浮点单元FPU、协处理器单元CP构成。整数单元的特点有:5级指令流水、分离的数据和指令Cache、支持2~32个寄存器窗口、可选的4个观察口寄存器、可配置乘法器、可选的16×16位MAC(40位累加器)、基2除法器。可支持的浮点处理器有GaislerResearch的GRFPU,Sun Microsystems的Meiko FPU或其他通用浮点处理单元。Leon2提供了一个通用的用户可定义的协处理器,同IU并行运行增强了系统功能。
(2)Cache子系统
可配置的模式有直接映射模式和2~4组相联的多组相联模式;可选的三种替换算法是LRU、LRR和伪随机。
(3)片上外设
片上外设包括:2个中断控制器、2个UART、2个Timer和1个Watchdog、16位的I/O口、存储器控制器(PROM、SRAM、S13RAM)、PCI桥接器、Ethernet接口、高级片上调试支持单元(DSU)和跟踪缓冲器等.中断控制器可以最大处理46个内部和外部中断。2个串行通信口 (UART),支持8位数据帧、1位校验位、1位停止位,支持硬件流控功能。调试支持单元(DSU)能够把处理器设置到调试模式,通过它可以读写处理器的所有寄存器和Cache。DSU还包括一个跟踪缓存,可以保存已执行了的指令和AHB上传输的数据。
2 Leon2的技术特点
Leon2的技术特点主要有:采用SPARCV8结构、采用内部AMBA总线结构、容错设计和VHDL编程风格。
2.1 SPARC V8
SPARC是可扩展处理器体系架构的首字母缩略词,是一个从RISC派生出的CPU指令集结构(ISA)。指令集结构是指:定义了指令、寄存器、指令和数据存储器、指令执行对寄存器和存储器的影响、控制指令执行的算法等内容,但不定义时钟周期、每条指令的执行时钟周期数(CPI)、数据通路等内容。作为一个结构,SPARC允许在具有不同性能价格比的广泛应用中,实现不同系列的芯片和系统,包括科学、工程、编程、实时和商业应用等。SPARC的设计目标是优化编译器和易于硬件流水线实现。
SPARC处理器由整数单元(IU)、浮点和协处理器单元(FPU和CP)构成。它们各自都有自己的寄存器,其中IU有8个全局寄存器、2~3N个寄存器窗口(由用户设定),浮点和协处理器单元的选择依赖于具体应用。
(1)寄存器窗口
它是SPARC的最大技术特点。SPARC处理器包括两种寄存器:一种是通用寄存器,另一种是控制/状态寄存器。IU的通用寄存器叫r寄存器。一个IU的实现可能包括40~520个32位r寄存器。这些寄存器又被分成8个全局寄存器,再加上2~32个与实现有关的16位寄存器组,每一个寄存器组又进一步分为8个输入寄存器和8个输出寄存器。图2是一个8窗口寄存器结构示意图。在任何一个时刻,一条指令只能访问8个全局寄存器和由当前窗口指针(CWP)指定的当前窗口。这个窗口是由8个输入寄存器、8个局部寄存器和8个输入寄存器构成。从图2中可以看出,两个相邻窗口的入和出寄存器是共享的。当前是按窗口号顺序(或前或后)转换的,正好上一次的输出寄存器成为当前窗口的输入寄存器,这样可以
- 一种消防应急灯具专用控制芯片的设计(11-02)
- 基于FPGA的8段数码管动态显示IP核设计(02-03)
- 基于FPGA和IP Core的定制缓冲管理的实现(08-14)
- 基于Altera ASI IP核的ASI发送卡实现(02-25)
- FPGA的高速多通道数据采集控制器IP核设计(04-22)
- 基于EDA或FPGA的IP保护的实现(09-16)