1 什么是OpenRISC

OpenRISC 是硬件开源社区opencores开发的RISC指令集处理器架构,包括32 bits 的Openrisc1000 和64 bitsOpenrisc 2000. 目前只实现了32bits or1200处理器。所以,在实际中Openrisc实际指的就是or1200.

2 什么是ORPSOC

有了or1200处理器,就可以用其搭建SOC芯片了,Opencores给出了基于or1200的SOC平台ORPSoC (OpenRISC Reference Platform System on Chip)。该SOC平台有两个可以的版本ORPSOCv2和ORPSOCv3两个版本。ORPSOCv2的目前社区不在更新了,所有的开发都转到ORPSOCv3上了。除了ORPSOC平台外还有一个基于or1200的SOC平台是MinSoC( the Minimal OpenRISC System on Chip)。

在ORPSOCv3 版本中,它将rtl 代码和自动化构建系统代码分开了。rtl 代码部分称为orrsoc-cores,自动化工具和脚本称为fusesoc。ORPSOC平台可以在FPGA上跑linux的操作系统。当安装完ORPSOCv3后可以fusesoc list-systems 查看支持的FPGA平台。

3 ORPSOC的开发环境

Opencores 提供一整套基于GUN的linux 开发环境,如果你不想安装开发工具,可以从opencores也提供基于Ubuntu的虚拟机开发环境。

4学习的参考资料

国内现有的参考资料有Rill_zhen的CSDN博客和他的书《深入理解OpenRISC体系结构》 。这本书着重分析了or1200 处理器是如何实现的,主要包括数据通路和控制通路。雷思磊的《步步惊芯软核处理器内部设计分析》 ,该书通过一条指令如何度过它的一生角度讲述0r1200的运行原理。并通过搭建一个最简的or1200的运行系统,详细阐述CPU的执行过程。早一点的书籍有潘峰等人所著《开源软核处理器OpenRisc的SOPC设计》 ,该书讲述整个ORPSOC的基本架构,细节方面不详细。倪继利所著的《CPU源代码分析与芯片设计及Linux移植》。陈曦编著的《片上系统设计思想与源代码分析》这两本书写作风格很像,都是在将ORPSOC,前者侧重于整个系统的移植和软件开发,后者侧重分析具体的每个SOC IP core. 除了书一些个人博客写得很不错。

5 OR1200的性能

or1200在使用0.18um及6层金属工艺时,主频可以运行在300MHz,可以提供300Dhrystone、2.1MIPS和300次的 32x32 DSP乘加操作。

参考文献:

[1] OpenRisc-1-startup. rill. http://blog.csdn.net/rill_zhen/article/details/8190322. 2015,12,30.

[2] ORPSOC. http://opencores.org/or1k/ORPSoC. 2015,12,20.

[3] ORPSoCv3InitialDiscussion. http://opencores.org/or1k/ORPSoCv3InitialDiscussion.

[4] OR1200 OpenRISC Processor. http://opencores.org/or1k/OR1200_OpenRISC_Processor

[5] http://opencores.org/or1k/OR1K:Community_Portal

[6] minisoc. http://www.minsoc.com/

http://opencores.org/project,minsoc

[7] OR1k主页. http://opencores.org/or1k/Main_Page

Openrisc的or1200的更多相关文章

  1. or1200下raw-os(仿真环境篇)

    貌似最近都在公司混日子过了,怎么办?哎哎哎~罪过啊罪过,不过也是的,加工资居然没我份,顶领导个肺的,叫我怎么继续活啊~哎哎哎~ 算了,不谈这些鸟事情了,说多了都是泪啊,这篇blog开始我们进入raw- ...

  2. or1200中IMMU分析(续)

    下面内容摘自<步步惊芯--软核处理器内部设计分析>一书 2 IMMU中的特殊寄存器 OR1200处理器中的IMMU包括第2组特殊寄存器,如表10.1所看到的. ITLBW0MRx是指令TL ...

  3. or1200下raw-os学习(任务篇)

    这次就来说说基于上一节介绍的系统框图去建立我们所需要的任务,顺便学习Raw-OS提供的API,根据上节的分析,对于Slave Board有如下设计: Slave Board有三个任务,分别负责测试阻抗 ...

  4. OpenRisc-52-run openrisc&orpmon on ml501 board

    引言 之前关于openrisc的内容,几乎都是基于opencores官方的ordb2a那个开发板的,但是,实际情况是有那个板子的人不是很多,所以目前我在做一个与之类似的板子,并且很快就会跟大家见面,这 ...

  5. OpenRisc-39-ORPSoC,or1200的memory hierarchy整体分析

    引言 前面我们简单分析了ORPSoC的整体结构,or1200_top的整体结构,or1200_cpu的整体结构. 并对ORPSoC的启动过程,ORPSoC的debug子系统,clock子系统进行了介绍 ...

  6. or1200下Raw-OS学习(例子篇)

    没有图我说个~毛(J)线(B)~对吧??? 直接上一个以前做过的项目来说说怎么去从一个前后台的程序过度到利用操作系统去管理的你代码吧~以前想过直接用事件驱动的框架去编写代码的,无奈这方面的资料实在太少 ...

  7. Cache基础知识OR1200在ICache一个简短的引论

    以下摘录<步骤吓得核心--软-core处理器的室内设计与分析>一本书 12.1 Cache基本知识 12.1.1 Cache的作用 处理器的设计者通常会声称其设计的处理器一秒钟能做多少次乘 ...

  8. OR1200数据Cache运用情景分析

    以下摘录<步骤吓得核心--软-core处理器的室内设计与分析>一本书 13.7DCache使用情景之中的一个--存储指令运行阶段DCache失靶 存储指令运行阶段DCache失靶这样的情景 ...

  9. or1200乘法除法指令解释

    以下摘录<步骤吓得核心--软-core处理器的室内设计与分析>一本书 OR1200中乘法除法类指令共同拥有9条,表8.3给出了全部的乘法除法类指令的作用及说明. 说明:表8.3是ORBIS ...

随机推荐

  1. js实现网页多少秒后自动跳转到指定网址

    在网上搜了一下,关于这个技术处理有多种方法,我只记下我在视频里学到的三种: 1.用一个response.sendRedirect("目标页面.jsp\.htm");实现直接跳转: ...

  2. html5--6-55 动画效果-关键帧动画

    html5--6-55 动画效果-关键帧动画 实例 @charset="UTF-8"; div{ width: 150px; height: 150px; font-size: 2 ...

  3. 通过xmanager连接Linux图形界面

    今天要在linux下安装数据库,用的是xmanager:之前自己也用过该工具在OUI下做过安装,还很顺利. 但是,今天连接后,运行命令,等了有5分钟,没有出现OUI界面. linux版本: [root ...

  4. 转:Oracle:删除表空间

    原文:http://space.itpub.net/40239/viewspace-365948 OMF和非OMF管理的数据文件在DROP TABLESPACE时是否会自动删除,做了测试: SQL&g ...

  5. 【Selenium】验证是否按照字母顺序排列, 不区分大小写

    验证是否按照字母顺序排列, 不区分大小写 for(int j=0;j<s.length-1;j++){ String temp1=s[j].toLowerCase(); String temp2 ...

  6. [原创]java实现word转pdf

    最近遇到一个项目需要把word 转成pdf,百度了一下网上的方案有很多,比如虚拟打印.给word 装扩展插件等,这些方案都依赖于ms word 程序,在java代码中也得使用诸如jacob或jcom这 ...

  7. 阮一峰 KMP BM算法

    存一个链接,讲得好啊! 点击这里打开     字符串KMP 点击这里打开     字符串匹配的Boyer-Moore算法

  8. bzoj 4987 Tree —— 树形DP

    题目:https://www.lydsy.com/JudgeOnline/problem.php?id=4987 其实就是在树上找有 k 个点的连通块(路径上的点都选是最优的),之间的边都走了两遍,只 ...

  9. JS实现系统时间(自动)

    转自:https://blog.csdn.net/qq_35607510/article/details/54600563

  10. pl/sql 远程连接oracl服务器方法

    在Oracle/network/admin中的tnsnames.ora中添加对应的如下代码: LISTENER_ORCL = (DESCRIPTION = (ADDRESS = (PROTOCOL = ...