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

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

手机号码,快捷登录

手机号码,快捷登录

找回密码

  登录   注册  

快捷导航
搜帖子
查看: 5292|回复: 5

[求助] 关于OpenCores上的OC8051核的仿真及验证

[复制链接]
发表于 2016-7-22 10:37:31 | 显示全部楼层 |阅读模式

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

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

x
最近在学习oc8051,是参考leishangwen版主提供的《DE2上使用OC8051运行点灯程序》先来实践一下,其中(一)可以实现,但是(二)不能实现,下到板子上后led灯全亮,通过rtl仿真,看到p1口的输出,先是复位,然后0x01,然后变成0x00,之后又始终为0xFF,通过(二)给的汇编程序,发现跳转指令好像不能正确执行诶,因为rtl仿真时看到r2等寄存器好像不是按照程序变化的,不知道我理解的是否正确(仿真图如下)。我也通过网上查找一些资料,好像是说oc上下的8051存在一些bug,导致某些指令不能正常执行。

汇编程序:




  1. LJMP 100h
  2.      org 100h
  3.      mov r2,#01
  4.      mov p1,#0x01
  5. incR1:
  6.      mov p1,r1
  7.      call delay
  8.      inc r1
  9.      jmp incR1

  10. delay:
  11.      mov r5,#00
  12. dly:
  13.      mov r7,#00
  14. dly1:
  15.      mov r6,#03
  16.      djnz r6,$
  17.      djnz r7,dly1
  18.      djnz r5,dly
  19.      ret



复制代码




仿真图:

仿真图

仿真图






《DE2上使用OC8051运行点灯程序》
http://download.csdn.net/detail/leishangwen/5173363
DE2上使用OC8051运行点灯程序(一)
http://wenku.baidu.com/view/8df1381b6c175f0e7cd13783.html
DE2上使用OC8051运行点灯程序(二)
http://wenku.baidu.com/view/a9c444f3aef8941ea76e05c9.html
 楼主| 发表于 2016-7-22 11:16:32 | 显示全部楼层
暂时发现的一些问题:
1.目前从OpenCores网站上下载的OC8051在执行DA和JBC两条指令的时候是有BUG的,而且OC8051的单时钟周期指令是在使用流水线的情况下完成的,如果遇到指令流水线冲突的情况(如下一条指令需要读取上一条指令写的寄存器),那么指令就需要2个时钟周期完成。所以OC8051每条指令的执行时间不是固定的。
2.网上的一些资料有提到:MOV MOVC MOVX SETB JBC DA等指令可能存在错误。
3.关于某些错误修改,可参考《在FPGA上对OC8051IP核的修改与测试_杨先文》一文。
 楼主| 发表于 2016-8-22 14:45:55 | 显示全部楼层
自己顶一下,假期没怎么接触了,回来再好好研究下。
发表于 2016-8-23 15:55:50 | 显示全部楼层
关于OpenCores上的OC8051核的仿真及验证
发表于 2018-11-19 22:36:53 | 显示全部楼层
感謝大大無私分享
发表于 2023-11-17 12:23:42 来自手机 | 显示全部楼层
open cores上提交有12个错误,没人维护了
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

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


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

GMT+8, 2024-11-22 09:16 , Processed in 0.025361 second(s), 10 queries , Gzip On, Redis On.

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