选题背景依据意义研究内容及现状分析.docx
- 文档编号:10765290
- 上传时间:2023-05-27
- 格式:DOCX
- 页数:23
- 大小:240.79KB
选题背景依据意义研究内容及现状分析.docx
《选题背景依据意义研究内容及现状分析.docx》由会员分享,可在线阅读,更多相关《选题背景依据意义研究内容及现状分析.docx(23页珍藏版)》请在冰点文库上搜索。
选题背景依据意义研究内容及现状分析
背景:
从20世纪中叶的无线电时代,到21世纪以计算机技术为中心的智能化加信
息化的现代电子时代,电子系统发生了巨大的变化。
现代电子系统愈发庞大和复
杂,很多应用要求能够在现场进行实时的高速运算,并对系统进行有效地控制。
作为这一需求的解决方案,嵌入式计算机应用系统(EmbeddedSystem)已成为
现代电子系统的核心技术。
早期的嵌入式系统是将通用计算机经改装后嵌入到被测控对象去,实现数据
采集、分析处理、状态显示、输出控制等功能。
随着大规模集成电路技术的发展,
中央处理器CPU、随机存取存储器RAM、只读存储器ROM、输入/输出端口I/O
等主要的计算机功能部件可以集成在一块集成电路芯片上,这颗芯片就被称为单
片机。
与改装普通计算机相比,单片机具有性能高、速度快、体积小、价格低、
稳定可靠、应用广泛、通用性强等突出优点,因此迅速成为最普及的嵌入式应用
系统方案。
起初的单片机只是按嵌入式应用技术要求而实现的普通计算机单芯片化。
为
了满足嵌入式应用要求,单片机不断地增强其控制功能与外围接口功能,尤其是
突出控制能力,即满足实时控制方面的需求。
现代的单片机更多的时候被称为微
控制器(MCU),与普通的微型计算机相比,在硬件结构、指令系统、I/O端口、
功率消耗及可靠性等方面均已有了很大的差别。
随着嵌入式计算应用大潮的到来,单片机已经在电信、家用电器、工业自动
化控制、商用电子、仪器仪表、汽车电子、军用电子等嵌入式自动控制领域得到
了广泛的应用。
作为最典型、最广泛、最普及的嵌入式计算机应用系统,单片机
的应用必将导致传统控制技术发生巨大变革,加速人类从工业社会到信息社会的
转变。
依据:
意义:
研究内容:
指令译码器(IDEC)
一条指令从指令寄存器读出后,就被送到IDEC模块译码。
IDEC将指令按
不同的字段分解为操作码和操作数两部分,操作码通过译码电路生成微控制信号
决定ALU等模块进行的运算,操作数则需要首先判断是RAM地址还是立即数:
如果是RAM地址,就在S1节拍对该地址进行读操作,将其所存储的数据发到
数据总线DB上;如果是立即数在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由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格式的脚本文件,下次使用时直接调用。
设置时序例外。
包括设置多循环路径,设置虚假路径,定义最大最小延时、
路径的分段。
静态时序分析会自动检测硬件上所有可能的路径是否存在时序违
反,而不管这些路径在设计中是否可能真的有数据通过。
因此正确指定虚假路径
可以大大减少误报。
指定的路径必须是完整有效的路径,具备正确的起点和终点。
完成上述步骤后,就可以生成报告文件,检查设计中是否存在时序上的违反。
九章MCU的动态时序仿真和静态时序分析
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文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 选题 背景 依据 意义 研究 内容 现状 分析