搜索
bottom↓
回复: 41

我的一个开源项目(和Keil联调的8051core)

  [复制链接]

出0入0汤圆

发表于 2013-4-19 12:16:39 | 显示全部楼层 |阅读模式
打算把我们和Keil联调的Debug模块,移植到一个开源8051的IP上
然后Open出去,做开源的case以开源的为基础,无版权争议
做成之后,它就是FPGA开发板和8051仿真器的二合一

完成后,
1、FPGA板上跑8051仿真,可以自己增删外设
2、纯粹当一个8051仿真器来使用

是以学习和展示为目的的,对用户而言
目标是OpenSource,所以主要是考虑架构简洁和文档完整,用户很容易搭建成功
然后再考虑性能和可靠性

IP选择,目前暂时选的是OC8051和MC8051,OC8051先做
FPGA的选择,Altera的为首选,Xilinx的为备选,2个都支持

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

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

出0入0汤圆

 楼主| 发表于 2013-4-19 12:22:28 | 显示全部楼层
OC8051是OpenCore上的一个OpenSource项目,项目主页是http://opencores.org/project,8051
OpenCore上还有一个以它为基础的Trubo8051,喜欢扩展的朋友可以参考下


MC8051的官方网站是 http://www.oreganosystems.at/
它是VHDL写的,我更倾向于Verilog所以选了OC8051先做,这个以后也是要做的,但不是现在


首选是去官方下载,可以拿到最新的版本。
上国外网站网速慢的朋友,可直接下载附件(这是最近于官方网站下载的,后续也会以此版本为基础做移植)



本帖子中包含更多资源

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

x

出0入0汤圆

 楼主| 发表于 2013-4-19 12:23:32 | 显示全部楼层
OC8051提供的很完整,稍微修改,已经在ModelSim里跑起来了。
多数指令都是1CLK的,跳转指令需要6CLK,我觉得跳转是有优化空间的,不过暂时没这个实施想法。




测试指令是:
Loop:
        mov     P1,#0x55
        mov     P1,#0xAA
        mov     P1,#0x55
        mov     P1,#0xAA
        mov     P1,#0x55
        jmp     Loop


下一步是在FPGA上跑起来,我先看看手头哪个板子可以拿来直接用上。

本帖子中包含更多资源

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

x

出110入0汤圆

发表于 2013-4-19 19:45:56 | 显示全部楼层
顶楼主,入门FPGA的时候看过楼主的帖子,映像深刻

出0入0汤圆

发表于 2013-4-19 20:06:32 | 显示全部楼层
楼主有空还可以优化一下OC8051,目前还很占资源,

微软的TASK51占用资源就小很多,只可惜源码不是公开的,
在部分厂家的FPGA上无法使用

出0入0汤圆

 楼主| 发表于 2013-4-19 20:38:21 | 显示全部楼层
从实用角度讲,如果想要流片选内核IP的话,OC8051和MC8051都不适合
但学习CPU设计的话,这2个还都不错的
我的感觉是他们只侧重部分指标,综合兼顾做得少

这个开源项的目标也是不是优化它,而是为他增加一个Keil下的调试功能,便于后续的测试和应用。

出0入0汤圆

发表于 2013-4-19 21:19:23 | 显示全部楼层
这个要支持下,我尝试使用了可以下载的8051核心,可是都不是太给力!

出0入0汤圆

发表于 2013-4-19 21:19:23 | 显示全部楼层
我也顶,一看就让人兴奋的帖子。

出0入0汤圆

发表于 2013-4-19 22:00:57 | 显示全部楼层
本帖最后由 sky5566 于 2013-4-19 22:15 编辑

Google 搜的,發現問題很多...

雖然上述OC8051 IP核宣稱相容所有8051指令系統,但是實際執行時並非如此。例如在執行表2所列的2組功能相同的代碼時,所得到的執行結果並不相同。代碼1的執行結果 是將5寫入位址為0的外部RAM,代碼2的執行結果是將5寫入位址為4的外部RAM。造成這種現象的原因是,oc8051_ext_addr_sel模組 配置寫外部RAM位址時延誤了一個時鐘週期。若要OC8051 IP核與標準8051系統一致,須對原始檔案中類似的邏輯錯誤進行修改。

採用QuartusII軟體,OC8051 IP核綜合後佔用3 917個邏輯單元,時鐘頻率最高達到30.81 MHz,FPGA測試的實際頻率為27 MHz。

小弟目前找到的可以跑 60MHZ

出0入0汤圆

 楼主| 发表于 2013-4-19 22:59:22 | 显示全部楼层
我说OC8051不实用,不是说他有明显的BUG,而是他未做综合考量。
比如它的总线wishbone兼容,这样有很多开源的外设IP可以更容易挂上去,但这个总线对8051来说有些奢侈了。
oc8051提供了很好的testbench以及utility工具,这些都是比其他opensource更接近商业IP的地方。

你上面举的的例子,应该是来自这篇文章《在FPGA上对OC8051IP核的修改与测试作者:杨先文 李峥   来源:解放军信息工程大学》
对xram的访问,后续版本的oc8051已经改用了wishbone总线的方式,使用ack信号做柔性连接,这样外部ram的处理速度,可以通过ack信号来协调。

既然已经花了那么多精力去分析和解决问题,不明白他们为何去写一篇文章发表到杂志上,而不是参与OC8051的改进和完善,Opensource社区太缺少国人的声音了。

出0入0汤圆

发表于 2013-4-19 23:26:53 来自手机 | 显示全部楼层
Mark…
来自:amoBBS 阿莫电子论坛 Windows Phone 7 客户端

出0入8汤圆

发表于 2013-4-21 19:31:19 | 显示全部楼层
顶    一下

出0入0汤圆

发表于 2013-4-21 19:43:49 | 显示全部楼层
FPGA板上跑8051, 增加个Keil下的调试功能

出0入0汤圆

发表于 2013-4-28 11:49:40 | 显示全部楼层
这么好的 东西这么 没有裤子??

出0入0汤圆

发表于 2013-5-11 01:01:25 | 显示全部楼层
等待进展测试报告!

出0入0汤圆

发表于 2013-5-11 08:16:57 | 显示全部楼层
mark。
仿真器。


出0入0汤圆

发表于 2013-5-11 09:01:35 | 显示全部楼层
跟踪记录

出0入0汤圆

发表于 2013-5-11 23:15:56 | 显示全部楼层
支持mcuplayer, 我近期就做跑跑这两个核 。

出0入0汤圆

发表于 2013-12-6 23:02:47 | 显示全部楼层
mark, thanks

出0入0汤圆

发表于 2013-12-6 23:09:28 来自手机 | 显示全部楼层
这个可以试试

出0入0汤圆

发表于 2013-12-8 21:39:06 | 显示全部楼层
mark, thanks

出0入0汤圆

发表于 2013-12-8 21:55:15 | 显示全部楼层
McuPlayer 发表于 2013-4-19 12:22
OC8051是OpenCore上的一个OpenSource项目,项目主页是http://opencores.org/project,8051
OpenCore上还有一 ...

请问楼主,有什么资料可以参考学习,
来应用这个核呢,谢谢

出0入0汤圆

发表于 2013-12-8 22:16:25 | 显示全部楼层
不清楚如何将c语言生成的coe文件嵌入到这个核中呢?谢谢

出0入0汤圆

发表于 2013-12-8 22:24:34 | 显示全部楼层
mcupro 发表于 2013-5-11 23:15
支持mcuplayer, 我近期就做跑跑这两个核 。

请问是否跑成功了,能否向您请教几个问题,谢谢

譬如,c生成的coe文件是如何嵌入进去的? 谢谢

出0入0汤圆

发表于 2013-12-13 14:20:37 | 显示全部楼层
板子有吗

出0入0汤圆

发表于 2013-12-13 14:21:01 | 显示全部楼层
板子有吗

出0入0汤圆

发表于 2013-12-13 17:03:12 | 显示全部楼层
等测试报告

出0入0汤圆

发表于 2014-2-25 09:01:54 | 显示全部楼层
向楼主学习,等我学会了verilog再看

出0入0汤圆

发表于 2014-3-4 15:51:18 | 显示全部楼层
我也在看这个核,有机会可以跟楼主交流交流,但是没看到那里说用到了wishbone总线

出0入0汤圆

发表于 2014-4-15 13:15:36 | 显示全部楼层
sky5566 发表于 2013-4-19 22:00
Google 搜的,發現問題很多...

雖然上述OC8051 IP核宣稱相容所有8051指令系統,但是實際執行時 ...

Sir:

Where is the source from you?

Thank you.

出0入0汤圆

发表于 2014-5-9 08:22:52 | 显示全部楼层
顶楼主,入门FPGA的时候看过楼主的帖子,映像深刻

出0入0汤圆

发表于 2014-5-10 19:47:11 | 显示全部楼层
终于碰上OC的网友了

出0入0汤圆

发表于 2014-6-1 09:55:36 | 显示全部楼层
顶顶更健康

出0入0汤圆

发表于 2014-6-28 21:10:00 | 显示全部楼层
楼主怎么没有信了?!!加油!等待好消息

出0入0汤圆

发表于 2014-10-4 18:58:31 | 显示全部楼层
McuPlayer 发表于 2013-4-19 12:23
OC8051提供的很完整,稍微修改,已经在ModelSim里跑起来了。
多数指令都是1CLK的,跳转指令需要6CLK,我觉 ...

楼主可以出个教程撒  比如怎么用quartus ii综合, 怎么在modelsim里面仿真等等, 可以找阿莫申请专栏撒

出0入0汤圆

发表于 2014-10-25 19:48:22 | 显示全部楼层
刚开始学习FPGA,谢楼主的分享!

出0入0汤圆

发表于 2014-11-28 20:57:04 | 显示全部楼层
都是牛人啊

出0入0汤圆

发表于 2015-1-6 21:03:40 | 显示全部楼层
openmsp430,带调试器,可以用eclipse单步调试,设置硬件断点

出0入0汤圆

发表于 2015-1-6 22:46:34 | 显示全部楼层
Logic Utilization:
  Number of Slice Flip Flops:         1,168 out of   3,840   30%
  Number of 4 input LUTs:             3,362 out of   3,840   87%
Logic Distribution:
  Number of occupied Slices:          1,918 out of   1,920   99%
    Number of Slices containing only related logic:   1,918 out of   1,918 100%
    Number of Slices containing unrelated logic:          0 out of   1,918   0%
      *See NOTES below for an explanation of the effects of unrelated logic.
  Total Number of 4 input LUTs:       3,495 out of   3,840   91%
    Number used as logic:             3,362
    Number used as a route-thru:        133
这个是openmsp430在xilinx上的综合结果,已经包含了硬件DEBUG模块、一个16位定时器,看门狗和16位的乘法器,资源和51多一点,但是功能更加强大。51内核寻址模式太多,不如学习openmsp430,典型的RISC结构,寻址简单,指令条数也比51少很多。

出0入0汤圆

发表于 2015-1-7 11:28:46 | 显示全部楼层
厉害啊,学习了。

出0入0汤圆

发表于 2015-8-7 15:16:11 | 显示全部楼层
重新顶一下,目前这个项目有啥进展吗?

出0入0汤圆

发表于 2015-8-12 14:54:04 | 显示全部楼层
十分支持开源
回帖提示: 反政府言论将被立即封锁ID 在按“提交”前,请自问一下:我这样表达会给举报吗,会给自己惹麻烦吗? 另外:尽量不要使用Mark、顶等没有意义的回复。不得大量使用大字体和彩色字。【本论坛不允许直接上传手机拍摄图片,浪费大家下载带宽和论坛服务器空间,请压缩后(图片小于1兆)才上传。压缩方法可以在微信里面发给自己(不要勾选“原图),然后下载,就能得到压缩后的图片】。另外,手机版只能上传图片,要上传附件需要切换到电脑版(不需要使用电脑,手机上切换到电脑版就行,页面底部)。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2024-6-8 05:47

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

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