皮皮网

【翘板公式源码】【九鲸系统源码】【红月主宰源码】fpgariscv源码

2024-11-23 12:47:55 来源:tensorrt源码解析

1.片上系统设计思想与源代码分析书目录
2.开发板开发板分类
3.数据选择器和数值比较器对编程判断语句有什么意义?
4.QEMU与KVM笔记01-系统虚拟化与QEMU/KVM介绍
5.如何学习嵌入式
6.优秀的 Verilog/FPGA开源项目介绍(十)- H.264和H.265

fpgariscv源码

片上系统设计思想与源代码分析书目录

       本书《片上系统设计思想与源代码分析》详细探讨了片上系统的设计与实现。第一章首先介绍了片上系统的基础知识,包括集成电路技术的发展、基本概念、设计方法的进步以及设计中的关键问题。DemoSoC作为示例,翘板公式源码讲解了嵌入式控制器、架构、存储器映射、总线优先级以及代码更新与调试等内容。

       第二章聚焦开源嵌入式处理器OpenRISC ,详细解析了其架构特点、寻址模式、寄存器集、指令集等,并介绍了0R处理器的核心特性,如CPU/DSP核心、内存管理、高速缓存和调试单元等。

       第三章深入探讨片上总线技术,如WISHBONE总线的基本特点、信号定义、互联类型和操作周期,以及与RAM/ROM的交互方式。此外,还提供了接口示例和总线连接设计的深入讲解。

       第四章和第五章分别详细解析了NandFlash和SDRAM控制器,涉及器件原理、操作、设计源代码分析以及验证过程。这些章节详细展示了片上系统中存储器管理的复杂性。

       后续章节涵盖了IIS音频控制器、LCD控制器等接口设计,以及DMA控制器、USB控制器等高级功能。最后两章展望了片上系统技术的未来发展趋势,并提供了相关技术的九鲸系统源码补充教程。

扩展资料

       《片上系统设计思想与源代码分析》采用Verilog/SystemVerilog和SystemC语言,讲述SoC的设计思想并分析其源代码。本书将片上系统最常见的模块组织起来构成完整的SoC(DemoSoC),并以DemoSoC为例,讲述片上系统的设计思想和设计方法。并对DemoSoC进行了完善的FPGA验证。

开发板开发板分类

       在电子开发领域,各种类型的开发板以其特定的功能和应用广泛。以下是一些主要的开发板分类:

       1. 单片机系列

       系列:Intel的//是早期产品,而ATMEL的ATC、ATS以其实用性能著称。ATMEL的系列还有ATC、ATC等,是精简版型号,市场上常见的还有HYUNDAI的GMS系列、WINBOND的e/e/e等。

       PIC系列:适用于众多领域,如家电控制、电讯通信等,分为基本级(如PICC5X)、中级(如PICC6XX,具备高级接口)和高级(如PICCXX,具有丰富I/O控制)系列。

       AVR系列:ATMEL公司研发的8位RISC单片机,适用于计算机外部设备、工业控制等领域。

       2. ARM开发板

       ARM开发板基于ARM内核,包括ARM7、ARM9、ARM、Cortex-M、Cortex-A和Cortex-R系列,以速度和统一库文件为特点,广泛应用于各种电子设备中,如ATMEL、NXP、红月主宰源码ST和Freescale等公司的产品。

       3. CPLD/FPGA

       CPLD(如Altera的EPMS、Lattice的LCV)和FPGA(如Xilinx的XC系列)是可编程逻辑器件,用于构建自定义逻辑系统,CPLD规模更大,FPGA是半定制电路,具有更高的灵活性。

       4. DSP

       DSP(如TI的//系列和ADI的DSP系列)专为处理数字信号设计,具有高性能和高运行速度,广泛用于音频、视频和信号处理应用。

       5. MIPS

       MIPS是一种RISC处理器,由斯坦福大学开发,被用于各种嵌入式系统、游戏机、路由器等,包括MIPS 4Kc和MIPS Kc等不同规格。

       6. PPC

       PowerPC是IBM、Apple和Motorola合作开发的RISC架构,用于高端服务器到嵌入式应用,如Power4和Gamecube。

扩展资料

       开发板(demoboard)是用来进行嵌入式系统开发的电路板,包括中央处理器、存储器、输入设备、输出设备、数据通路/总线和外部资源接口等一系列硬件组件。开发板一般由嵌入式系统开发者根据开发需求自己订制,也可由用户自行研究设计。开发板是为初学者了解和学习系统的硬件和软件,同时部分开发板也提供的基础集成开发环境和软件源代码和硬件原理图等。常见的开发板有、ARM、FPGA、DSP开发板。

数据选择器和数值比较器对编程判断语句有什么意义?

       FPGA 和 CPLD 方面,旋转照片源码多路选择和数值比较对应不同的硬件描述,如 Verilog/VHDL 的 case 结构和 VHDL 的 With-Select 结构会综合成数据选择器,而 IF 结构会综合成比较器。你可以查看综合后的 RTL 图和网表图了解两者区别。多数情况下使用数据选择器的效率更高,不过当前较为先进的综合器在开启指定优化以后可以选择最优结构。

       通用计算机领域,CPU 的硬件结构是不变的,指令串行执行,算数和逻辑运算通过 ALU图执行,跳转则写入程序计数寄存器实现。控制语句的实现是基于软件层面的,与硬件层面的分支结构没有关系。如果你了解过内存寻址,那么这里可以简要描述,CPU 里面存在一个 PC 寄存器,寄存器内容是当前指令在内存中的地址,如果遇到跳转指令,就将跳转后的地址写 PC, 这样就实现了分支和循环结构。

       专用硬件到通用计算机的演化过程确实存在学科的断层,数字电路和数字系统设计只讲授专用数字电路和可编程逻辑器件,微机和计组却直接开始讲授单片机和微型机。你可以多查找相关的资料,从最简单的 , 或 Z 开始,了解 CPU 是如何一步步演化的,如果学有余力,可以直接阅读基于 RISC-V 或者 MIPS 架构的精简 CPU 的时候Verilog/VHDL 源码。

QEMU与KVM笔记-系统虚拟化与QEMU/KVM介绍

       虚拟化是一种资源管理技术,它将硬件资源抽象和分割成多个虚拟实体,支持多个操作系统共享物理资源,实现资源最大化利用,提供了计算、存储、网络等资源的汽车风水源码按需分配。虚拟化的核心思想是通过分层将复杂、难以管理的资源虚拟化为简单、易用的资源,供上层使用。操作系统的基本原理包括虚拟化、并行化和持久化。虚拟机监控器(VMM),即Hypervisor,负责管理物理资源并向上层虚拟机提供逻辑资源。虚拟机(VM)可以运行不同操作系统的映像,认为自己独享硬件资源。常见的系统虚拟化解决方案有VMware Workstation、QEMU、VirtualBox和HyperV等。

       虚拟化带来的一大好处是提高资源利用率。以当前高配置的计算机为例,实际利用率通常较低,通过统一管理和虚拟化,可以支持更多用户合理利用资源。虚拟机作为物理机的映射,极大地揭示了物理计算机系统中复杂且难以理解的细节。

       虚拟化主要分为服务器虚拟化、桌面虚拟化和网络虚拟化等类型。QEMU-KVM是为云计算服务的系统虚拟化软件的典型代表,QEMU是一个著名的开源虚拟化仿真项目,由bellard.org提供。QEMU能完成用户程序和系统虚拟化的模拟,支持X、ARM、MIPS、RISC-V等多种架构的CPU及单板仿真,提供汇编指令级别的快速仿真。与SystemC、Verilog等工具配合,QEMU能替代FPGA的部分功能。QEMU上的OS、APP与实际设备二进制完全一致,无需为QEMU单独构建镜像。它能仿真单板上的所有数字器件,但对模拟器件的仿真能力有限。QEMU支持快照功能,使系统启动速度显著加快。与hypervisor(如KVM、Xen、Hax或Hypervisor)结合使用,允许guest在host CPU上直接运行,支持测试框架如KLEE、S2E、Fuzz等。

       在Google发布的Android Studio中,QEMU作为官方仿真器,帮助应用程序开发人员在开发电脑上完成真机操作。配合KVM、HyperV等虚拟化加速技术,QEMU提供接近真机的性能体验。QEMU还支持单板上所有数字器件的仿真,与hypervisor一起使用时,可允许guest在host CPU上运行。它支持用于测试和调试的框架,如KLEE、S2E、Fuzz等。

       QEMU的案例包括在Google Android Studio中作为官方仿真器的应用,以及与KVM、HyperV等虚拟化加速技术结合,提供与真机无异的性能体验。通过与hypervisor配合,QEMU允许guest直接在host CPU上运行,支持用于测试和调试的框架,如KLEE、S2E、Fuzz等。

       QEMU的命令行选项参数说明、下载、官方文档等资料可参考相应文档和官方网站。虚拟化与云计算的区别、红帽收购Qumranet、QEMU与其他技术的结合案例、QEMU与主机共享文件夹、内核开发调试、源码阅读等参考资料提供了更深入的了解。

如何学习嵌入式

       ä½œè€…:匿名用户

       é“¾æŽ¥ï¼š/question//answer/

       æ¥æºï¼šçŸ¥ä¹Ž

       è‘—作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。

       å­¦ä¹ åµŒå…¥å¼ç³»ç»Ÿï¼Œé¦–先应该明确什么是嵌入式系统,否则费力去学,却不知所学为何物,岂不惘然?嵌入式系统的定义很多,这也是困扰嵌入式系统学习的一个因素。笔者根据自己开发和教学过程中的理解,以及对各种嵌入式系统的应用进行总结,提出了嵌入式系统的简单定义:嵌入式系统是嵌入式计算机系统的简称,这个定义突出嵌入式计算机系统和普通计算机系统的共性。下表列出了嵌入式系统的一些典型的应用:

       æ™ºèƒ½æœºå™¨äººï¼ˆS D R 4,火星登陆车)

       å¨±ä¹å’Œæ¶ˆè´¹ç”µå­ï¼ˆGameboy Advance,SonyPSP)

       ç½‘络通信产品(Smartphone)

       å†›ç”¨è®¾å¤‡ï¼ˆå†›ç”¨PDA )

       æ±½è½¦ï¼ˆè½¦è½½å¯¼èˆªï¼Œè‡ªåŠ¨é©¾é©¶ï¼Œå¨±ä¹ç³»ç»Ÿï¼‰

       æ™ºèƒ½ä»ªå™¨ï¼ˆè™šæ‹Ÿä»ªå™¨ï¼‰

       å®‰å…¨é˜²æŠ¤ï¼ˆé˜²ç«ï¼Œé˜²ç›—)

       çŽ¯å¢ƒä¿æŠ¤ï¼ˆæŽ¢ç©ºæ°”球)

       é“¶è¡Œå’Œå•†ä¸šæ¶ˆè´¹ï¼ˆATM)

       ä»¥ç«æ˜Ÿç™»é™†è½¦ä¸ºä¾‹æ¥åˆ†æžä¸€ä¸‹åµŒå…¥å¼ç³»ç»Ÿçš„定义。火星登陆车虽然听起来感觉在技术上有些高不可测,但是本质就是嵌入式计算机系统的应用,其核心就是一个计算机系统,而这个计算机系统的组成同传统的计算机系统在本质上没有什么差别。两者的显著不同之处就在于,用于火星登陆车的计算机系统被安装到了火星登陆车上。当然,一个计算机系统能够被安装在火星登陆车上,是需要进行很多特殊设计的。但是从本质上讲,嵌入式系统的核心概念还在计算机系统。嵌入式系统学习的重点也在计算机系统上。一方面,学习者需要牢固掌握计算机系统本身的概念,更重要的是学习嵌入系统的开发过程同传统计算机系统开发过程的差别。这里需要指出的是,很多学习者本来就没有从事过完整计算机系统的开发,高校的教学是以程序设计为中心的,计算机系统的构成,操作系统的原理,编程语言等课程都是为了能够让学生更好的使用计算机系统进行程序设计,在现有的计算平台上来设计实现各种应用,学生一般没有机会学习一个完整的计算机系统是如何构建,并亲身参与到构建的每一个过程。而对于嵌入式系统而言,从事平台开发的人就是要亲自去开发出一个完整的计算机系统,这个过程包括

       1. 需求分析

       2 硬件设计

       3 驱动程序

       4 Bootloader & BSP (板级支持包)

       5 操作系统的移植

       6 应用程序的开发

       7 性能检查

       åµŒå…¥å¼ç³»ç»Ÿæ•™å­¦çš„目的就是教会学生如何根据需求去建立满足某种特殊行业需求的嵌入式计算机系统。让学生学会如何构件硬件平台,进行硬件设计,选择能够满足应用要求的最佳的嵌入式操作系统,并完成Bootloader,BSP和驱动程序的编写,移植,调试等过程。为了满足行业需求,最终要在所建立的系统上编写调试相应的应用程序,并进行性能的测试和检查。

       ä½ æ˜¯è°,你需要学习哪些东西?

       å¦‚果你的工作只是需要在PC 机上编写一个图片浏览程序,那么你就没有必要去了解当系统收到一个ARP请求包后应该如何回应。同样的道理,嵌入式系统的学习也是有很多方面的。就嵌入式系统的设计和实现而言,基本上需要四种不同的工作:系统设计工作,硬件设计工作,驱动程序和操作系统移植工作和应用程序设计开发工作。

       1.系统设计工作

       åœ¨ç³»ç»Ÿçš„设计阶段,系统分析师将根据需求确定系统的硬件的基本构成,根据系统的需求选择使用那种处理器,使用哪种操作系统,使用那些软件开发工具。系统分析师往往是较为完整的参与过嵌入式系统设计的全过程,对于系统应用的行业较为了解,对于嵌入式系统本身的开发流程十分清楚的人。

       2.硬件设计工作

       ç³»ç»Ÿç¡¬ä»¶è®¾è®¡äººå‘˜éœ€è¦æ ¹æ®ç³»ç»Ÿåˆ†æžå¸ˆçš„设计结果,进行硬件原理图的设计。通常需要硬件设计人员熟悉嵌入式系统的硬件构成。硬件设计人员需要了解常用的嵌入式系统处理器,存储器(Flash,SDRAM),以太网MAC芯片,音频/视频编解码芯片,电源管理芯片,总线接口电路 (USB,PCI),液晶显示模块,可编程逻辑器件(FPGA/CPLD),无线网络通信模块(Bluetooth,WLAN,GPRS)等硬件电路构成元素的基本工作原理,连接使用方法,使用注意事项,基本调试方法等内容。在网络上能找到很多公司的评估板的原理图,对于这些原理图要仔细研究,摸清处理器同存储器,网卡,液晶模块等器件的连接方法和原因。通过对这些电路的研究,能够较快地了解整个嵌入式系统的构成,这些电路同实际产品中的电路虽有一定差别的,特别是对于手持设备,但这些差别不影响初学者学习嵌入式系统的硬件设计基本构成。

       ä»¥ä¸Šè¿™äº›çŸ¥è¯†ï¼Œå¾€å¾€éœ€è¦è¾ƒé•¿æ—¶é—´çš„学习和积累,需要亲自参与实践的机会。对于刚刚接触嵌入式系统硬件开发的学生来讲,一般不可能全部了解这些知识,但也不会是通通一无所知。笔者结合自己开发和教学的经验认为:首先应该选定一款主流且较为简单的嵌入式系统处理器,比如基于ARM7TDMI 内核的ATM,S3CB0 等嵌入式系统处理器,学习 位RISC处理器的编程模型,指令集。高校教学中,单片计算机课程一般以系列单片为核心讲解,由于现代位处理器的结构和开发方式同8位单片机有着较大的差别,学习者还是需要花一点力气来研究以下位处理器的。以ARM处理器为例,学习者就需要理解处理器的多种工作模式,备份寄存器,RISC 指令集的特点,MMU 和虚拟地址,中断处理过程等内容。在学习指令集的过程中,最好能够每学习几条指令,就使用这几条指令在模拟器上实验以下,观察处理器执行的结果。这个过程一方面是学习者对于指令本身的学习能够取得一个比较好的效果,另外也是对开发工具本身的一种学习。接着,就可以开始学习片上资源的使用和配置方法。这时就需要一个方便使用的开发板,学习者能够通过JTAG仿真器将开发板同调试PC机相连,进行程序的下载,调试。特别是要仔细研究系统的初始化过程和中断处理的过程。在开发过程中如果遇到问题,应自己分析问题产生的原因,通过分析缩小问题可能产生的范围,最终找到问题的所在。最重要的就是要保持一种解决问题的信心,面对困难如何处理,往往能够决定最终系统是否能够调试成功。然后,学习者可以开始仔细学习处理器同存储器的连接,存储空间的配置,各种外扩器件,如网卡,AC声卡的工作原理和使用方法。嵌入式系统硬件设计中往往需要使用可编程器件,学习者还需要一定的时间来学习使用常用的可编程器件(CP L D / F P G A),常用的有Xilinx和Altera公司的产品。进行系统硬件原理图设计,就需要使用原理图设计的EDA工具,常用的EDA 原理图设计工具主要包括Cadence公司的Capture,Protel公司的ProtelSE等。接下来就可以参照评估板的电路图,根据系统的设计要求,开始进行原理图的绘制了。在原理图绘制过程中,一定要搞清评估板电路连接的原因,对于一时没有搞清楚的问题切不可蒙混过关。例如,有些处理器的地址线是以字节位单位的,而另一些处理器的地址线则是以两个字节为单位的,当连接位的存储器的时候,切不可想当然的把处理器的A 0 直接连接到存储器的A 0 上面。另外,学生还应具有一定的PCB板图绘制能力,因为在现阶段,很多公司还不能完全把原理图的设计工作和PCB 的绘制工作分开,往往要求硬件设计人员既能进行原理图设计又能进行板图设计。即使是PCB设计和原理图设计分开的公司,也需要原理图设计者能为PCB 的设计者对于不同的信号提出布板要求。

       3.驱动程序和操作系统移植工作

       çŽ°ä»£åµŒå…¥å¼ç³»ç»Ÿçš„开发同传统8位单片机系统的开发相比,一个显著的区别就是嵌入式操作系统的广泛使用。在拿到焊接完毕的电路板,并进行基本的测试后,就要进行驱动程序和操作系统的移植工作了。首先要进行的Bootloader的编写和移植工作。Bootloader相当于PC系统的BIOS。对于有些嵌入式操作系统,如uc/OSII没有bootloader同样可以开发调试。但是对于WindowsCE和嵌入式linux系统而言Bootloader就是必须的了。本文以Windows CE 为例,做一个简要的说明。

       Windows CE 系统的移植工作主要就是BSP(板级支持包)的开发过程。BSP将具体的硬件差异同操作系统的核心隔离开来,主要由Bootloaer ,OAL(OEMAbstraction Layer)和设备驱动程序三部分组成。WindowsCE系统中Bootloader叫做Eboot。Eboot被写入系统的引导Flash。系统启动时运行Eboot,完成通过网卡将调试PC 机中WindowsCE 操作系统映像下载到目标系统的SDRAM中并开始执行的功能。对于一个系统移植人员,首先需要阅读文档,了解WindowsCE系统Bootloader和BSP的基本概念和开发过程。(呵,还要做这工作啊,我还没想到(初学^_^))Windows CE的开发系统Platform Builder提供了详细的文档和例程,开发人员需要仔细的阅读文档和例程。搞清楚各个函数之间的调用关系。在开发过程中的一个重要的步骤就是打通串口,使得目标板能够通过PC机串口向调试PC 机发送数据。由于ARM系统的仿真器比较昂贵,而且操作系统的调试往往不使用JTAG调试器进行单步调试。所以能从串口观察程序的执行过程和结果对于调试就显得十分重要了。串口打通之后一个比较棘手的问题就是网卡芯片的调试。刚刚接触嵌入式系统开发的人往往没有直接在寄存器级上使用网卡芯片的经验,而网卡芯片的说明一般都较为简短,这就要求开发者学习一些以太网的基础知识,对以太网的MAC 层有一个基本的认识。另外,各种网络调试(抓包)工具的使用也能大大降低系统调试的难度。系统的OAL需要根据具体硬件的不同做出相应的修改,这个部分可参照文档进行,在调试过程中根据串口的信息分析出错的地方。要充分发挥跨文件字符串搜索工具的功能,在浩如烟海的源文件中找到出错的位置。当然,随着开发者对系统文件目录结构的熟悉和了解,错误定位的速度会不断加快。WindowsCE 的驱动程序相对而言是比较好写的。

       4.应用程序的开发

       åµŒå…¥å¼ç³»ç»Ÿçš„应用程序开发同在PC 机上开发应用程序的区别不是很大。对于Windows CE系统而言,Microsoft已经提供了较为完善的开发工具。特别是.NET Compact work的使用,使得基于Windows CE.NETCompactwork的应用程序有了跨平台性。开发人员可以使用Windows 的C# 语言直接在PC 上进行/tishi/h...

       用verilog和system verilog编写,在FPGA板上用Xilinx ZYNQ验证,运行最高MHZ。

       内容:文件夹“src”包含所有解码源文件。文件夹“tb”包含测试台文件,ext_ram_.v使用axi3接口模拟ddr。文件夹“pli_fputc”是verilog pli,用于在运行模拟时将输出bin写入文件。

       使用方法:模拟:将所有测试平台和源代码文件添加到您的模拟项目源中,例如modelsim。将测试文件in.放到您的模拟项目文件夹中。然后运行,例如,对于modelsim,运行“vsim -pli pli_fputc.dll bitstream_tb”。输出是out.yuv和一些日志文件。

       在FPGA板上运行:将“src”文件夹中的源文件添加到您的FPGA项目中。顶部文件是decode_stream.sv。两个接口,stream_mem_xxx用于将H比特流馈送到解码器。

       github上的开源H.,开源地址:github.com/aiminickwong...

       无介绍

       说明:第一个项目由复旦大学专用集成电路与系统国家重点实验室(State Key Lab of ASIC & System,Fudan University)视频图像处理实验室(VIP Lab)推出,不论项目完成度还是文档说明,都非常详细,同时上面给的是该项目的论坛,论坛上有相关工作人员维护,活跃度很高,适合去学习使用。

       后面两个项目,碎碎并没验证过,但是感觉不怎么靠谱,README完整度不高,有兴趣的可以去看看。

       最后,还是感谢各个大佬开源的项目,让我们受益匪浅。后面有什么感兴趣方面的项目,大家可以在后台留言或者加微信留言,今天就到这,我是爆肝的碎碎思,期待下期文章与你相见。

       优秀的 Verilog/FPGA开源项目介绍(九)- DP(增改版)

       优秀的 Verilog/FPGA开源项目介绍(八)- HDMI

       优秀的 Verilog/FPGA开源项目介绍(七)- CAN通信

       介绍一些新手入门FPGA的优秀网站(新增2)

       优秀的 Verilog/FPGA开源项目介绍(六)- MIPI

       优秀的 Verilog/FPGA开源项目介绍(五)- USB通信

       优秀的 Verilog/FPGA开源项目介绍(四)- Ethernet

       优秀的 Verilog/FPGA开源项目介绍(三)- 大厂的项目

       优秀的 Verilog/FPGA开源项目介绍(二)-RISC-V

       优秀的 Verilog/FPGA开源项目介绍(一)-PCIe通信

什么是RISC架构?

       1. RISC架构,即精简指令集计算机架构,它强调的是指令集的简化。这种架构通过减少CPU中指令的复杂性,来提高处理器的执行效率。

       2. 指令集是软件与硬件之间的接口,确保了软件可以在不同的硬件上运行。不同的硬件制造商可能会采用不同的方式实现同一指令集,使得软件可以在不修改源代码的情况下运行。例如,Intel和AMD都实现了x指令集,这在个人电脑市场中占据了主导地位。

       3. Krste Asanović教授发起了一个项目,旨在开发一个全新的、开放的、标准的指令集,以支持广泛的应用程序。这个项目得到了RISC架构的发明者之一,Dave Patterson教授的支持。从年开始,这个团队用了大约四年时间,设计并开发了一套全新的指令集,包括配套的编译器、工具链和仿真器,并通过多次流片验证了这些指令集。

       4. 为了提高设计的效率,以及方便快速评估和修改,同时增加设计的可复用性,Chisel这种新的硬件构建语言被开发出来。它允许设计师使用Scala这种函数式编程语言来设计硬件,最终可以生成传统的Verilog HDL用于ASIC/FPGA设计,或者生成C++代码用于仿真。

       5. 这个新开发的指令集被称为RISC-V。这里的“V”有两层含义:首先,它代表了从RISC I开始,加州大学伯克利分校设计的第五代指令集架构;其次,“V”也代表变化(variation)和向量(vectors)。

什么是openrisc

       openrisc

       开放分类: CPU、处理器、芯片、GPL、RISC

        OpenRisc是OpenCores组织提供的基于GPL协议的开放源代码的RISC(精简指令集计算机)处理器。有人认为其性能介于ARM7和ARM9之间,适合一般的嵌入式系统使用。最重要的一点是OpenCores组织提供了大量的开放源代码IP核供研究人员使用,因此对于一般的开发单位具有很大的吸引力。

        OpenRisc具有以下的主要特点:

       1.采用免费开放的/bit RISC/DSP架构。

       2.用Verilog HDL(硬件描述语言)实现了基于该RISC/DSP架构的RTL(寄存器传输级)描述。

       3.具有完整的工具链,包括:开源的软件开发工具,C语言实现的cpu仿真模型,操作系统,以及软件应用所需的函数库。

        OR是OpenRisc家族中最新的一员,也是性能最好的一员。OR在使用0.um及6层金属工艺时,主频可以运行在MHz,可以提供Dhrystone、2.1MIPS和次的 x DSP乘加操作。默认配置下进行流片时约有万个晶体管,以NAND2为基本单元计算时,相当于万门的规模。利用Virtex2进行实现时,大约占用+ Slices,+ LUT4单元。如果去掉Cache和MMU则可以进一步节省大约1/2的资源。因此这款RISC也可以在大部分FPGA器件上轻松实现。

        OR是一款位标量RISC处理器,具有哈佛结构、5级整数流水线、支持MMU,Cache,带有基本的DSP功能。外部数据和地址总线采用Wishbone片上总线标准。此外,OR可以根据用户的需求进行功能裁剪,比如在嵌入式应用中去掉或者减小Cache面积。因此,OR是一款高性能,低功耗,可扩展的RISC CPU。

        目前国内已有基于OR核的SOC产品,比如华视奇半导体有限公司推出的Vivace Semiconductor多媒体处理芯片,OR由开源项目正式进入商业领域。此外,国内的研究机构和处理器研究人员也对该芯片进行了广泛而深入的研究,典型的著作有范国平等人所著《OpenRisc 解剖》,潘峰等人所著《开源软核处理器OpenRisc的SOPC设计》以及倪继利等人所著的《CPU源代码分析与芯片设计及Linux移植》。这些著作帮助广大的cpu爱好者进一步的了解了OR的体系结构设计与实现。