Altera公司的NiOSⅡ微处理器软核和Xilinx公司的MicroBlaze微处理器软核都是32位哈佛结构的RISC处理器,数据和地址总线是分开的。两种处理器软核都包含有ALU算术逻辑单元、程序计数器、通用寄存器、指令Cache和数据Cache,以及可选的乘法器、除法器等硬件。这两个微处理器软核通常利用片上存储器与高速的系统总线连接,此外又有外设总线。由于是哈佛结构,所以系统总线和外设总线的数据和指令通道是分开的。下表给出了 NiOSⅡ与 MicroBlaze微处理器核特性的比较。
|
|
NiOSⅡ |
MicroBlaze | ||||||||
|
总线 形式 |
Avalon Swich (多种传输方式) |
Avalon Chanel TCM (指令/数据) |
FSL | |||||||
|
LMB总线 |
OPB总线 | |||||||||
|
自动生成仲裁、地址译码、总线尺寸、等待状态和中断等 |
快速 |
标准 |
经济 |
指令 |
数据 |
指令 |
数据 | |||
|
4/4 |
4/0 |
0/0 |
可选 |
可选 |
可选 |
必备 | ||||
|
流水 |
快速:6级;标准:5级;经济:无 |
3级 | ||||||||
|
寻址 范围 |
Flash Other Peripheral SDRAM System Memory |
0x0~0x000400000400 000~800000 800000~1000000 >1000000 |
32位寻址 范围从x00000000~xFFFFFFFF | |||||||
|
内部存储器限制 |
经济:2个M4K 标准:2个M4K+ Cache 快速:3个M4K+ Cache |
分配LMB的地址空间受BRAM数量限制 分配到OPB的每个例示于BRAM外设映射受限制 | ||||||||
|
专用 地址 |
在“exception location”中编码所有的例外进程 复位(必须在闪存)、例外和断点 例外包括:硬件中断、软件例外 |
x00000000~ x00000018必为用户写 复位:0x00000000 中断:0x00000008 例外:0x00000010 | ||||||||
|
寄存器 |
通用(16) R0:0x00000000 R1:汇编暂存 R2、R3:返回值 R4~R7:寄存器幅度 R8~R15:保存调用 |
控制(16) R24:et 例外暂存 R25:bt 断点暂存 R26:gp 全局指针 R27:sp 堆栈指针 R28:fp 帧头指针 R29:ea 例外返址 R30:ba 断点返址 R31:ra 返回地址 |
专用 R0:0x00000000 R1:堆栈指针 R2:R/O R13:R/W R14:中断返址 R15:子程序返址 R16:诊断返址 R17:例外返址 R18:保留 |
易失 R3 ~R12 非易失 R19~R31 程序计数器 PC 主机状态寄存器 MSR | ||||||
|
软件工具 |
NiOSⅡIDE 产生硬件抽象层(HAL)库包括: 器件驱动程序、初始化软件、文件系统、stdio stderr |
GNU 交叉编译GCC(mb-gcc)C转汇编 汇编器AS:汇编转目标码 链接器LD:目标码转可执行.elf 链接脚本linker script: 控制链接过程 | ||||||||
|
诊断 |
无诊断+ 4级诊断 |
XMD/GNU Debugger-GDB | ||||||||



