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

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

手机号码,快捷登录

手机号码,快捷登录

找回密码

  登录   注册  

快捷导航
搜帖子
查看: 11741|回复: 19

[讨论] 给OpenMIPS一点小建议

[复制链接]
发表于 2013-11-15 13:01:09 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?注册

x
如果想要有人使用,现在的OpenMIPS急需完善的是总线部分,加入Wishbone或AMBA不错,这样很多开源IP核可以挂上
发表于 2013-11-15 14:12:25 | 显示全部楼层
这个也在考虑,准备着手,让OpenMIPS更加使用,考虑添加wishbone总线,移植ucosii,在DE2上可以下载
 楼主| 发表于 2013-11-15 14:59:27 | 显示全部楼层
回复 2# leishangwen


   加油,遇到困难可以互相讨论下,我也写过CPU、搭过SoC和移植ucos-ii,不过现在比较忙而且CPU还有点小Bug,所以一直没有发出来
发表于 2013-11-22 14:40:57 | 显示全部楼层
请问代码是何种版权.
作者写代码的目的,是学习研究的工具,还是希望在工业界推广.
另外在开源工具中对 verilog 支持较好, 而对 vhdl 支持较少.
开源工具中目前无法实现 verilog 和 vhdl 的混合编译.
(iverilog ,verilator 都仅支持 verilog).
Opencores 上的 IP 多为 verilog. 如果 OpenMIPS 使用 verilog 的
话, 只要加上 Wishbone 接口即可直接 在 Orpsoc 中替换掉 Openrisc 而
拥有一个完整的 Soc 框架.而 VHDL 则比较难融入 Opencores 的环境.
闲聊...
发表于 2013-11-22 16:54:35 | 显示全部楼层
本帖最后由 leishangwen 于 2013-11-29 09:57 编辑

openmips计划是LGPL授权,主要目的是学习研究,所以对性能方面目前考虑的不多,如果要下载到fpga芯片上运行,那么可以使用对应厂商的开发环境,比如quartusii,一般是支持混合编译的,再有一点,学校学的一般是vhdl
 楼主| 发表于 2013-11-22 18:20:56 | 显示全部楼层
回复 5# leishangwen


      不过4#说的对,最好还是用verilog写比较好,一般来说除了一些欧洲的还在用VHDL外,基本上不管大小公司都采用verilog的,而且system verilog做验证的话肯定是和verilog的兼容性更好的。虽然语言是次要的,但是工具的支持很重要,
发表于 2013-11-22 19:30:06 | 显示全部楼层
这个可以考虑,我会在不久列一个roadmap
发表于 2013-11-22 21:24:22 | 显示全部楼层
如果作者愿意将其作为一个开源项目, 并且版权和 OR1200 相同的话, 我可以贡献一些力量.
但是我用 verilog.

我还是乐见有个以中文为工作语言的开源 CPU 项目.
虽然代码是无国界的, 但是程序员是有母语的.

也许作者该在 google code , github 之类的网站上选块地, 择日开张.
发表于 2013-11-23 16:32:35 | 显示全部楼层
回复 8# zz0522
openmips就是一个与openrisc同样的开源项目,您说的贡献具体指的是什么?
发表于 2013-11-23 21:08:17 | 显示全部楼层
回复 9# leishangwen
我对 IC 的前端和后端都有一些经验. 我可以帮忙找出性能的瓶颈, 及优化流水线的安排等.

如 or1200_genpc.v 中
   assign icpu_adr_o = !no_more_dslot & !except_start & !spr_pc_we
               & (icpu_rty_i | genpc_refetch) ?
               icpu_adr_i : {pc[31:2], 1'b0, ex_branch_taken|spr_pc_we};

  icpu_adr_o 是用 icpu_rty_i 做出来的. 也就是说 从 rty 从 cache 出来后必须在
一个时钟内到达 cpu 再折回到 cache 模块的 adr. 信号在一个时钟内跑个往返, 这
不是流水线的作法, 链太长, 速度上不去.

我认为造成这个组合逻辑 loop back 的原因应该是 or1200 作者试图在此处作出 wishbone
时序, 可是 wishbone 时序和 CPU 想要的流水线的形式并不兼容.
如 wishbone 的突发形式为 (大写为命令,小写为对应的ack,需用等宽字体对齐来看对应关系)
AABCDEF
abcdef
而让 CPU 舒服的形式应为
ABCDEF
abcdef

LSU 模块中存在同样的 loop back.

我还在思考这问题背后的原因.

我个人更倾向将 or1200 打造的更精致, 快速.

闲聊...
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

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

×

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

GMT+8, 2024-12-22 19:48 , Processed in 0.021245 second(s), 6 queries , Gzip On, Redis On.

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