在线咨询
eetop公众号 创芯大讲堂 创芯人才网
切换到宽版

EETOP 创芯网论坛 (原名:电子顶级开发网)

手机号码,快捷登录

手机号码,快捷登录

找回密码

  登录   注册  

快捷导航
搜帖子
楼主: free-arm

[原创] 重磅:《兼容ARM9的软核处理器设计》一书详细注释的高速版源代码发布

[复制链接]
发表于 2012-7-9 17:09:32 | 显示全部楼层
牛人啊,膜拜膜拜,感谢分享
发表于 2012-7-10 10:49:53 | 显示全部楼层
拜读了你的书,对兼容arm9内核的设计和佩服。其中有个问题请教:程序中有常数,编译后会和指令混合编址,而arm9内核会出现指令和数据同时读,而内核rom端口只有一个。这样就只能选择双端口rom,但asic设计中,双端口的ram比较多,rom相对少。这样就只能用两个相同的rom实现。比较浪费资源。有什么好办法解决这个问题吗?
 楼主| 发表于 2012-7-10 11:11:04 | 显示全部楼层
这个问题问的好,看来是在FPGA中真正使用过这个软核了的。我最开始也碰到这个问题了,解决方法是在这个软核上加一个wrapper,如果数据池访问端口访问的地址段属于指令池的话,就暂停CPU内核1个cycle,方法是让cpu_en==0一个cylce。在这个cycle内通过指令池访问端口,加载数据池需要的数据,然后让cpu_en重新等于1。那么这样rom和ram都是单独的访问接口。以前我写过这个wrapper,等有空找一找。
发表于 2012-7-10 12:21:06 | 显示全部楼层
找资料,学习学习~
发表于 2012-7-11 09:44:35 | 显示全部楼层
谢谢!如能提供这个wrapper,感激不尽。另外,如果想加cache,在不命中情况下,也是将cpu_en==0,然后做flash和cache的DMA操作后,再将cpu_en==1继续执行,是这样处理吗?没想清楚,未命中这次指令是否可正确取到指令。
 楼主| 发表于 2012-7-11 10:06:53 | 显示全部楼层
是的,cpu_en就是留给使用者扩展用的。只需要为它简单的赋值1或者0,就能控制CPU的运作。在赋值为0的这段时间内,使用者完全可以利用这段空挡完成自己想做的事。只是在重新cpu_en赋值为1的时候,考虑清楚CPU能够得到它需要的东西。
发表于 2012-7-19 14:56:10 | 显示全部楼层
力支持
发表于 2012-7-24 08:27:47 | 显示全部楼层
ARM真的开源吗
发表于 2012-8-9 08:46:05 | 显示全部楼层
ding,学习学习
发表于 2012-8-27 22:07:44 | 显示全部楼层
好贴子啊
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

站长推荐 上一条 /2 下一条

×

小黑屋| 手机版| 关于我们| 联系我们| 在线咨询| 隐私声明| EETOP 创芯网
( 京ICP备:10050787号 京公网安备:11010502037710 )

GMT+8, 2024-12-24 11:11 , Processed in 0.020988 second(s), 6 queries , Gzip On, Redis On.

eetop公众号 创芯大讲堂 创芯人才网
快速回复 返回顶部 返回列表