MC8051_IP核简单指令的仿真步骤.pdf

  1. 1、本文档共7页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
MC8051_IP核简单指令的仿真步骤

1. MC8051 IP 核简单指令的仿真步骤 (作者:老邹 zouzhibin@ MC8051 IP核下载地址 http://oregano.at/ip/8051.htm) 为了能够比较仔细的观察、分析、验证 MC8051 IP 核,我让MC8051 IP 核运行一个简单 的程序,利用ModelSim仿真,然后和工业标准的8051微控制器指令集对比结果,查看MC8051 IP Core 和工业标准 8051是否兼容。 1.1仿真步骤 整个仿真过程步骤如下: 1、设计程序,输出 hex 文件 利用 Keil 公司的 C51 开发工具 uVision3 建立工程,编写仿真程序,编译工程,输出以 Intel HEX 文件格式保存下来的 hex 文件。Intel HEX 文件是由一行行符合 Intel HEX 文件 格式的文本所构成的 ASCII 文本文件。Intel HEX由任意数量的十六进制记录组成。每个记 录包含 5 个域,它们按以下格式排列::LLAAAATT[DD...]CC 每一组字母对应一个不同的域,每一个字母对应一个十六进制编码的数字。每一个域由 至少两个十六进制编码数字组成,它们构成一个字节,就像以下描述的那样: : 每个Intel HEX 记录都由冒号开头. LL 是数据长度域,它代表记录当中数据字节(DD)的数量. AAAA 是地址域,它代表记录当中数据的起始地址. TT 是代表 HEX 记录类型的域,它可能是以下数据当中的一个: 00–数据记录 01-文件结束记录 02–扩展段地址记录 04–扩展线性地址记录 DD 是数据域,它代表一个字节的数据.一个记录可以有许多数据字节.记录当中数据字 节的数量必须和数据长度域(LL)中指定的数字相符. CC 是校验和域,它表示这个记录的校验和.校验和的计算是通过将记录当中所有十六进 制编码数字对的值相加,以 256 为模进行以下补足. 2、 导入 ROM 文件 利用工具 hex2dual.exe(在目录 mc8051_design\msim 中有 hex2dual.c,编译可得 exe 文件)将 hex 文件转换成程序 ROM 数据格式 dua 文件,将此文件更名为 mc8051_rom.dua, 拷贝到” mc8051_design\msim”目录中即可。 3、ModelSim 仿真 第一步:启动 ModelSim,将工作目录设置到 mc8051_design\msim 中,因为此目录是 MC8051 的仿真目录,里面存储了很多用于仿真的文件。 第二步:建立 work 库。点击菜单选项 File-New-Library,在弹出的新建对话框中输 入 Library Name:work和Library Physical Name:work。也可以使用 ModelSim 的命令: vlib work和 vmap work work,完成建库过程。 第三步:建立编译环境。因为 ModelSim 支持批处理文件,可以将想要编译的程序文件 写在一个 do文件中,比如:vcom mc8051_p.vhd,就表示编译 mc8051_p.vhd 文件。 第四步:建立仿真环境。ModelSim仿真的结果都是通过 WAVE 的方式输出的,所以一般 在仿真之前都会编写一个仿真 do 文件,将要观察的信号添加到 WAVE 窗口中。 第五步:运行仿真批处理文件,开始仿真,同时可以在 WAVE 窗口中观察仿真结果。另 外,在 ModelSim 中也支持调试。可以在源程序中设置断点,单步跟踪,不过要求代码是行 为描述方式的。 1.2仿真程序源码解析 1.2.1 源程序解析 在 uVision3工程中输入的源程序 test.asm 如下: mov 20h,#10h ;将10H送入空间地址 20H 处 mov a,20h ;将地址 20H的值送入寄存器 a mov a, #56h ;将56H 送入寄存器 a subb a, #10h ;寄存器a减 10H,结果保存在寄存器 a addc a, #23h ;寄存器a加 23H,结果保存在寄存器 a end 本仿真主要测试 MOV、SUBB和 ADDC 三条指令,所以写了一个简单的程序。 1.2.2 hex 文件解析 uVision3 编译输出

文档评论(0)

xxj1658888 + 关注
实名认证
内容提供者

教师资格证持证人

该用户很懒,什么也没介绍

领域认证该用户于2024年04月12日上传了教师资格证

1亿VIP精品文档

相关文档