多处理器系统中Nios II软核处理器启动方案的设计_第1页
全文预览已结束

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、多处理器系统中nios ii软核处理器启动方案的设计nios ii 处理器是公司设计的一款基于的32位risc软核处理器,具有32位命令集、数据通路及地址空间,是其可编程系统芯片(sopc)的核心。nios ii系统采纳altera公司设计的一套avalon交换结构,avalon总线上的全部信号都与系统时钟同步且地址、数据和控制信号用法自立的端口;支持各种传输方式;采纳从端口仲裁机制,对于有多个主设备的系统可以提高系统的吞吐量。采纳基于fpga 的nios ii软核处理器很简单在嵌入式系统设计中实现多处理器系统。在这样的多处理器系统中,普通外部处理器做主处理器,nios ii处理器为从处理器,

2、两个处理器有共用的存储器可以举行数据交互。本文将通过对nios ii系统启动的讨论设计一计划,用外部处理器配置fpga,加载程序代码到nios ii系统中的程序存储器中,终于完成nios ii系统的启动。在多处理器系统的启动计划在多处理器系统中,为了降低成本,可以省去nios ii的一个非易失性存储器外设,如flash、eprom等,nios ii处理器通过avalon交换结构衔接易失性存储器,一个外部主处理器及一些须要的接口外设。因此延迟nios ii的启动是须要的,解决方法是在nios ii系统中设计一启动延迟模块,把此模块的基址设为nios ii的复位地址。通过此模块,nios ii处理

3、器上电复位后启动被延迟,直到数据被传输完毕,外部处理器通过启动延迟模块向nios ii发送一个可以开头进入程序存储器的命令,然后跳转到程序存储器开头执行,完成后续的设备初始化及应用程序的执行。外部处理器通过时序转接桥衔接在avalon交换结构上和nios ii处理器共同构成的一个双处理器系统1所示。黑色箭头表示nios ii启动延迟模块是通过avalon交换结构衔接的。图1 多处理器系统的启动计划结构启动计划的硬件设计启动延迟模块2所示,它有两个从端口s1、s2:s1一端衔接在启动延迟模块中的rom单元上,另一端通过avalon总线衔接在nios ii处理器的命令主端口;s2一端衔接在启动延迟

4、模块的控制寄存器上,另一端通过avalon总线衔接在外部处理器和nios ii处理器的数据主端口。图2中箭头的方向表示数据的流向。图2 nios ii启动模块的硬件结构在此需做两点解释:* 在启动延迟模块中有两个寄存器,这两个寄存器定义如下:解释:控制寄存器1用于存放niosii程序存储器中_start程序的入口地址。控制寄存器2中跳转标记位(31_1位保留) 。这两个寄存器值由外部处理器来写入,其中偏移量为0的寄存器存放nios ii程序存储器中_start程序的入口地址,此值由外部处理器写入;偏移量为1的寄存器只用了第0位,其它位保留,当外部处理器配置好nios ii处理器系统后,会向此寄

5、存器的第0位写入1,否则保持为0。* rom中的数据是外部处理器在配置fpga的时候写入的,因此只要fpga配置完成后,启动代码就存放进rom中了。rom的大小要按照启动程序代码的大小来打算,设计中应尽可能降低这段程序的代码存储量。下边是用 硬件描述语言编写的启动延迟模块的硬件代码的主体框架结构:/ 读端口():boot_rom the_boot_rom(.clock (s1_clk), file:/s1_clk为来自avalon总线模块上的s1端口的时钟信号.aclr (s1_reset), file:/s1_reset为来自avalon总线模块上的s1端口的复位信号.q (s1_readd

6、ata), file:/s1_readdata为流向avalon总线模块的s1端口的32位数据.address (s1_address)file:/s1_address为来自于avalon总线模块的s1端口的地址);file:/控制寄存器读写端口(s2):control_register the control_register(.clk (s2_clk),file:/s2_clk为来自avalon总线模块上的s2端口的时钟信号.reset (s2_reset), file:/s2_reset为来自avalon总线模块上的s2端口的复位信号.read (s2_read), file:/s2_r

7、ead为来自avalon总线模块上的s2端口的读使能信号.write (s2_write), file:/s2_write为来自avalon总线模块上的s2端口的写使能信号.schipselect (s2_chipselect), file:/s2_chipselect为来自avalon总线模块上的s2端口的片选信号.address (s2_address), file:/s2_address为来自avalon总线模块上的s2端口的地址.readdata (s_readdata), file:/s2_chipselect为流向avalon总线模块上的s2端口的32位读数据.writedata

8、(s2_writedata) file:/s2_writedata为来自avalon总线模块上的s2端口的32位写数据);启动计划的软件设计启动计划的软件设计目标是当系统复位后,在外部处理器向nios ii程序存储器和数据存储器传输数据的过程中,nios ii处理器运行要受到外部处理器的控制。当一切就绪后,外部处理器发出一条释放nios ii处理器的指令,接下来nios ii处理器就可以正常运行了。软件部分主要就是存放在启动延迟模块中rom的代码,此代码主要是检测启动延迟模块中控制寄存器2的第0位是否为1。若为1,则跳转到控制寄存器1中所存储的地址处执行。若设控制寄存器的基址为control_reg_base,为了削减代码量,这段代码简单用nios ii的汇编命令来实现,代码部分在此从略。最后本计划在我们自己设计的一块开发板上经过测试,能够正确完成nios ii 处理器的启动。结语采纳多处理器的系统虽然可以提高系统的性能,但传统的多处理器系统普通只

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论