欢迎来到天天文库
浏览记录
ID:5895810
大小:1.11 MB
页数:64页
时间:2017-11-13
《第9章 sopc系统构架》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、FPGA-CPLD原理及应用山东工商学院电子信息系张守祥zhangsx@sdibt.edu.cn第9章SOPC系统构架主要内容NiosⅡ结构Avalon总线NiosⅡ编程模型9.1NiosⅡ结构NiosII软核处理器简介NiosII32位软核处理器NiosII/f(快速)NiosII/e(经济)NiosII/s(标准)性能最高,但占用的逻辑资源最多。占用的逻辑资源最少,但性能最低。平衡的性能和尺寸。NiosII/s内核比第一代的NiosCPU更快,占用的资源更少。NiosII处理器系列包括三种内核NiosII处理器结构地址发生器&程序控制
2、器异常控制器中断控制器通用寄存器组r0..r31控制寄存器组ctl0..ctl5指令Cache数据Cache算术逻辑单元(ALU)用户逻辑JTAG接口NiosII处理器核紧耦合指令存储器紧耦合指令存储器紧耦合数据存储器紧耦合数据存储器指令总线数据总线clockreset软件调试接口中断源[0..31]IO口cpu_resetrequestcpu_resettakenNiosII处理器结构数据处理主要由算术逻辑单元完成。用户逻辑接口用来连接用户定制的逻辑电路与NiosII内核。NiosII处理器结构框图NiosII采用哈佛结构,数据总线和指
3、令总线分开。为了调试方便,NiosII处理器集成了一个JTAG调试模块。地址发生器&程序控制器异常控制器中断控制器通用寄存器组r0..r31控制寄存器组ctl0..ctl5指令Cache指令Cache算术逻辑单元(ALU)用户逻辑JTAG接口NiosII处理器核紧耦合指令存储器紧耦合指令存储器紧耦合数据存储器紧耦合数据存储器指令总线数据总线clockreset软件调试接口中断源[0..31]IO口cpu_resetrequestcpu_resettakenNiosII处理器结构为了提高系统的整体性能,NiosII内核不仅可以集成数据和指令
4、Cache,还带有紧耦合存储器TCM(TightlyCoupledMemory)接口。TCM可以使NiosII处理器既能提高性能,又能获得可预测的实时响应。NiosII处理器结构框图地址发生器&程序控制器异常控制器中断控制器通用寄存器组r0..r31控制寄存器组ctl0..ctl5指令Cache数据Cache算术逻辑单元(ALU)用户逻辑JTAG接口NiosII处理器核紧耦合指令存储器紧耦合指令存储器紧耦合数据存储器紧耦合数据存储器指令总线数据总线clockreset软件调试接口中断源[0..31]IO口cpu_resetrequestc
5、pu_resettakenNiosII处理器结构NiosII把外部硬件的中断事件交由中断控制器管理,内核异常事件交由异常控制器管理。NiosII的寄存器文件包括32个通用寄存器(r0—r31)和6个控制寄存器(ctl0—ctl5)。NiosII处理器结构框图地址发生器&程序控制器异常控制器中断控制器通用寄存器组r0..r31控制寄存器组ctl0..ctl5指令Cache数据Cache算术逻辑单元(ALU)用户逻辑JTAG接口NiosII处理器核紧耦合指令存储器紧耦合指令存储器紧耦合数据存储器紧耦合数据存储器指令总线数据总线clockres
6、et软件调试接口中断源[0..31]IO口cpu_resetrequestcpu_resettakenNiosII的寄存器文件尽管硬件对寄存器的用法几乎没有规定,但是它们在实际使用过程中还是遵循一些约定俗成的惯例。如果想使用他人的子程序,编译器或操作系统,最好还是遵守这些惯例。通过下面的通用寄存器一览表来了解NiosII的32个通用寄存器。NiosII的通用寄存器通用寄存器组寄存器助记符功能寄存器助记符功能r0zero清零r16子程序要保存的寄存器r1at汇编中的临时变量r17子程序要保存的寄存器r2函数返回值(低32位)r18子程序要保
7、存的寄存器r3函数返回值(高32位)r19子程序要保存的寄存器r4传递给函数的参数r20子程序要保存的寄存器r5传递给函数的参数r21子程序要保存的寄存器r6传递给函数的参数r22子程序要保存的寄存器r7传递给函数的参数r23子程序要保存的寄存器r8调用者要保存的寄存器r24et为异常处理保留r9调用者要保存的寄存器r25bt为程序断点保留r10调用者要保存的寄存器r26gp全局指针r11调用者要保存的寄存器r27sp堆栈指针r12调用者要保存的寄存器r28fp帧指针r13调用者要保存的寄存器r29ea异常返回地址r14调用者要保存的寄存
8、器r30ba断点返回地址r15调用者要保存的寄存器r31ra函数返回地址通用寄存器一览r0或zero:总是存放0值,对它读写无效。NiosII没有专门的清零指令,所以常用它来对寄存器清零。r1
此文档下载收益归作者所有