引言
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!