跟着IC制作工艺水平的快速开展,片上体系(SOC)在ASIC规划中得到广泛运用。微处理器IP核是SOC片上体系的中心部分。可是大多数公司和研究机构没有满意的财力与人力开发自己的处理器,所以业界比较盛行的做法便是购买微处理器的IP核,例如ARM核或MIPS核,但需求数十万美金的许可证费用的投入。
除了贵重的ARM核与MIPS核以外,咱们还有别的一种挑选,便是挑选开放源代码的微处理器的IP核。现在能够实践运用的开放源代码处理器有LEON系列与OPENRISC系列两种。本文就介绍了LEON2微处理器核,快速的树立起一个SOC的渠道的原型关于验证体系功用与加快软件开发都是适当重要的。本文还具体论说了如安在Altera的FPGA开发板上树立依据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处理器的组成部分。
图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代码。
图四 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程序。因为这个部分是整个渠道正常作业的中心,所以下面我专门对它做具体的解说。
图 5 LEON2与存储器的衔接
LEON2的渠道中有两个memory,别离是片内ROM,片外SRAM,LEON2对存储器是一致寻址的。分配如下:
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