图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。