自制处理器OpenMIPS移植ucos-II过程之2——OpenMISP实践版及SOPC搭建
来源:互联网 发布:106短信平台软件 编辑:程序博客网 时间:2024/05/16 11:28
这是第二部分,介绍了OpenMIPS实践版的主要特点、结构、文件组织,同时以OpenMIPS实践版为核心,搭建了一个小型的SOPC,该SOPC具有SDRAM控制器、GPIO控制器、flash控制器、UART控制器等,可以满足我们的验证需要。
1 OpenMIPS实践版主要特点
相对 OpenMIPS 教学版而言, OpenMIPS 实践版最大的特点是引入了 Wishbone 总线接口,其接口如下图所示:
各接口描述如下表所示:
其中iwishbone_o、dwishbone_o的类型定义如下:
type wishbone_host_out_type is record address : std_logic_vector(31 downto 0); data : word; we : std_logic; sel : std_logic_vector(3 downto 0); stb : std_logic; cyc : std_logic; ack : std_logic; end record;
iwishbone_i、dwishbone_i的类型定义如下:
type wishbone_host_in_type is record data : word; ack : std_logic; end record;
具体的大家可以去下载OpenMIPS快速入门手册(实践版)
具体链接在这里:http://download.csdn.net/download/pieces_thinking/9974024
OpenMIPS内部结构如下图所示,可见内部包含一个整数单元IU、一个除法单元Div、一个寄存器文件单元Regfile,这三个单元分别对应iu.vhd、div.vhd、regfile.vhd三个源文件,其中IU内部实现了五级整数流水线,Div模块实现了32位整数除法,采用的是试商法,Regfile实现了32个32位整数寄存器。此外还有OpenMIPS.vhd文件实现了顶层模块OpenMIPS。
2 OpenMIPS实践版文件目录
OpenMIPS实践版的文件目录如下:
各个文件夹具体说明如下:
3 OpenMIPS_min_sopc
OpenMIPS只是一个处理器核,为了能够具有实际作用,还需要提供必要的组件,通过这些组件的配合,完成特定功能。
根据具体的评估板DE2所具有的硬件资源,我们添加了GPIO控制器、UART控制器、SDRAM控制器、flash控制器,通过Wishbone总线互联矩阵wb_conmax与OpenMIPS通信,从而形成一个小型的SOPC,结构如下图所示:
这些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目录下都有提供。
PS:本人手上没有DE2的开发板,就用黑金的开发板移植了下,具体步骤如下:
1 新建文件夹,将所需的所有文件拷贝到该文件夹下;
2 打开Quartus II新建工程,其中工程目录指向刚刚新建的文件夹内,然后在添加文件选项时将所有文件添加到工程内
3 修改相对应的引脚,根据自己的开发板进行设置就好了,然后编译下载就搞定了,测试的话可以参考实践版的教程。
PS:需要所有文件的请留言
OpenMIPS实践版可以在http://bbs.eetop.cn/forum-257-1.html下载
未完待续。。。
- 自制处理器OpenMIPS移植ucos-II过程之2——OpenMISP实践版及SOPC搭建
- 自制处理器OpenMIPS移植ucos-II过程之2——OpenMIPS实践版及SOPC搭建
- 自制处理器OpenMIPS移植ucos-II过程之1——OpenMIPS介绍
- 自制处理器OpenMIPS移植ucos-II过程之3——DE2验证OpenMIPS
- 自制处理器OpenMIPS移植ucos-II过程之1——OpenMIPS介绍
- 自制处理器OpenMIPS移植ucos-II过程之4——ucos-II文件目录建立
- 自制处理器OpenMIPS移植ucos-II过程之5——修改ucos-II源代码
- 自制处理器OpenMIPS移植ucos-II过程之7——DE2上验证ucos-II+OpenMIPS
- 自制处理器OpenMIPS移植ucos-II过程之6——创建Makefile
- 自己动手写处理器之第三阶段——教学版OpenMIPS处理器蓝图
- uCOS-II在MSP430上的移植2——详细过程
- uCOS II在ARM处理器上移植过程中的中断处理
- Ucos II 移植之二
- uCOS-II移植过程出现的问题
- UCOS-ii在ARM处理器上的移植
- nios2探索之uCOS-II移植
- LPC17XX 学习之 uCOS-II 移植实例
- 移植uCOS-II到C51 - 2
- 转载自xiaoluo501395377的动态代理机制详解
- java复习笔记1
- sentry开发
- 内存块设备
- 18届校招准备中之前端面试题汇总
- 自制处理器OpenMIPS移植ucos-II过程之2——OpenMISP实践版及SOPC搭建
- java基础
- 用JS制作一个信息管理平台
- 人脸特征点检测(Facial landmark detection)
- 单例和多线程
- 机器学习相似度度量
- 【YDKJS笔记】一、入门与进阶
- 线程与进程的概念和区别
- 【模板】倍增法求lca