我的一个开源项目(和Keil联调的8051core)
打算把我们和Keil联调的Debug模块,移植到一个开源8051的IP上然后Open出去,做开源的case以开源的为基础,无版权争议
做成之后,它就是FPGA开发板和8051仿真器的二合一
完成后,
1、FPGA板上跑8051仿真,可以自己增删外设
2、纯粹当一个8051仿真器来使用
是以学习和展示为目的的,对用户而言
目标是OpenSource,所以主要是考虑架构简洁和文档完整,用户很容易搭建成功
然后再考虑性能和可靠性
IP选择,目前暂时选的是OC8051和MC8051,OC8051先做
FPGA的选择,Altera的为首选,Xilinx的为备选,2个都支持 OC8051是OpenCore上的一个OpenSource项目,项目主页是http://opencores.org/project,8051
OpenCore上还有一个以它为基础的Trubo8051,喜欢扩展的朋友可以参考下
MC8051的官方网站是 http://www.oreganosystems.at/
它是VHDL写的,我更倾向于Verilog所以选了OC8051先做,这个以后也是要做的,但不是现在
首选是去官方下载,可以拿到最新的版本。
上国外网站网速慢的朋友,可直接下载附件(这是最近于官方网站下载的,后续也会以此版本为基础做移植)
OC8051提供的很完整,稍微修改,已经在ModelSim里跑起来了。
多数指令都是1CLK的,跳转指令需要6CLK,我觉得跳转是有优化空间的,不过暂时没这个实施想法。
测试指令是:
Loop:
mov P1,#0x55
mov P1,#0xAA
mov P1,#0x55
mov P1,#0xAA
mov P1,#0x55
jmp Loop
下一步是在FPGA上跑起来,我先看看手头哪个板子可以拿来直接用上。
顶楼主,入门FPGA的时候看过楼主的帖子,映像深刻 楼主有空还可以优化一下OC8051,目前还很占资源,
微软的TASK51占用资源就小很多,只可惜源码不是公开的,
在部分厂家的FPGA上无法使用 从实用角度讲,如果想要流片选内核IP的话,OC8051和MC8051都不适合
但学习CPU设计的话,这2个还都不错的
我的感觉是他们只侧重部分指标,综合兼顾做得少
这个开源项的目标也是不是优化它,而是为他增加一个Keil下的调试功能,便于后续的测试和应用。 这个要支持下,我尝试使用了可以下载的8051核心,可是都不是太给力! 我也顶,一看就让人兴奋的帖子。{:lol:} 本帖最后由 sky5566 于 2013-4-19 22:15 编辑
Google 搜的,發現問題很多...{:shutup:}
雖然上述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{:titter:}
我说OC8051不实用,不是说他有明显的BUG,而是他未做综合考量。
比如它的总线wishbone兼容,这样有很多开源的外设IP可以更容易挂上去,但这个总线对8051来说有些奢侈了。
oc8051提供了很好的testbench以及utility工具,这些都是比其他opensource更接近商业IP的地方。
你上面举的的例子,应该是来自这篇文章《在FPGA上对OC8051IP核的修改与测试作者:杨先文 李峥 来源:解放军信息工程大学》
对xram的访问,后续版本的oc8051已经改用了wishbone总线的方式,使用ack信号做柔性连接,这样外部ram的处理速度,可以通过ack信号来协调。
既然已经花了那么多精力去分析和解决问题,不明白他们为何去写一篇文章发表到杂志上,而不是参与OC8051的改进和完善,Opensource社区太缺少国人的声音了。 Mark…
来自:amoBBS 阿莫电子论坛 Windows Phone 7 客户端 顶 一下 FPGA板上跑8051, 增加个Keil下的调试功能 这么好的 东西这么 没有裤子?? 等待进展测试报告! mark。
仿真器。
跟踪记录 支持mcuplayer, 我近期就做跑跑这两个核 。 mark, thanks 这个可以试试 mark, thanks McuPlayer 发表于 2013-4-19 12:22
OC8051是OpenCore上的一个OpenSource项目,项目主页是http://opencores.org/project,8051
OpenCore上还有一 ...
请问楼主,有什么资料可以参考学习,
来应用这个核呢,谢谢 不清楚如何将c语言生成的coe文件嵌入到这个核中呢?谢谢 mcupro 发表于 2013-5-11 23:15
支持mcuplayer, 我近期就做跑跑这两个核 。
请问是否跑成功了,能否向您请教几个问题,谢谢
譬如,c生成的coe文件是如何嵌入进去的? 谢谢 板子有吗 板子有吗 等测试报告 向楼主学习,等我学会了verilog再看 我也在看这个核,有机会可以跟楼主交流交流,但是没看到那里说用到了wishbone总线 sky5566 发表于 2013-4-19 22:00
Google 搜的,發現問題很多...
雖然上述OC8051 IP核宣稱相容所有8051指令系統,但是實際執行時 ...
Sir:
Where is the source from you?
Thank you. 顶楼主,入门FPGA的时候看过楼主的帖子,映像深刻 终于碰上OC的网友了{:handshake:} 顶顶更健康{:lol:} 楼主怎么没有信了?!!加油!等待好消息 McuPlayer 发表于 2013-4-19 12:23
OC8051提供的很完整,稍微修改,已经在ModelSim里跑起来了。
多数指令都是1CLK的,跳转指令需要6CLK,我觉 ...
楼主可以出个教程撒比如怎么用quartus ii综合, 怎么在modelsim里面仿真等等, 可以找阿莫申请专栏撒 刚开始学习FPGA,谢楼主的分享! 都是牛人啊 openmsp430,带调试器,可以用eclipse单步调试,设置硬件断点 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少很多。
厉害啊,学习了。 重新顶一下,目前这个项目有啥进展吗? 十分支持开源
页:
[1]