搜索
bottom↓
回复: 14

发一个开源的兼容ARM9指令集的内核,1800行注释的源代码

[复制链接]

出0入0汤圆

发表于 2013-7-7 22:21:35 | 显示全部楼层 |阅读模式
《兼容ARM9的软核处理器设计:基于FPGA》已经卖出一段时间。实际上,在后面我对这一版本进行了优化,主要是为了在FPGA上跑更高的速度。这一优化,还是非常成功的,在spartan6上可以达到近80MHz的速度。

   这一高速版本,仍然保持三级流水线,和以前的结构基本一致。主要的改动点如下:
   1,第二级的乘法使用移位操作代替;
   2,为了消除banked register对时序的影响,对有banked的寄存器r8~r14都新增加一个主寄存器Rx,它会在模式切换时,主动更新到对应模式的寄存器。
   
   鉴于乘法运算非常耗费时间,我做了两个版本,这两个版本都做了详细的注释。
   一个版本是不执行MULT和MULTL指令;它可以运行到70+MHz(Spartan6)。读者如果非要执行乘法操作,可以使用软件乘法来代替。或者已经读懂这一版的读者可以自行加上乘法的实现,以执行全指令集。
   另外一个版本在上一个版本的基础上用32*32的硬件乘法来完成这两条指令的执行。因为32*32的乘法操作,使得它运行的速度降到60+MHz(Spartan6)。这一版本相对于不带乘法的版本,只不过增加少许几行而已。它的Dhrystone比起书中来说,要略小一点。书中的可以达到1.2 DMIPS/MHz,这一版本,只能达到1.1 DMIPS/MHz。

   这两个版本的接口都和书上给出的代码的接口一致,读者完全可以在FPGA工程中无缝替换。但是注意,由于不带乘法的版本没有实现乘法指令,因此书中给出的Hello项目可以替换,Dhrystone和uClinux系统仿真不能替换执行,而带乘法的版本都可以替换执行。因为Linux系统仿真需要增加协处理器接口,因此两个版本都不能用在Linux仿真上面。

   下面给出书中的勘误,读者可以纠正。对于带给大家的不便,请予谅解。

1,103页,倒数第二行代码:sum_middle替换为sum_middle[31]; 倒数第二行文字:sum_middle也改为sum_middle[31]。
2,105页,倒数第九行"字符串字符串",有两个"字符串",去掉其中一个;其中 字符串 是带乘法指令版本执行的解压缩密码,它以s开始,以=结尾,密码包含s和=。                  
                      倒数第四行中Rm[7:0],替换为Rs[7:0];
                   倒数第三行中Rm[7:0],替换为Rs[7:0];
                   倒数第二行Rm[7:0],替换为Rs[7:0];Rm[4:0]替换为Rs[4:0];
                   倒数第一行中:{ {32{Rm[31]}}, Rm} >> Rm[4:0],替换为 { Rm, Rm} >> Rs[4:0];Rm[Rm[4:0]-1]替换为Rm[Rs[4:0]-1]。
3,107页,图5-12中,“后发生”下方的Rn替换为Rm;
4,114页,第二段中,“在L==0时”与“在L==1时”这两组词进行互换。也就是后面的两段意思描述反了;
                   第三段中LDM0替换为LDM。
5,116页,第一段和第二段的LDM0替换为LDM。
6,118页,第一行中”26种“替换为”27种”。
7, 106页,"6.MULT"下面的指令表中Rd和Rn的位置互换
8, num误为"mum"的问题。发生在 111页的 "15. MSR1"下面的指令表;112页的"16. DP2"下面的指令表和"17. LDR0"下面的指令表;113页的"18. LDR1"下面的指令表;
9, 130页,图6-10中“MOV R1,[R0]"应该改为"LDR R1,[R0]", 见下面的代码描述。


不带乘法指令的版本:(不加密,都可以下载)

arm9_compatiable_code_high.rar (12.96 KB)

带有乘法指令的版本:(加密,获取密码的方法:105页,倒数第九行"字符串字符串",有两个"字符串",去掉其中一个;其中 字符串 是带乘法指令版本执行的解压缩密码,它以s开始,以=结尾,密码包含s和=。  )

arm9_compatiable_code_high_mult.rar (14.09 KB)

欢迎大家试用,给出意见!希望在更多的开发板上,能够运行起来这些软核处理器。也希望能够带动更多的人,用Verilog来设计软核处理器。

源代码因为没有权限所以不能发,需要的可以在新浪爱问下载,也可以写邮件给我。qiang0204@gmail.com

阿莫论坛20周年了!感谢大家的支持与爱护!!

曾经有一段真挚的爱情摆在我的面前,我没有珍惜,现在想起来,还好我没有珍惜……

出0入0汤圆

发表于 2014-6-14 19:07:22 | 显示全部楼层
这么好的帖子没人顶么

出10入23汤圆

发表于 2014-6-14 19:46:26 | 显示全部楼层
楼主牛人

出0入0汤圆

发表于 2014-6-14 19:52:42 | 显示全部楼层
支持原创!

出0入0汤圆

发表于 2014-6-14 20:45:27 | 显示全部楼层
顶楼主 好!

出0入0汤圆

发表于 2014-6-14 20:46:25 | 显示全部楼层
顶                       

出0入0汤圆

发表于 2014-6-14 21:07:11 | 显示全部楼层
当初还买一块FPGA开发板来学习这本书
可惜后来乱七八糟的事没弄成
顶一下LZ

出0入0汤圆

发表于 2014-6-15 10:17:49 | 显示全部楼层
下载下来好好学习

出0入0汤圆

发表于 2014-6-15 22:56:30 | 显示全部楼层
这本书关注过一段时间,作为学习资料还是不错的。

出150入640汤圆

发表于 2014-6-17 08:25:25 | 显示全部楼层
顶一下,无源码无真相

出150入640汤圆

发表于 2014-6-17 08:26:05 | 显示全部楼层
顶一下楼主,开源的东西最好

出0入0汤圆

发表于 2014-6-17 08:59:40 | 显示全部楼层
这么好的帖子,支持一下

出0入0汤圆

发表于 2014-6-17 09:50:06 | 显示全部楼层
Do you have:

arm9_compatiable_wrapper.zip
no_tx_xilinx_arm9.zip
risclite_mx.rar

Thank you.

出0入0汤圆

发表于 2014-6-18 14:00:57 | 显示全部楼层
最好有完整的ARM同9

出0入0汤圆

发表于 2014-6-18 14:18:58 | 显示全部楼层
原作者和原贴在这里,代码一应俱全:
http://bbs.eetop.cn/thread-333596-1-1.html
回帖提示: 反政府言论将被立即封锁ID 在按“提交”前,请自问一下:我这样表达会给举报吗,会给自己惹麻烦吗? 另外:尽量不要使用Mark、顶等没有意义的回复。不得大量使用大字体和彩色字。【本论坛不允许直接上传手机拍摄图片,浪费大家下载带宽和论坛服务器空间,请压缩后(图片小于1兆)才上传。压缩方法可以在微信里面发给自己(不要勾选“原图),然后下载,就能得到压缩后的图片。注意:要连续压缩2次才能满足要求!!】。另外,手机版只能上传图片,要上传附件需要切换到电脑版(不需要使用电脑,手机上切换到电脑版就行,页面底部)。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

手机版|Archiver|amobbs.com 阿莫电子技术论坛 ( 粤ICP备2022115958号, 版权所有:东莞阿莫电子贸易商行 创办于2004年 (公安交互式论坛备案:44190002001997 ) )

GMT+8, 2024-8-27 04:19

© Since 2004 www.amobbs.com, 原www.ourdev.cn, 原www.ouravr.com

快速回复 返回顶部 返回列表