自制处理器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下载

未完待续。。。

阅读全文
0 0
原创粉丝点击