开发流程如图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代码。

如何利用FPAG开发板搭建LEON2 SOC开发平台

图四 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程序。由于这个部分是整个平台正常工作的核心,所以下面我专门对它做详细的解释。

如何利用FPAG开发板搭建LEON2 SOC开发平台

图 5 LEON2与存储器的连接

LEON2的平台中有两个memory,分别是片内ROM,片外SRAM,LEON2对存储器是统一寻址的。分配如下: