相对OpenMIPS教学版而言,OpenMIPS实践版最大的特点是引入了Wishbone总线接口,其接口如下图所示:
各接口描述如下表所示:
序号 | 接口名 | 宽度(bit) | 输入/输出 | 作用 |
1 | rst | 1 | 输入 | 复位信号,高电平有效 |
2 | clk | 1 | 输入 | 时钟信号 |
3 | iwishbone_o |
| 输出 | 指令wishbone总线的输出信号 |
4 | iwishbone_i |
| 输入 | 指令wishbone总线的输入信号 |
5 | int_i | 8 | 输入 | 中断信号 |
6 | SI_TimerInt | 1 | 输出 | 时钟中断信号 |
7 | dwishbone_o |
| 输出 | 数据wishbone总线的输出信号 |
8 | dwishbone_i |
| 输入 | 数据wishbone总线的输入信号 |
各个文件夹具体说明如下:
- rtl
所有OpenMIPS实践版的源代码文件在该文件夹下,包括流水线文件iu.vhd、除法模块 div.vhd、寄存器文件Regfile.vhd、顶层文件OpenMIPS.vhd、宏定义文件stdlib.vhd
- min_sopc
包括多种IP核:GPIO、UART、SDRAM控制器、flash控制器、Wishbone总线互联矩阵等,以及一个用来测试OpenMIPS的最小SOPC的顶层文件OpenMIPS_min_sopc.vhd,在其中例化上述IP核,通过Wishbone总线互联矩阵与OpenMIPS连接在一起,形成一个SOPC。关于该SOPC的结构在后会有介绍。此处的各种IP核都是从OpenCores下载的,均符合Wishbone总线接口规范。
- tools
包含与具体评估板有关的一些工具,笔者主要是使用Altera的DE2作为评估板,所以tools下有一个Altera/DE2的目录,其中包含DE2的DE2_control_panel这个工具软件,可以通过该软件读写DE2上的flash芯片。
该目录下还包括一个BinMerge.exe软件,该软件在BootLoader、SimpleOS的实验中会有作用,用来将BootLoader、SimpleOS产生的二进制文件合并在一起,具体作用会在后面的博文中介绍。
- doc
包含一些说明文档,具体有:《MIPS32指令集》、《MIPS Architecture for Programmers Volume III》、《OpenMIPS快速入门手册(实践版)》、《10天实现处理器——OpenMIPS成长记》,以及min_sopc文件夹下各种IP核的说明手册。
- asm_test
包含几个测试程序,均使用汇编编写,分别用来测试GPIO、UART、SDRAM,以及一个综合程序。该综合程序由BootLoader、SimpleOS组成,用来模拟一个操作系统的启动。在本次博文系列的第三部分“在DE2上验证OpenMISP”就以这个综合程序为例。
这些IP核都是从OpenCores上下载的,需要根据具体评估板的情况进行设置,比如笔者根据DE2的具体情况进行例化,将SDRAM例化为16bit宽度数据总线。此外,在笔者的实验中,将GPIO口的输出设置为32个,连接到DE2上的4个7段数码管。
OpenMIPS的数据总线接口连接到Wishbone总线互联矩阵的主接口0(即m0),OpenMIPS的指令总线接口连接到Wishbone总线互联矩阵的主接口1(即m1),SDRAM控制器连接到Wishbone总线互联矩阵的从接口0(即s0),UART控制器连接到Wishbone总线互联矩阵的从接口1(即s1),GPIO控制器连接到Wishbone总线互联矩阵的从接口2(即s2),FLASH控制器连接到Wishbone总线互联矩阵的从接口3(即s3),所以各个外部设备的寻址空间如下:
- SDRAM:0x00000000-0x0fffffff
- UART:0x10000000-0x1fffffff
- GPIO:0x20000000-0x2fffffff
- FLASH:0x30000000-0x3fffffff
SDRAM需要在使用前进行初始化,其输出sdram_init_done可以用来指示是否初始化完毕,将该输出送到GPIO控制器,作为一个输入,这样OpenMIPS就可以通过读取GPIO的输入,判断SDRAM是否初始化完毕。
DE2评估板的flash是nor格式的,所以,可以将flash作为启动盘,在笔者的实验中,OpenMIPS从flash读取第一条指令,也就是启动后从0x30000000处取指。这是与教学版不同的,教学版是从0x0处开始取指。
各个IP核的使用手册在doc目录下都有提供。
OpenMIPS实践版可以在http://bbs.eetop.cn/forum-257-1.html下载