选题背景依据意义研究内容及现状分析Word文件下载.docx
- 文档编号:7714978
- 上传时间:2023-05-08
- 格式:DOCX
- 页数:23
- 大小:240.81KB
选题背景依据意义研究内容及现状分析Word文件下载.docx
《选题背景依据意义研究内容及现状分析Word文件下载.docx》由会员分享,可在线阅读,更多相关《选题背景依据意义研究内容及现状分析Word文件下载.docx(23页珍藏版)》请在冰点文库上搜索。
如果是立即数在S1节拍就直接将其发到DB上。
指令译码器
是MCU的核心模块之一,对操作码进行集中的分析处理,具有较复杂的运算控
制功能。
IDEC采用了分步译码的结构。
从IRA读取指令后,首先对IRA[13]、IRA[12]
两位译码,确定该指令的类别。
11对应立即数操作类指令,01对应位操作类指
令,10对应GOTO和CALL两条控制类指令(这是两条影响PC的程序分支指
令),00对应字节操作类指令,以及剩下的5条控制类指令:
CLRWDT、SLEEP、
NOP、RETFIE、RETURN,这5条控制类指令的特点是高7位全为0。
IRA高两
位译码完成后就可以判断指令的类别,然后分类继续进行译码。
在后面的译码过
程中也采用了这种先对高位译码判断类别再分类处理的译码结构。
译码完成后对
应的微控制信号即传送至ALU、CONTROLLER等模块进行操作。
IDEC的主要部分是组合逻辑构成的译码电路,组合逻辑电路由于电路的传
输延迟,会导致一些微控制信号产生毛刺。
大部分指令不受毛刺的影响,唯一例
外的是SLEEP信号。
因为SLEEP信号是某些触发器的时钟信号,如果产生毛刺,
则会造成这些触发器的误触发。
为此专门为SLEEP设计了一个触发器,在MC0
为高电平的S1节拍系统时钟上升沿触发,此时译码信号已足够稳定,这样就消
除了可能出现的毛刺。
触发器在下一周期S0被清零。
下面是指令和微控制信号的对照表,等号左边表示微控制信号,右边表示会
产生该信号的指令。
//加使能指令组
ENADD=ADDWF|SUBWF|INCF|INCFSZ|DECF|DECFSZ|
ADDLW|SUBLW,
//与使能指令组
ENAND=ANDWF|BCF|BTFSC|BTFSS|ANDLW,
//或使能指令组
ENOR=IORWF|BSF|IORLW,
//面向位的指令组
DCtK=BCF|BSF|BTFSC|BTFSS,
//涉及到W寄存器的指令组
AtK=H0|IORWF|ANDWF|XORWF|ADDWF|SUBWF|IORLW|
ANDLW|XORLW|ADDLW|SUBLW,
//需要取补码或反码的指令组,其中前三条指令需要取补码,后两条
//需要取反码
INVK=DECF|COMF|DECFSZ|BCF|SUBWF|SUBLW,
//需要在运算中加1的指令组
CIN=INCFSZ|INCF|SUBWF|SUBLW,
//影响进位标志位的算术运算类指令组
ENCF=ADDWF|SUBWF|ADDLW|SUBLW,
ENCFRL=RRF|RLF,
//影响零标志位的指令组
ENZF=ADDWF|SUBWF|DECF|IORWF|ANDWF|XORWF|
COMF|INCF|IORLW|ANDLW|XORLW|MOVF|CLR|
ADDLW|SUBLW,
//执行结果送至f寄存器的指令组
UtF=DESF|BCF|BSF,
//执行结果送至W寄存器的指令组
UtA=DESA|RETLW|MOVLW|IORLW|ANDLW|XORLW
|ADDLW|SUBLW,
//控制类指令组
CLRP=H0|CLR,
//跳转类指令组13第三章MCU控制逻辑设计
LDPC0=GOTO|CALL,
NEWI=BTFSC|INCFSZ|DECFSZ
MCU的运算逻辑主要指算术逻辑单元(ALU)。
ALU的作用是:
根据
IDEC译码得到的微控制信号,在正确的时钟节拍对数据总线上的数据进行算术
运算、逻辑运算、移位运算等操作,运算结果根据要求发回DB或写入相应寄存
器,有些操作还会影响到状态寄存器中的状态位。
ALU需要能够完成与PIC16
系列单片机完全兼容的全部35条指令的相应操作,主要包括加、减、加1、减1、
与、或、非、异或、带进位左移、带进位右移、高低字节交换几类。
控制类及数
据转移类指令,也有相应的体现。
除以上功能外,还具备一级8位堆栈电路,以
满足中断响应的要求。
ALU除需接入数据总线DB、指令总线IRA[9:
7](位选位)
外,还需指令译码器的运算使能信号、控制器的控制信号,以及节拍信号。
ALU
是MCU的核心模块之一,ALU的设计水平在很大程度上决定了一款MCU的
工作能力。
ALU的结构
ALU的结构可以分为三部分,第一部分负责操作数的处理输入,第二部分
负责操作数的运算,第三部分负责结果的选择输出。
结构示意图见图4-1。
操作
数从图中结构体的最左侧进入,由运算性质决定是取操作数本身还是取反,以及
是否要有进位输入;
接下来是运算体,包括一个4位加法器,一个4位与门,一
个4位或门和一个4位异或门;
最后是结果输出,从第二级算术运算和逻辑运算
的结果里选择需要的结果送到数据总线上或保存在ALU内部的W寄存器里。
由
结构图可以看出每一次运算所有的运算体都参与,但是只有所要求的结果才会被
选中并送出。
传统的PIC系列RISC微控制器使用8位的运算单元,两级流水线定义为:
第一级,取指,第二级,在指令译码器中编译出指令,在ALU中进行相应的运
算,最后将运算结果写入数据存储器或累加寄存器ACC。
我们的单片机在不改
变两级流水线结构和一个机器周期4个节拍信号的前提下,采用了一种改进的ALU设计方法:
使用4位的运算单元,用一个节拍的时间取指译码,然后分两
个节拍分别进行低4位和高4位的运算,即在ALU内部再次流水线作业,最后
一个节拍回写结果。
改进后的ALU等效门数比传统方案减少了33%,显著地减
小了ALU的面积和功耗。
图4-1ALU结构框图
4.2.2ALU的工作流程
ALU的工作集中在S1-S3节拍,下面顺序介绍。
S1节拍:
完成数据的读入和低4位的运算及保存。
CLRP是由IDEC输出的
微控制信号,!
CLRP是ALU中使能外部数据输入的信号。
当CLRP为0(系统
执行所有的立即数操作指令、所有的位操作指令、除CLRF、CLRW、MOVWF3
条指令外的其他字节操作类指令、GOTO和CALL两条控制类指令)时,在S1
节拍DB上的8位数据被传送到ALU,其中低4位作为第一操作数PP,高4位
在系统时钟下降沿存入4位寄存器P74;
第2操作数KK根据指令类型,决定是
由表示位数的3位指令码译码得到还是取自ALU自己内部的累加器,取低4位。
在S1节拍进行运算,在系统时钟下降沿将结果存入U[3:
0].
S2节拍:
完成高4位的运算和保存。
将高4位读入PP作为第一操作数,KK取已经选定的变量的高4位作为第2操作数,进行运算。
在系统时钟下降沿
将结果存入U[7:
4]。
S3节拍,UtD为1。
如果没有移位运算则直接将U发送到DB,如果有移
位就把数据发送到相应的位上。
UtF=1那么系统时钟高电平时结果写入RAM(见
RAM模块),UtA=1那么系统时钟下降沿结果写入W。
运算结果的产生
ALU的算术和逻辑运算电路由算术加(包括加1、减1、加法、减法4种情
况)、逻辑与、逻辑或、逻辑异或4部分组成,4种运算的结果和4个运算输出
使能信号各自相与(即使使能信号为0,计算还是进行了,只是输出被屏蔽而已),
通过或门输出给结果中间寄存器UU,当前进行的运算输出使能信号为1,其他
为0,这样就可以把当前进行的运算结果输出到UU。
加1由CIN=1完成。
减法是通过取反加1完成,即需
要KK取反,且CIN=1。
减1操作时AtK、DCtK均为低电平,且INVK=1,则
KK=4’b1111,PP与其相加即实现减1。
如果指令启动与、或运算,与使能信号
ENAND、或使能信号ENOR为高电平,UU为相应的运算结果UAND、UOR。
其中位清0指令,需要将源自独热的DCBIT传来的KK取反,则KK在欲清0
位为0,其他各位都为1,然后进行与操作,即实现位的清0。
位置1只需直接
将PP与相应KK进行或操作即可。
如果指令启动异或操作,ENADD、ENAND、
ENOR均为低电平,它们的或非信号ETMP为高电平,UU选择异或运算结果
UXOR。
除按位异或外,对外部数据的取反也是在这里进行,KK先变为4’b1111,
PP再与其按位异或,即完成了取反。
在移位运算时,根据移位信号把数发送到U对应的位上就可以了。
图4-2
为ALU执行指令时的仿真波形图。
图中200ns开始验证了MOVLW指令,将d9H送入ACC。
此后验证了
ADDLW、IORLW、XORLW、SUBLW几条典型指令,1000ns到1200ns为减法
指令并且预算结果欲写入PCL。
1200ns至1400ns,MC0=0,MC1=1,S1节拍
DB上的数值为上个机器周期的运算结果24H。
此后S3节拍,DB上的数值变为
了b4H,这是由于MC0仅需在S1节拍锁住ALU,使得S1节拍低4位运算结果
保持不变,从而保证PCL在S1节拍得到正确的数值。
S2节拍ALU对高4位进
行了运算,执行过程为b’0010-b’0110=b0010+b’1001+b’0001=b’1011,所以S3节
拍DB上的数值为B4H,但此结果并不会影响到PC,因为PCL仅在S1节拍末
接受数据。
1400ns至2200ns验证了RLF、RRF、SWAPF、BCF指令。
此后验证中断功
能,IEXE变为高电平后的S1节拍末(2300ns)ACC值6aH压栈到ACCSTK,
2400ns到2600ns执行MOVLW指令,将d9H送入ACC,2600ns开始执行RETFIE
指令,2800ns后ACC恢复原值6aH。
第五章MCU存储器设计
这款MCU的程序存储介质为ROM,容量8kx14,数据存储介质为RAM,
容量128x8,均是使用了厂家提供的成熟IP核心。
我们需要设计的是ROM/RAM
的外围电路,即存储介质与MCU核心的交互接口。
5.1程序存储器外围电路(ROM)
5.1.1程序存储器外围电路的功能
程序存储器外围电路的功能是:
在系统给出一定的PC地址信号,并且使能
端使能的情况下,将存储的指令码传送至指令总线,引导单片机进行正确的运算
和控制。
图5-1为程序存储器结构框图。
图5-1程序存储器结构框图
5.1.2程序存储器外围电路的设计
ROM外围电路的主要工作分两部分:
将当前指令发送到IDEC。
在ROM读使能时,根据PC值将对应地址指令码
读取到指令寄存器ROMDB;
在MCO为高电平的指令周期的S0节拍的系统时
钟上升沿,将指令码锁存到指令总线IRA,提供给IDEC准备译码。
具体实现是
ROM8kPC通过一个3态门输出给ROMDB,ENOSC作为3态门控制信号。
IRA
的输入信号经过一个选择器,由S0&
MC0决定是输出ROMDB的值还是继续锁
存IRA。
总共有14个这样的单元来完成14位指令码的读取和发送。
发送立即数。
在IRA[13]为1,也就是指令码为立即数操作时,如果由35
CONTROLLER模块输出的IDEC译码使能信号PLAEN为高电平,那么在S1节
拍将IRA低8位发送到DB上。
总共有8个这样的单元来完成8位数据的发送。
ROM外围的14位寄存器阵列由14个触发器组成,三态控制器由8个三态
门组成,一些辅助的控制逻辑由一些基本组合逻辑电路组成。
图5-2和图5-3为
ROM外围电路的门级仿真波形。
图5-2ROM控制电路仿真波形图1
图5-3ROM控制电路仿真波形图2第五章MCU存储器设计
36
由图5-2和图5-3可见,ENOSC为低电平时ROMDB为高阻态,指令寄存
器输入被断开,则S0系统时钟上升沿IRA为XXXX,DB对其读数为XX。
MC0
在950ns至1550ns被置0,指令寄存器由于受到MC0的控制作用,输出返回到
输入端,其值不变,相应DB值也不变。
在这一段内,ENOSC有一段被置0,
但没有对IRA造成任何影响。
PLAEN在1750ns至2350ns为0,前半段虽然IRA
最高位为1,但受PLAEN控制,DB读不到数。
后半段,即2050ns后IRA[13]
为0,因此DB一直为高阻态。
5.2数据存储器外围电路(RAM)
5.2.1数据存储器外围电路的功能
数据存储器(RAM),又称作文件寄存器,用于存储CPU在执行程序过程
中所产生的中间数据,按功能分为特殊功能寄存器和通用寄存器。
本模块实现的
是对12个特殊功能寄存器和128个单元的通用寄存器的读写控制。
5.2.2数据存储器外围电路的设计
RAM(文件寄存器)共有256个单元,组织为两页,每页128个,寻址范
围为00h-7Fh和80h-FFh。
RAM单元可以分为特殊功能寄存器和通用寄存器。
并
不是所有256个逻辑地址都有相应的物理单元相对应。
MCU共有12个特殊功能寄存器,其中间接寻址寄存器INDR物理上不存在,
访问INDR就是对文件选择寄存器FSR指定的寄存器单元进行操作,若FSR=00h
那么访问INDR就相当于访问非物理区。
在电路实现上为了便于设计,特殊功能
寄存器分散在电路各个模块中。
图5-4为基本RAM模块的结构图。
图中两边的fileaddress数字表示RAM
单元的逻辑地址,灰色的部分表示物理上并不存在的地址。
如图所示,通用寄存
器(GPR)占用第一页的20h-7Fh和第二页的A0h-BFh,共128个单元。
这些逻
辑地址是不连续的,而现实电路中128x8RAM的物理地址是连续的,RAM外围
电路需要通过地址转换,将逻辑上的A0h-BFh映射到物理上的00h-1Fh去。
这
是通过使用组合逻辑将逻辑地址与物理地址对应起来实现的。
九章MCU的动态时序仿真和静态时序分析
63
逻辑模拟方式运行,需要输入向量作为激励。
随着规模增大,所需要的向量数量
以指数增长,验证所需时间占到整个设计周期的50%,而最大的问题是难以保证
足够的覆盖率。
鉴于此,这种方法已经越来越少地用于时序验证,取而代之的是
静态时序分析技术。
静态时序分析技术是一种穷尽分析方法,用以衡量电路性能。
它提取整个电
路的所有时序路径,通过计算信号沿在路径上的延迟传播找出违背时序约束的错
误,主要是检查建立时间和保持时间是否满足要求,而它们又分别通过对最大路
径延迟和最小路径延迟的分析得到。
静态时序分析的方法不依赖于激励,且可以
穷尽所有路径,运行速度很快,占用内存很少。
它完全克服了动态时序验证的缺
陷,适合进行超大规模的片上系统电路的验证,可以节省多达20%的设计时间。
静态时序分析能提供验证百万门级设计所要求的能力,并在一个合理的时间内完
成。
静态时序分析也存在自己的局限性。
它只能确保综合后生成的网表在时序上
没有违反,但是如果综合后的网表在电路功能上与RTL代码不一致就无法检查
出来。
因此通常还需配套使用检查网表功能一致性的形式验证工具。
9.4使用Primetime对MCU进行静态时序分析
本设计使用的静态时序分析工具是Synopsys公司的Primetime。
Primetime提
供两种用户界面,图形用户界面(GUI)和基于Tcl的命令行界面pt_shell。
使用
Primetime的一般步骤是
[20]
:
设置设计环境。
首先使用setsearch_path和setlink_path命令设置设计和库
的查找路径,在定义link_path时必须把所有的库文件都写入里面,否则会导致
连接的失败。
读入设计和库文件,设置基本的时序约束,例如时钟的参数,时钟
到门的建立和保持时间等。
设置完毕后使用check_timing命令进行检查,可以检
查是否有遗漏的端口没有添加约束。
指定时序约束。
包括定义时钟周期、波形、时钟不确定度、潜伏时间、输入
输出端口的延时,以及为所有输入端设置驱动单元,为所有输出端设置电容负载。
可以将这些约束保存为dcsh、tcl或pt格式的脚本文件,下次使用时直接调用。
设置时序例外。
包括设置多循环路径,设置虚假路径,定义最大最小延时、
路径的分段。
静态时序分析会自动检测硬件上所有可能的路径是否存在时序违
反,而不管这些路径在设计中是否可能真的有数据通过。
因此正确指定虚假路径
可以大大减少误报。
指定的路径必须是完整有效的路径,具备正确的起点和终点。
完成上述步骤后,就可以生成报告文件,检查设计中是否存在时序上的违反。
62
图9-2MCU系统仿真波形图2
图9-2前面部分是一些典型指令的验证。
55950ns后对比较器控制电路进行
验证,从图中可以看到C1OUT变为高电平,CK变为62H,完全符合设计目的。
9.3静态时序分析介绍
仿真技术是ASIC设计过程中应用最多的验证手段,然而,现在的单片集成
系统设计正在将仿真时间推向无法容忍的极限。
在最后的门级仿真阶段,针对的
是几十乃至几百万门的电路,对仿真器第一位的要求是速度和容量,因此,性能
(仿真速度)和容量(能够仿真的设计规模)是验证中的关键因素,而此时仿真
器还必须支持SDF返标和时序检查以确保验证的精度。
传统上采用逻辑仿真器验证功能时序,即在验证功能的同时验证时序,它以九章MCU的动态时序仿真和静态时序分析
61
图9-1MCU系统仿真波形图1
如图9-1所示,系统外部复位后一直有PC指向0000H单元,经过NWDTO
上升沿后,下个机器周期S0节拍系统时钟上升沿将rom8kPC值读入IRA中,此
后先执行第一条指令,执行GOTO0040H,则MC0出现上升沿,导致系统内
部复位结束,RSTb变为高电平,但PC值仍然为0000H。
这是由于RSTb变为高
电平有延时,但这并不影响系统工作。
继续执行0000H单元内容GOTO0040H,
PC跳转为0040H。
此后验证了典型的算术逻辑运算指令。
MCU的动态时序仿真和静态时序分析
在ASIC设计完成后,需要对其进行验证以确定设计是否能实现要求的功能。
一般来说,要分析或检验一个电路设计时序方面的特征有两种主要手段:
动态时
序仿真(DynamicTimingSimulation)和静态时序分析(StaticTimingAnalysis)。
动态时序仿真的优点是比较精确而且适用于更多的设计类型,缺点是速度比较
慢,同时由于依赖测试向量的人工编写,有可能无法覆盖所有的相关路径。
静态
时序分析的速度比较快,由于会对所有可能路径进行检查也不存在遗漏关键路径
的问题。
它的问题在于无法验证综合是否引入电路功能的改变,因此还需要形式
验证的配合。
9.1动态时序仿真介绍
动态时序仿真是指将编写好的测试向量作为系统的输入,然后检查输出的波
形是否符合功能要求。
时序仿真一般分为前仿真、门级仿真和后仿真三步。
前仿
真指对行为级或者RTL级设计的功能验证,属于纯粹的逻辑验证。
前仿真的数
据处理量较小,完全可以在单机上进行,也可以工作站上进行。
这款单片机的设
计过程中,前仿真主要用的是Modelsim。
门级仿真指对逻辑综合所得的网表进
行的功能验证,门级仿真涉及到了电路的时序信息,需要导入综合时自动提出的
标准延时格式文件(SDF)。
由于设计已经转为厂家标准库单元形式,门级仿真
的数据处理量已经相当大。
门级仿真一般都在工作站上进行。
这款单片机的设计
过程中,门级仿真工具用的是Candence公司Verilog_XL。
后仿真指布局布线完
毕后对由版图文件导出的网表进行的功能验证,在加入门级延迟信息的基础上又
加入了具体线路引起的延迟,属于后端设计。
9.2MCU的门级仿真
这款单片机的指令集共有35条,由于许多指令的执行
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 选题 背景 依据 意义 研究 内容 现状 分析