MCS51单片机反向解剖以及正向设计的研究 第14页
第四章McS一51单片机的正向设计
4.1正向设计概述
1.正向设计的过程
目前集成电路的主流设计是ASIC(ApplieationspeeifieIntegrated
Circuits)设计,自上至下ASIC芯片前端设计的主要过程如图4一1所示。前端
设计主要包括逻辑设计和仿真,得到门级电路的原理图或网表;后端设计主要包
括布局、布线、版图设计等,得到最终生产所用的GDSll文件。
前端设计时首先要进行系统级的设计,主要是设计系统的体系结构。包括对
系统进行模块划分,定义端口信号,并设计整体时序等。可以用C语言完成建
模,也可以利用现在比较流行的SystemC实现;然后进行RTL级(Register
TransferLevel)的设计,RTL级描述通常使用硬件描述语言HDL完成。这一
层次需要做仿真,以便保证设计的正确性;接着做逻辑综合,也就是把语言描述
的设计映射到实际工艺上加以实现,综合库中应该包括各个门单元的工艺参数。
这一层次需要做后仿真,以确保时序上满足要求!27}。
规规格设计计
行行为级仿真真
RRRTL级描述述
RRR丁L级仿真真
逻逻辑综合、优化化
门门级仿真、定时检查查
输输出门级网表表
图4一1自上至下硬件系统的设计过程
2、硬件描述语言VHDL
第四章MCS一51单片机的正向设计
VHDL全称VeryhighsPeedintegratedeireuitHardwareDeseriPtion
Language,即甚高速集成电路硬件描述语言。VHDL语言覆盖多个级别、多个
层次,具有规范性强、可读性好等特点,因此成为大规模集成电路设计的主要手
段之一。1987年IEEE制定了第一个VHDL标准,编号IEEEStd1076一1987
(VHDL一87)。1993年IEEE又将修改后的版本制定为新标准IEEEStd1076-
1993(VHDL一93)【281。
VHDL的主要优点在于:
①VHDL语言为国际标准,所以通用性较强,几乎不用经过修改就可以将
VHDL语言描述的电路在不同厂家开发的EDA工具上使用,具有很好的可移植
性;
②从系统级、RTL级到门级电路,均可以利用VHDL语言进行硬件电路设
计,因此具有很强的硬件描述能力;
③VHDL语言设计电路与制造芯片的工艺技术无关,源程序不会因为采用
的工艺技术不同而改变描述形式;
④由于集成电路规模不断地增大,IC设计者进行芯片设计时需要大量复用
知识产权模块(IPcore)。利用VHDL设计的电路经过编译、仿真、综合、测试,
可以形成软核(softcore)提供给IC设计者使用,因此完全符合集成电路发展
的总体趋势。
一个完整的VHDL语言程序包括实体(Entity)、结构体(Arehiteeture)、
配置(Confi,ration)、包集合(Paekage)和库(Library)5个主要部分。其
中,实体主要用来定义设计单元的输入、输出端口以及与外部环境的接口,是对
外部引脚信号的名称、数据类型和输入、输出方向的描述;结构体是用来描述一
个基本设计单元的具体功能,包括行为、元件以及内部的连接关系等,必须跟在
实体的后面;配置语句则用于描述层与层之间的连接关系以及实体与结构体之间
的连接关系。利用配置选择不同的构造体来进行性能对比试验,从中可以得到性
能最佳的构造体;包集合用来罗列语言中所用到的信号定义、常数定义、数据类
型、元件语句和函数定义等,是库结构中的一个层次;而库是经过编译后的数据
的集合,用来存放有关包集合、实体、结构体和配置的定义【29}。
3、硬件描述语言的可综合性问题
使用硬件描述语言HDL设计集成电路,最重要的问题之一可能就是语言描
述的可综合性。语言中虽然提供了许多自由灵活的描述方法,但是综合器却不能
第四章MCS一51单片机的正向设计
支持所有的语法规则。因此在编写程序源代码(激励文件除外)时一定要掌握哪
些描述是可综合的,哪些描述是不可综合的。
不同的综合器对语法规则的支持会有所区别,但大体上差不多。以SynPlify
为参考综合器,下面给出一些VHDL语言可综合风格代码应遵循的要点【30]:
①不在一个以上的进程中对同一个信号进行赋值;
②不要使用电平触发和边沿触发的混合描述形式;
③使用case语句时,应该将表达式的所有取值都一一列举出来;
④描述时序逻辑电路时,一个进程中除了一个时钟触发以及复位、置位触发
之外,不要再增加其它的触发信号;
⑤描述组合逻辑电路时,最好加上else语句,穷尽所有可能的if条件,避
免生成多余的锁存器。
4.2Mcs一51单片机各功能模块的正向设计
4.2.1端口模块的设计
MCS一51系列单片机芯片有4个8位并行端口PO、Pl、PZ和P3,每个
端口的功能各不相同。PO口是三态双向口,可以作为数据总线口,也可以用于
输出外部存储器的低8位地址;Pl口是准双向口,是专门提供给用户使用的1/0
口;PZ口也是准双向口,供系统扩展时作高位地址线用;P3口是双功能口,不
仅可以同PO、Pl、PZ口一样作为普通1/0口使用,还具有特殊的第二功能作
用,如表4一1所示。
表4一1P3端口第二功能
引引脚脚第二功功第二功能能引脚脚第二功功第二功能能
能能能标记记记记能标记记记
PPP3.000RXDDD串行输入口口P3.444TOOO定时/计数器0外部输入入
PPP3.111TXDDD串行输出口口P3.555T111定时/计数器1外部输入入
PPP3.222INTOOO外部中断O输入入P3.666WRRR外部数据存储器写选通通
PPP3.333INTIII外部中断1输入入P3.777而而外部数据存储器读选通通
从本论文所解剖的芯片硬件电路中可以获得,每个端口都有一个专用寄存
器,分别对应PO、Pl、PZ和P3的锁存器。由端口送入的数据或者地址都要经
第四章MCS一51单片机的正向设计
过锁存器的锁存,由芯片内部其它功能模块输出的结果也要经过端口锁存器的锁
存。当端口被选中时再由端口锁存器送入内部模块或者通过端口锁存器输出到芯
片外引脚。
PO端口模块设计如图4一2所示,p0(7一0)为P口输入、输出信号,定义为
双向;data_gb(7一0)为端口锁存后内部数据总线,也定义为双向:
po:INOUTstd_logie_veetor(7downtoo):
data--gb:INOUTstd一ogie少eetor(7downtoo);
add_gb为全局地址总线,indirec花sel为端口选通线。不同的地址对应选
中不同的端口,如4.3节中表4一2所示。当满足“(addr--gh=”10000000”)AND
(indiree仁sel=’o’)”时,po端口被选中。po端口为数据/地址复用口,因此程
序中也设计了端口控制线PO_ctri。当PO控制线为高时,做为地址线使用,PO
口输出外部存储器低8位地址;当PO控制线为低时,做为数据线使用,数据可
以由PO端口送入。
图4一2PO端口模块框图
Pl口、PZ口以及P3口可以类似于PO口进行设计,当复位信号intjst
为高时,1/0口被复位。当端口选通线为低,对应地址为90H时,Pl端口被选
中;当对应地址为AOH时,PZ端口被选中;当对应地址为BOH时,P3端口
被选中。程序中还分别设计了写有效信号wr--gb以及读有效信号rd_gb来控制
数据写入芯片内部数据总线,或者数据从端口寄存器读出。
P3口是一个双功能口,具有第二功能,如表4一1所示,因此设计时必须考
虑P3口每一位的功能转换。整个芯片的设计中包含内部控制模块的设计,从该
模块中输出P3端口第二功能控制线。当P3口某位第二功能控制线为高时,对
<< 上一页 [11] [12] [13] [14] [15] [16] [17] [18] [19] 下一页
MCS51单片机反向解剖以及正向设计的研究 第14页下载如图片无法显示或论文不完整,请联系qq752018766