Op enRISC1200 采用了自主设计的OpenRISC1000 体系结构和自定义的ORBIS32 指令集。OpenRISC1200 是Harvard 结构设计, 拥有一个5 级流水线的整数单元。OpenRISC1200 有一个32×32 的MAC 单元, 具备基本的DSP处理功能。
OpenRISC1200 还可以根据需要自定义用户指令。OpenRISC1200 具有1K~64K 可配置大小的数据Cache 和指令Cache 以及可供选择的内存管理单元。OpenRISC1200 同时还提供了一个用于降低功耗的电源管理单元(PowerManager) 和一个支持片内调试的调试单元(Debug Unit)。OpenRISC1200 采用了Silicore 公司提出的W ISHBON E 开放性总线标准, 包括一个数据W ISHBON E 接口和一个指令W ISHBON E 接口。总线管理模块(Traffic Cop ) 将内存控制器, 调试单元,UART 接口, PCI 接口, Ethernet 接口等模块连接在一起。OpenRISC1200 具有较好的可配置性, 使用者可以根据自己的需要配置Cache 的大小, 是否使用MMU ,并可以定制自定义的指令。不过目前OpenRISC1200 还没有图形化的配置界面, 使用者必须根据需要修改配置定义文件or1200 defines.v。
OpenRISC1200 有完善的软件开发环境(SDK)和操作系统的支持。使用者可以通过包括Sourcenavigator, Gcc, Binu tills, Gdb 等在内的GNUToolchian 工具方便的进行基于OpenRISC1200 内核的编码、编译和调试。同时,OpenRISC1200 拥有专门的仿真器Or1k sim , 可以进行OpenRISC1200 的仿真。OpenRISC1200 还支持Linux, LClinux,RTEMS, RedHaeCos 等多种操作系统。
NiosII
Nios 系列处理器是Altera 公司推出的基于RISC 体系结构的通用嵌入式处理器软核, 它是Altera 的可编程逻辑和可编程片上系统(SoPC) 设计综合解决方案的核心部分。Altera 前后推出了两代Nios 系列处理器:Nios 和Nios II。Nios 是其第一代产品, 是准32bit 的RISC 处理器, 具有16bit 指令集和16*32 bit 数据通路。NiosII是第二代完全32bitRISC 处理器, 具有32bit 的指令集、数据通路和地址空间。我们选用了NiosII 进行比较和分析。图3是典型的基于NiosII的系统。

图3 典型的基于NiosII的系统
NiosII处理器是5级流水线设计, 采用数据和指令分离的Harvard 结构。NiosII 拥有自己专用的体系结构与指令集, 支持32bit 的硬件乘除法指令,有32 个通用寄存器。用户还可以根据自己的需要自定义最多256 条指令。
NiosII 采用了Altera 公司自己的Avalon 片内总线标准, 用于连接定时器, UART 接口, LCD 接口,内存控制器和以太网接口等片内模块。NiosII 同时还提供了一个Debug 模块, 支持JTAG 在线调试。Altera 公司为NiosII 提供了极为完善的软硬件开发环境。NiosII 处理器方案是基于HDL 源码构建的,提供了三种性能和资源消耗不同的基本软核:NiosII/f (快速型) , NiosII/s (标准型) 和NiosII/e( 经济型)。通过QuartusII 开发软件中的SOPCBuilder 系统开发工具, 使用者可以在任何一种软核的基础上方便的配置符合自己的需要NiosII 内核。
Altera 公司同时为NiosII 提供了基于GNUC/C++toolchain和EclipseIDE 的软件开发环境。用户可以在这个开发环境下方便的完成编码、仿真和调试等工作。NiosII 的开发套件内免费提供了一个Luc/OS2II 的实时操作系统支持, 同时NiosII 还支持LClinux,Nucleus Plus, KROS 等第三方操作系统。和上面所提到的LEON2 和OpenRISC1200 两种完全开放的处理器内核不同,NiosII 内核属于“半开放”的内核。用户可以免费获得NiosII 的开发平台,不过NiosII 只支持Altera 的Stratix 和Cyclone器件。用户只能在Altera 的FPGA 芯片上免费使用NiosII,而且无法获得NiosII 的HDL 源代码。另外设计者若要在ASIC 设计中使用NiosII 内核, 则需要向Altera 公司支付一定的授权 费用。