OpenRisc-3-SOC develop environment build and test

2023-10-07 09:58

本文主要是介绍OpenRisc-3-SOC develop environment build and test,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

引言

openrisc是开源computer architecture中推广的比较好的。工具也比较齐全,比如,compiler,debugger,architecture simulator,rtl simulator。。。这些tool都有,并且都是opensource的,有极大的灵活性。

学习一种技术最好的方式就是使用它,修改它。(the best way to learn and understandthe openrisc is to use it - rill_zhen)。

这一小节就介绍开发环境的搭建。

 

3.1 参考

有一些document和web link可以参考:

1》当然是官网了:

http://opencores.org/or1k/Main_Page

 

2》另外一个比较好的参考网站:

http://www.embecosm.com/download/ean2.html

 

3》国内我们有一个qq群,可以参与讨论,相互学习与交流:

277505520


 

3.2 最简单的方法:

一般有两种方式:用现成的;自己安装。

opencores提供了一个virtualbox的镜像,里面所有的工具(除FPGA IED外)都install好了。

下载地址:

http://opencores.org/or1k/Ubuntu_VirtualBox-image_updates_and_information

需要注意的是:这个链接可以下载,但是可能国内down不下来,我down了好几次都没down下来,所以让我一个在US的一个朋友帮忙download下来的。感兴趣的朋友可以留言,我传给你。

 

3.3 get start

1,用or1ksim跑helloworld

1》cd ~/soc-design/helloworld-or1ksim

2》make run 或者make logrun ,或者干脆自己敲一下:sim -m8M helloworld --trace >rill.trace 。这个看一下Makefile就明白了。

3》可以看到模拟结果rill.trace等文件。可以看出来,or1ksim只是一个简单的解释型ISS(instruction set simulator),不是cycle accurate的,所以对于研究computer architecture的朋友就稍微有些失望了,gem5,simplescaler这些simulator可能会好些。会如下图:

 

 

2,用or1ksim跑linux

1》cd ~/soc-design/linux

2》make ARCH=openrisc defconfig

3》make ARCH=openrisc

4》sim -f arch/openrisc/or1ksim.cfg vmlinux

5》然后在桌面的左上角,你就会看到linux的启动过程了,如果搞过embedded,这一幕肯定很熟悉了。如下图:

 

 

3,RTL 仿真

在用simulator将architecture模拟后,可以得到体系结构的performance,并反复改进后,就要写RTL了(verilog HDL 或者VHDL),然后再用modelsim 等仿真工具进行functional 和 timing的仿真。当然RTL的仿真肯定是cycle accurate的,呵呵。当然openrisc这些仿真工具是不能用的,因为这些不是开源的。他用的是verilator,具体参考:http://opencores.org/or1k/ORPSoC

思路是先用仿真软件产生VCD文件(对verilog熟悉的哥们肯定知道VCD文件,在testbench里面调用dumpvars()产生),然后用GTK产生波形。

就好像咱们平时用modelsim产生fsdb文件(用dumpfile("rill.fsdb")),然后用debussy调试一样。关于or1200的rtl仿真,我的第一篇blog里面有,我是用modelsim仿真的。

步骤:

1》cd soc-design/orpsocv2/sim/run

2》make rtl-test TEST=or1200-cabsic VCD=1

3》gtkwave ../out/or1200-cbasic.vcd ../../../../signal.sav &

4》这时,就能看到波形了。如下图:

 

 

3.4 小结

对openrisc有一个感性的直观的认识了吧,有条件的话就buy一个openrisc的develop board(RMB1350左右),移植一个也行,那就更perfect了。

enjoy!

这篇关于OpenRisc-3-SOC develop environment build and test的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/157574

相关文章

MCU7.keil中build产生的hex文件解读

1.hex文件大致解读 闲来无事,查看了MCU6.用keil新建项目的hex文件 用FlexHex打开 给我的第一印象是:经过软件的解释之后,发现这些数据排列地十分整齐 :02000F0080FE71:03000000020003F8:0C000300787FE4F6D8FD75810702000F3D:00000001FF 把解释后的数据当作十六进制来观察 1.每一行数据

Android Environment 获取的路径问题

1. 以获取 /System 路径为例 /*** Return root of the "system" partition holding the core Android OS.* Always present and mounted read-only.*/public static @NonNull File getRootDirectory() {return DIR_ANDR

论文翻译:ICLR-2024 PROVING TEST SET CONTAMINATION IN BLACK BOX LANGUAGE MODELS

PROVING TEST SET CONTAMINATION IN BLACK BOX LANGUAGE MODELS https://openreview.net/forum?id=KS8mIvetg2 验证测试集污染在黑盒语言模型中 文章目录 验证测试集污染在黑盒语言模型中摘要1 引言 摘要 大型语言模型是在大量互联网数据上训练的,这引发了人们的担忧和猜测,即它们可能已

Golang test编译使用

创建文件my_test.go package testsimport "testing"func TestMy(t *testing.T) {t.Log("TestMy")} 通常用法: $ go test -v -run TestMy my_test.go=== RUN TestMyTestMy: my_test.go:6: TestMy--- PASS: TestMy (0.

JavaScript正则表达式六大利器:`test`、`exec`、`match`、`matchAll`、`search`与`replace`详解及对比

在JavaScript中,正则表达式(Regular Expression)是一种用于文本搜索、替换、匹配和验证的强大工具。本文将深入解析与正则表达式相关的几个主要执行方法:test、exec、match、matchAll、search和replace,并对它们进行对比,帮助开发者更好地理解这些方法的使用场景和差异。 正则表达式基础 在深入解析方法之前,先简要回顾一下正则表达式的基础知识。正则

mybatis if test 之 0当做参数传入出问题

首先前端传入了参数 if(StringUtils.isNotBlank(status)){requestParam.setProperty("status", Integer.parseInt(status));}List<SuperPojo> applicationList = groupDao.getApplicationListByReviewStatusAndMember(req

js正则表达式test方法的问题

今天在网上碰到一个帖子,写了一个关于Regex的奇怪现象,(文章来源http://www.php100.com/html/webkaifa/javascript/2007/0109/1866.html) 代码如下 <script type="text/javascript"><!--var re = /^\d+(?:\.\d)?$/ig; alert(re.test('112.3'

flutter开发实战-flutter build web微信无法识别二维码及小程序码问题

flutter开发实战-flutter build web微信无法识别二维码及小程序码问题 GitHub Pages是一个直接从GitHub存储库托管的静态站点服务,‌它允许用户通过简单的配置,‌将个人的代码项目转化为一个可以在线访问的网站。‌这里使用flutter build web来构建web发布到GitHub Pages。 最近通过flutter build web,通过发布到GitHu

pip install pyaudio sounddevice error: externally-managed-environment

shgbitai@shgbitai-C9X299-PGF:~/pythonworkspace/ai-accompany$ pip install pyaudio sounddeviceerror: externally-managed-environment× This environment is externally managed╰─> To install Python package

PC/MCU/SoC使用的计算机架构(Architecture)

1. 冯·诺依曼结构 冯·诺依曼结构(Von Neumann Architecture)是计算机系统的经典架构,由数学家约翰·冯·诺依曼在1945年提出。它的核心思想是程序存储器和数据存储器共享同一存储设备,程序和数据以相同的方式存储和访问。冯·诺依曼架构的主要特点包括: 单一存储器:存储程序指令和数据在同一个存储器中。控制单元:通过程序计数器顺序执行指令。数据路径:通过一个共享的总线,将数据