mc8051用户手册中文版
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
编译:陈拓 chentuo2000@
2009年9月2日
MC8051 IP核可综合 VHDL 微控制器 IP-Core
用户指南
Web: http://oregano.at/services/8051.htm
Contact: mc8051@oregano.at
Version 1.1
June 2002
8051 IP核 - 概述
关键特性
y全可综合设计
y指令集兼容工业标准8051微控制器
y优化的架构是该核达到每操作码1到4个时钟
y使用全新架构速度更快至10倍
y用户可选择定时器/计数器以及串口单元的数目
y活动定时器/计数器以及串口单元可以通过特殊功能寄存器选择
y使用并行乘法器单元优化乘法命令(MUL)的实现
y使用并行除法器单元优化除法命令(MUL)的实现
y无复用的I/O端口
y256K字节的内部RAM
y多至64K字节ROM和多至64K字节RAM
y源代码在GNU LGPL许可证下可以自由修改
y技术独立,结构清晰,注释良好的VHDL源码
y通过调整/修改VHDL源码易于扩展
y通过VHDL常量可参数化
8051 IP核-方块图
顶层模块及其子模块描绘于图1。
图1:8051微控制器IP核的方块图
表1:顶层设计名字
设计层次
设计层次和相应的VHDL文件描绘于图2。
图2:8051微控制器IP核的设计层次
VHDL源文件在整个设计中统一命名:
y VHDL实体 entity-name_.vhd
y VHDL构造 entity-name_rtl.vhd用于包含逻辑的模块
entity-name_struc.vhd用于仅连接子模块的模块
y VHDL配置 entity-name_rtl_cfg.vhd
entity-name_struc_cfg.vhd
核本身由子模块、定时器/计数器、算数逻辑单元AUL、串口和控制单元组成。RAN和ROM块的生成通常与所选择的目标技术相对应,并因此在最高设计层次被实例化。生成的RAM块和BIST结构 - 用于ASIC生产测试集成 - 可以容易地在该设计层次添加。
时钟域
IP核是一个全同步的设计。有一个单一的信号时钟控制每个存储单元的时钟输入。 8051
未使用时钟门控。时钟信号不反馈到任何组合元件。中断输入线用标准的两级同步阶段被同步到全局时钟信号,因为它们可能被用另一个时钟操作的外部电路所驱动。并口输入信号不用这种方式同步,如果用户决定需要同步这些信号,它也可以容易地被添加。
存储器接口
由于优化的架构,从存储器块来去的信号没有被寄存。所以在同步输入和输出期间定时
约束应该被放置在相应的端口上,并且同步存储器块应该被用于mc8051 IP核。
配置8051 IP核
下面将讨论8051微控制器IP核的参数化设计,并且将给出在大设计中嵌入IP核的信息。
定时器/计数器,串口和中断
原始的微控制器设计只提供2个定时器/计数器,1个串口和2个外部中断源,而面派生的8051在片上提供更多的资源。但有时这是一个限制因素,因此我们决定在8051 IP核中实现一些可参数化的端口。该8051微控制器IP核简单地用改变VHDL实例的值的方法提供能产生多至256个各种单元的能力。
在VHDL源文件mc8051_p.vhd中包含的C_IMPL_N_TMR可以从1到256取值以控制该特性。组成这些间隔结果的值在核的非功能配置中。图3显示了VHDL代码相应的行。
图3:用于配置定时器/计数器单元,串口和外部中断的VHDL源代码 不能同时单独改变3个常量C_IMPL_N_TMR,C_IMPL_N_SIU,C_IMPL_N_EXT。常量C_IMPL_N_TMR每增加1意味着多生成2个附加的定时器/计数器单元,一个附加的串口和2个附加的外部中断源。
为了能够访问到所有已生成单元的寄存器,而不改变微控制器的地址空间,仅有的2个8位寄存器被推断为特殊功能寄存器,它们是TSEL(地址0x8Eh用于定时器/计数器单元)和SSEL(地址0x9Ah用于串口单元)。如果这些寄存器指向一个不存在的设备号,默认单元号1将被选择。电路描绘在图4中。
图4:通过附加的TSEL寄存器选择一个TCON寄存器
如果在这个特殊的器件没有被TSEL选择期间发生一个中断,相应的中断标志保持置位直到匹配的中断服务例程被执行。在器件还没有被选择的这段时间内的随后的中断,仅有一个信号调用中断服务例程。
可选指令
在某些情况下不实现那些不需要而且消耗许多芯片面积的指令是有意义的。这些指令是8位乘法器,8位除法器和8位十进制校正。因此在mc8051_p.vdl源文件中的VHDL常量C_IMPL_MUL被设置为0时,用于8位乘法的MUL指令可以被跳过。同样通过设置VHDL 常量C_IMPL_DIV为0时,8位除法DIV可以被跳过。设置常量C_IMPL_DA为0时,十进制校正指令可以被跳过。VHDL源代码相应的行见图5。
图5:显示指令怎样被跳过的代码片段
如果3个可选指令都不实现,可节省10%的芯片面积。
并行I/O端口
IP核仅提供原始的8051微控制器的4个双向8位I/O端口以方便与微控制器的 mc8051
环境交换数据。为了在IC设计中易于集成我们的核,原始的多功能端口不必重新构建并且所有信号(例如,串口,中断,计数器输入和外部存储器接口)都已经被分别馈送到核的输出(见图1)。并行I/O端口的基本结构示于图6。
图6:并行I/O端口的基本结构