




已阅读5页,还剩96页未读, 继续免费阅读
(物理电子学专业论文)一种嵌入式8bit+mcu核的设计与实现.pdf.pdf 免费下载
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
l i 童, 1 愀 南开大学学位论文版权使用授权书 本人完全了解南开大学关于收集、保存、使用学位论文的规定, 同意如下各项内容:按照学校要求提交学位论文的印刷本和电子版 本;学校有权保存学位论文的印刷本和电子版,并采用影印、缩印、 扫描、数字化或其它手段保存论文;学校有权提供目录检索以及提供 本学位论文全文或者部分的阅览服务;学校有权按有关规定向国家有 关部门或者机构送交论文的复印件和电子版;在不以赢利为目的的前 提下,学校可以适当复制论文的部分或全部内容用于学术活动。 学位论文作者签名:他黟 叫7 么、 i 醇年弓其弓ob 经指导教师同意,本学位论文属于保密,在年解密后适用 本授权书。 指导教师签名: 参虱喀 学位论文作者签名: 芬必 i 解密时间: ) o 。 辱5 具药e l 各密级的最长保密年限及书写格式规定如下: ,。 。 、- 量 & , t 南开大学学位论文原创性声明 本人郑重声明:所呈交的学位论文,是本人在导师指导下,进行 研究工作所取得的成果。除文中已经注明引用的内容外,本学位论文 的研究成果不包含任何他人创作的、已公开发表或者没有公开发表的 作品的内容。对本论文所涉及的研究工作做出贡献的其他个人和集 体,均己在文中以明确方式标明。本学位论文原创性声明的法律责任 由本人承担。 学位论文作者签名:嬲 硒年5 r2 0e t o 、 o 摘要 摘要 本文介绍了一种与传统8 0 5 1 软件兼容的嵌入式8 位m c u 核的设计,这其 中包括指令集结构的确定、基本数据通路的建立、控制单元的设计和中断系统 的介绍。该核的指令集在5 1 指令集的基础上进行了适当的精简;寄存器和存储 器组织结构与8 0 5 1 大体相同,但以优化指令执行速度为目的进行了一些有益的 改进;采用了4 周期指令控制方式,使得在相同工作频率下,指令的执行速度 至少为8 0 5 1 的3 倍。另外,文中还对该m c u 核在l s t s i l i c o n0 2 5 u r nc m o s 工 艺下的芯片实现过程进行了介绍。 关键词:m c u 、8 0 5 1 、嵌入式核、芯片实现 i i k 、 l 厶 k 目录 目录 第一章引言1 第一节设计m c u 核的意义l 第二节本文内容概述2 第二章指令集结构。5 第一节t c m 5 1c o r e 的寄存器5 2 1 1r o - r 7 通用寄存器5 2 1 2 累加器a 寄存器5 2 1 3 结果寄存器b 。5 2 1 4 特殊功能寄存器。6 第二节t c m 51c o r e 的存储器7 2 2 1 指令存储器7 2 2 2 内部数据存储器。7 2 2 3 堆栈存储器7 2 2 4 外部数据空间8 第三节t c m 5lc o r e 的i ,o 口8 第四节t c m 51c o r e 的指令集8 2 4 1t c m 5 1c o r e 指令集设计的基本原则8 2 4 2t c m 51c o l 迎指令集介绍9 第三章建立基本数据通路1 4 第一节功能部件的分类1 4 第二节各个功能部件的初步设计1 4 3 2 1 指令存储器( i n s t r u c t i o nm e m o r y ) 1 5 3 2 2 程序计数器( p r o g r a mc o u n t e r ) 15 3 2 3 内部数据存储器( i n t e r n a ld a t am e m o r y ) 1 7 3 2 4 寄存器文件( r e g i s t e rf i l e ) 1 8 3 2 5 堆栈存储和控制器( s t a c km e m o r ya n dc o n t r o l l e r ) 2 0 3 2 6 地址产生模块( a d d r e s sg e n e r a t o r ) 2 2 3 2 7 指令数据分离器( i n s t r u c t i o nd a t as e p a r a t o r ) 。2 4 3 2 8 数据产生模块( d a t ag e n e r a t o r ) 2 5 3 2 9 通用i o 模块( g e n e r a lp u r p o s ei o ) 2 7 3 2 1 0a l u 操作数选择器( a l uo p e r a n ds e l e c t o r ) 2 9 3 2 1 1 核心运算单元( c o r ea r i t h m e t i cl o g i cu n i t ) 3 0 3 2 1 28 * 8 b i t 乘法器( 8 8b i tm u l t i p l i e r ) 3 3 3 2 1 3 核心寄存器模块( c o r er e g i s t e r ) 3 4 第三节各个功能模块的连接和基本数据通路的建立3 5 i i i 目录 第四章控制模块的设计 第一节控制模块实现方案的确定。 4 1 1 采用多周期的控制方案来控制指令的执行 4 1 2 采用硬连线控制方式实现控制模块。 第二节控制信号的功能定义 4 2 1 p c _ c o n 4 2 2 r a m w e 4 2 3 w r e g e n 和r i s e l 。 4 2 4s t a c kw e n 和s pd e c 4 2 5 a g c o n 4 2 6 i d a t a s e l 4 2 7 d g _ c o n 4 2 8 a l u s e l 4 2 9a l u o n 。 4 2 1 0 c r _ c o n 第三节部分指令在实现控制时所对应的有限状态机的设计。 4 3 1 运算类指令: 4 3 2 逻辑类指令。 4 3 3 数据传输类指令 4 3 4 布尔类指令 4 3 5 跳转类指令6 0 第五章中断系统6 5 第一节关于中断的一些基本概念。6 5 第二节t c m 51c o r e 中断系统简介6 5 5 2 1 中断请求源6 6 5 2 2 中断控制6 6 5 2 3中断优先级6 7 5 2 4 中断响应过程6 8 第三节中断系统的硬件实现6 9 5 3 1 增加中断控制器模块( i n t e r r u p tc o n t r o l l e r ) 7 0 5 3 2 控制模块的改动7 l 5 3 3p r o g r a mc o u n t e r 模块的改动7 l 5 3 4 r e g i s t e rf i l e 模块的改动。7 2 第六章m c uc o r e 的芯片实现7 4 第一节系统级设计7 4 第二节用硬件描述语言对电路进行r t l 级的描述7 4 第三节对r t l 代码进行功能仿真7 6 第四节逻辑综合8 1 第五节门级验证8 2 第六节布局布线:。8 3 i v l c l 厶 7 b 目录 第七节后仿真和后端静态时序分析8 4 第八节版图的物理验证8 4 第七章总结与展望。8 5 致谢8 6 参考文献8 7 个人简历8 8 v 一 j 7 j _ - 一 z 第一章引言 第一章引言 第一节设计m c u 核的意义 上世纪7 0 年代末出现的微控制器( m c u ) 是一种将c p u 及其外围的程序 存储器、数据存储器、i o 模块、中断控制器等诸多部件集成在一起的通用集成 电路芯片。伴随着电子技术近2 0 多年以来的迅速发展,m c u 已经被众多的电子 系统厂商广泛地应用于各种消费类电子产品、工业控制系统、数据采集系统、 智能化仪器仪表、办公自动化系统等等诸多领域之中。 然而,近几年以来,随着电子产品市场竞争的日趋激烈,市场对产品的成 本、性能和功能的集成度都提出了更加苛刻的要求。同时,也由于微电子技术 和芯片制造产业的迅猛发展,许多系统厂商都纷纷倾向于在产品设计时,采用 一些成本低兼、性能出众、功能集成度高的专用集成电路芯片( a s i c ) 替代传 统的m c u 芯片、甚至整个m c u 系统。并且随着时间的推移,系统厂商对a s i c 的需求,无论从数量还是规模上看都呈明显的上升趋势。 于是,这就对a s i c 的设计者们又提出了一个新的挑战:对于一些规模较大 的系统级a s i c 的设计,传统的设计方法在设计难度、研发周期、产品的可修改 性和可升级性等方面较之用m c u 系统实现的方法,都存在比较明显的劣势。在 这种形势下,s o c ( s y s t e mo i lc b i p ) 的设计理念也就应运而生了,这种理念的核 心就是提倡“设计重用 的思想【1 1 。具体来说,就是将一些通用的处理器模块( 如 m c uc o t e ) ,嵌入到芯片当中,然后配合上其它专用的功能模块,和相关的处 理器软件来完成一个系统级a s i c 的设计。 这种设计方法实际上是一种将传统的m c u 系统设计和a s i c 设计相结合的 方法,他较之传统的a s i c 设计方法主要有以下特点: 1 由于很多复杂的控制功能可以通过处理器软件来完成,将部分硬件设计 工作转化成了软件设计工作,势必会减小设计的难度,缩短开发的周期。 2 由于许多功能是用软件实现的,芯片功能的修改和升级就变得十分方 便,只需在芯片生产时更改指令r o m 的掩膜码即可,而不需要更改芯 片的电路设计,大大减少了功能修改和升级所付出的代价。 第一章引言 3 由于芯片中嵌入了通用的处理器内核,这可能会使芯片的面积比传统的 a s i c 实现有所增加,因此这就要求处理器内核的设计要尽精简,以减 小对芯片成本的负面影响。 综上所述,通用m c uc o r e 是这种s o c 设计方法的硬件基础,因此本文在 接下来将要讨论的一种m c uc o r e 的设计,也就具有了重要的实现意义。 第二节本文内容概述 本文较为全面地介绍了一种m c uc o r e 的设计过程和在芯片实现的方法。这 种m c uc o r e 是在传统8 0 5 1 体系结构的基础上发展而来的,并与8 0 5 1 做到了软 件兼容。与8 0 5 1 在硬件结构上的不同,使得其指令的执行速度与8 0 5 1 相比有了 较大幅度的提高。为了在下文中叙述方便,在这里将这种m c uc o r e 定名为 t c m 5 1c o r e 。 下面就以t c m 5 1c o r e 的设计过程为主线,对本文各个章节作一个概述。 同时,也为某些章节的内容作一个铺垫。 1 确定指令集结构 确定指令集结构是m c uc o r e 设计的第一步也是最重要的一步,关于t c m 5 1 c o r e 指令集结构的介绍将在本文的第二章中进行。 2 t c m 5 1c o r e 的硬件设计 在本文的第三、四、五章里较为详细地介绍了t c m 5 1c o r e 硬件设计的过 程,在这里为给这三章的内容做个铺垫,就先对t c m 5 1c o r e 的整体结构和端 口情况进行一个简单的说明。 1 ) 整体结构 t c m 5 1c o r e 的整体结构框图如下所示: 2 第一章引言 :x r m 冒胃- x r 蛳助x i 盯_ s c r 图1 1t c i s lc o r e 结构框图 2 ) 端口说明:t c m 5 1c o r e 的外部端口如下表所示。 表1 1t c m 5 1c o r e 外部端口说明 端口名称端口方向端口说明 c l o c k 输入 全局时钟输入 r e s e t 输入全局复位信号输入 x r a m - a 输出外部数据空间地址总线 x r a m d i 输入外部数据空间数据输入总线 x r a 匝) o 输出外部数据空间数据输出总线 x r a m 吧 输出外部数据空间写使能信号 x r a m r d 输出外部数据空间读使能信号 p ( 0 - 3 ) l 输入四组t c m s lc o r e i o 口的输入端口 p ( 0 3 ) o 输出 四组t c m 5 1c o r ei o 口的输出端口 x i n ts c r 输入一组外部中断申请信号的输入端口 t x d 输出 t c m s lc o r e 中的串行口数据发送端 r x d 输入 t c m 5 1c o r e 中的串行口数据接收端 如图1 1 所示t c m 5 1c o r e 从结构上被分为功能模块、控制模块和外 围模块三大类模块。 3 第一章引言 功能模块是t c m 5 1c o r e 中用来实现运算、数据传送、存储器操作、 i o 操作等所有指令所涉及到的核心功能的模块,在本文的第三章中将主 要介绍t c m 5 1c o r e 中各个功能模块的设计和基本数据通路的建立。 控制模块为t c m 5 1c o r e 中的各个功能模块输出控制信号,从而合理 地控制各个功能模块协同工作,来完成每条指令所需的操作。在本文的第 四章将描述t c m 5 1c o r e 中控制模块的设计方法。 外围模块是为了增强t c m 5 1c o r e 的功能所设计的一些特别的功能模 块,在t c m 5 1c o r e 中主要包括中断控制器模块、定时计数器模块和串 行口模块,在本文的第五章将对t c m 5 1c o r e 中断系统的设计,进行一个 简单的介绍。 此外,在本文的第六章还将对t c m 5 1c o r e 芯片实现过程中的各个技 术环节进行一个介绍,并最终得到t c m 5 1c o r e 在l s t s i l i c o n0 2 5 u r nc m o s 工艺下的芯片版图。 最后,在本文的第七章将对整个t c m 5 1c o r e 的设计进行一个简单的总结, 并给出下一步工作的改进意见。 4 第二章指令集结构 第二章指令集结构 m c u 的指令集结构( i n s t r u c t i o ns e t a c h i t e c t u z e ) 不仅包含了m c u 的指令集, 还包含了所有程序员可见的存储器和寄存器的组织结构。在m c uc o r e 的设计过 程之中,确定指令集结构是第一步也是最重要的一步。本章将对t c m 5 1c o r e 的指令集结构作出一个较为详细的介绍。 第一节t c m 5 1c o r e 的寄存器 t c m 5 1c o r e 中含有四组( 共3 2 个) r 州1 7 通用寄存器,用来在程序执 行的过程中任意地存储数据,寄存器组的切换是靠改变特殊功能寄存器p s w 中 第3 、4 两位的值来实现的。这些与传统的8 0 5 1 都是相同的田。与8 0 5 1 不同的是: t c m 5 1c o r e 中的这3 2 个通用寄存器,是在t c m 5 1c o r e 中以真正寄存器的 方式来实现的,并不像8 0 5 1 一样,是用内部数据r a m 中的一些存储单元来实 现的;另外,这3 2 个通用寄存器也不再具有与内部数据r a m 的o o h 一1 f h 单 元之间的地址映射关系。这样设计一方面可以加快t c m 5 1c o r e 中通用寄存器 的访问速度,另一方面可以节省出3 2 字节的内部r a m 的资源。 2 1 2 累加器a 寄存器 t c m 5 1c o r e 中累加器a 往往用来存放各种运算指令的操作数和运算结 果,该寄存器同时也具有一个特殊功能寄存器的地址e o h ,这与传统的8 0 5 1 是 完全相同的。 2 1 3 结果寄存器b t c m 5 1c o r e 中的结果寄存器b 主要用来存放乘法指令的一个操作数和乘 积结果的高8 位,该寄存器也具有一个特殊功能寄存器的地址f o h ,通常情况 5 第二章指令集结构 下对它的访问除了通过乘法指令以外,也是通过访问特殊功能寄存器的方式来 进行的。 2 1 4 特殊功能寄存器 特殊功能寄存器是用来对m c u 内各功能模块进行管理、控制、监视的一些 控制寄存器和状态寄存器,它们每个寄存器都具有一个特殊功能寄存器地址。 这些寄存器的地址是离散地分布在8 0 h - - f f h 这个内部数据空间之内的。t c m 5 1 c o r e 中各个特殊功能寄存器的功能及其所分配到的地址与传统的8 0 5 1 都是大 体相同的,具体情况如下表所示: 表2 1t c m 5 1c o r e 特殊功能寄存器列表 功能描述 符号i 地址m e 砷 复位值m e x ,l 是否支持位寻址 i o 口p 0p o8 0f f 是 外部数据指针低8 位 d p l8 20 0否 外部数据指针高8 位 d p h8 30 0否 功功耗控制 p c o n8 70 0否 定时计数器控制 t c o n8 80 0 是 定时计数器模式控制 t m o d8 90 0 否 定时计数器o 低字节砌 8 a0 0否 定时计数器1 低字节 t l l8 1 30 0 否 定时计数器0 高字节 t h o 8 c 0 0 否 定时计数器1 高字节 t h l8 d 0 0否 i o 口p 1 p 19 0f f 是 串口控制寄存器 s c o n9 80 0 是 串口数据缓冲器 s b u f9 9 0 0 否 i o 口p 2p 2a 0f f 是 中断使能寄存器0 i e a 80 0 是 i o 口p 2 p 3b of f 是 中断优先级寄存器0 i pb 80 0 是 程序状态字 p s wd 00 0 是 累加器a a e 00 0 是 结果寄存器b bf 0 0 0 是 中断使能寄存器1 m 1e 8 0 0 是 6 第二章指令集结构 续表2 1t c m 5 1c o r e 特殊功能寄存器列表 8 功能描述符号 地址m e x )复位值 e x ) 是否支持位寻址 0 0 中断优先级寄存器1 i p lf 80 0 是 需要特别指出的是,上表中的寄存器较之传统8 0 5 1 增加了i e l 和i p l 两个 与中断相关的寄存器,这是由于t c m 5 1c o r e 外部中断源的个数与8 0 5 1 有所扩 展的缘故,关于t c m 5 1c o r e 的中断系统将在第五章中进行专门介绍。t c m 5 1 c o r e 中取消了传统8 0 5 1 中的堆栈指针寄存器s p ,这是由于这里的堆栈指针, 变为了一个程序员不可见的寄存器,由硬件逻辑直接控制其增减。另外,由于 t c m 5 1c o r e 的逻辑规模较小,动态功耗不是很大,从简化硬件的角度出发, t c m 5 1c o r e 并未对p c o n 寄存器低两位的功耗控制功能予以实现。 2 2 1 指令存储器 第二节t c m s lc o r e 的存储器 指令存储器在m c u 中是用来存储指令的存储器。由于t c m 5 1c o r e 的程 序计数器为1 6 位,因此t c m 5 1c o r e 的程序存储器最大为6 4 k 字节,并且是独 立编址的,这与传统的8 0 5 1 是相同的。t c m 5 1c o r e 中的指令存储器是在t c m 5 1 c o r e 中用片内r o m 实现的,因此不再像传统8 0 5 1 那样,有片内r o m 和片外 r o m 的区分,这是由t c m 5 1c o r e 的嵌入式特性决定的。 2 2 2 内部数据存储器 与传统的8 0 5 1 一样,t c m 5 1c o r e 内部也含有一个1 2 8 字节的数据存储器, 并且被编址在内部数据空间的0 0 h7 f h ,它可以完全地被用来在程序执行的过 程中暂存和缓冲数据使用。其中,2 0 h - - 2 f h 的地址区域为可位寻址区,这一点 与8 0 5 1 是完全相同的。 2 2 3 堆栈存储器 t c m 5 1c o r e 中含有一个独立的6 4 字节的堆栈存储器,这一点与8 0 5 1 中 占用了内部数据存储器的一部分来实现堆栈存储有很大的不同,同时堆栈存储 7 第二章指令集结构 器的指针也不再由特殊功能寄存器s p 来控制,而是由硬件逻辑直接控制,每执 行一次入栈操作,堆栈指针会自动加1 ,执行一次出栈操作,堆栈指针会自动减 1 ,堆栈指针不再允许程序进行直接修改。t c m 5 1c o r e 中的堆栈存储器采用这 种设计方法,主要是为了减化堆栈存储的软硬件操作,加快某些与堆栈相关的 指令的执行速度,同时也节省出了一部分内部r a m 的存储资源。 2 2 4 外部数据空间 与传统8 0 5 1 相同,t c m 5 1c o r e 也留出了一组外部数据空间总线接口。这 组总线中的地址总线位宽为1 6 位,因此最大可寻址的范围是6 4 k 字节。外部数 据空间总线,可用来挂接外部数据存储器,同时也是t c m 5 1c o r e 与其它外围 设备模块之间进行相互访问的重要接口。 第三节t c m s lc o r e 的i o 口 t c m 5 1c o r e 也和传统8 0 5 1 一样有4 组8 位的i o 端口。所不同的是8 0 5 1 是在器件的p a d 上将输入输出端口复合在了一个管脚上。而在t c m 5 1c o r e 的端口上,每组i o 的输入与输出端e l 是相互独立的,并且也没有与其他的总 线接口相复合。之所以这样设计,是出于为t c m 5 1c o r e 与其它外围设备模块 的互连考虑的,因为芯片内部一般不存在双向数据线和双向的模块端口。 第四节t c m s lc o r e 的指令集 m c u 的指令集虽然不是其i s a 的全部内容,但却是其中最重要和最核心的 内容。它是一个m c u 所能执行的所有汇编语言的集合。这其中包含了所有汇编 指令的指令码、指令格式、寻址方式等内容。 2 4 1t c m 5 1c o r e 指令集设计的基本原则 1 兼容性 t c m 5 1c o r e 的指令集必须与目前已有的一种指令集在软件上完全兼 容,即针对t c m 5 1c o r e 所编制的汇编程序,应该可以用一种已有的编译 8 第二章指令集结构 译,否则t c m 5 1c o r e 的可应用性将大打折扣。鉴于此,t c m 5 1 令集选择了与目前应用最为广泛的8 b i tm c u8 0 5 1 进行软件兼 的指令集从复杂程度上主要可以分为复杂指令集( c i s c 指令集) ( r i s c 指令集) 。c i s c 指令集的主要特点是指令数多、寻址方 格式多,指令长度差别较大;r i s c 指令集的主要特点是指令数 寻址方式少、指令格式少,指令长度一致。传统8 0 5 1 的指令集 是一种c i s c 指令集。在t c m 5 1c o r e 指令集的设计时,考虑到硬件设计 的简易度和为高速的指令控制提供可能性,作者吸收了r i s c 指令集的一些 思想,在保证指令功能覆盖性的前提下,对传统8 0 5 1 的指令集进行了精简。 主要是去掉了指令集中所有长度为3 字节的指令以及一些功能较为复杂的 运算类指令( 如除法指令和十进制调整指令) 和一些含有特殊寻址方式的指 令。 2 4 2t c m 5 1c o r e 指令集介绍 1 指令列表 表2 1t c m 5 1c o r e 指令集 助记符功能说明指令码字节数 算术操作类指令 a d d a ,r n 寄存器氏的内容加到累加器a 2 8 2 f 1 a d da ,d i r 直接地址单元的内容加到累加器a 2 52 a d d a , 民间接r a m 内容加到累加器 2 6 2 7 1 a d da ,# d a t a 立即数加到累加器a 2 42 a d d ca ,】h 寄存器k 的内容带进位加到累加器a 3 8 3 f 1 a d d c a ,c l i r 直接地址单元的内容带进位加到累加器 3 52 a a d d c a , 砘间接r a m g q 容带进位加到累加器a 3 6 3 7 1 a d d ca ,# d a t a 立即数带进位加到累加器a 3 42 s u b b a ,k累加器a 带借位减寄存器心 9 8 9 f 1 s u b b a ,d i r 累加器a 带借位减直接地址单元的内容 9 52 s u b b a , 累加器a 带借位减间接r a m 中的内容 9 6 9 7 1 s u b ba ,# d a t a 累加器a 带借位减立即数 9 42 9 续表2 1t c m 5 1c o r e 指令集 j 助记符功能说明指令码字节数 算术操作类指令 _ i n ca 累加器加1 0 41 i n c 如 寄存器k 加10 8 0 f 1 i n c d i r 直接地址单元j j ll 0 5 2 i n c 风间接r a m 单元j j ll0 6 一0 7 l d e ca 累加器减1 1 4 1 d e c r 。 寄存器k 减11 8 1 f 1 d e c d i r 直接地址单元减1 1 5 2 d e c 风 间接r a m 单元减1 1 6 1 71 i n c d p t r 地址寄存器d p t r j j l l l a 31 a b a 乘以b ,乘积高8 位存在寄存器b ,乘积 a 4 1 低8 位存在寄存器a 数据传送类指令 m o v a ,砥 寄存器k 的内容送入累加器ae 8 一e f l m o v a ,d i r直接地址单元中的数据送入累加器ae 52 m o v a , 民间接r a m 中的数据送入累加器ae 6 一e 7 1 m o v a ,# d a t a立即数送入累加器a7 42 m o v r n , a累加器a 内容送入寄存器r nf 8 一f f 1 一 m o vr n ,d i r 直接地址单元中的数据送入寄存器r 札 a 8 一a f2 m o vr n ,# d a t a 立即数送入寄存器k7 8 7 f2 j m o v a i r , a 累加器a 内容送入直接地址单元 f 52 m o v d i r , 如 寄存器心的内容送入直接地址单元8 8 8 f2 m o v ,a 累加器a 的内容送间接r a m 单元 f 6 一f 71 m o v 民,# d a t a立即数送间接r a m 单元7 6 7 7 2 m o v x d 踟、a累加器a 的内容送外部r a m 地址单元f 0l m o v x a , d i t r 外部r a m 地址单元的内容送入累加器a e o1 p u s h d i r 将直接地址单元的数据压入堆栈存储器 c o 2 p o pd i r 将堆栈顶的数据弹出存入直接地址单元 d o2 x c h a ,k 寄存器与累加器a 数据交换 c 8 一c f1 x c h a ,d i r 直接地址单元与累加器a 交换 c 5 2 x c h a , 民间接r a m 单元与累加器ac 6 一c 7 1 x c h da , 风 间接r a m 的低半字节与累加器交换 d 6 一d 7 1 逻辑操作类指令 a n l a ,k 累加器a 与寄存器k 相“与” 5 8 5 f1 a n l a ,d i r累加器a 与直接地址相“与” 5 52 a n l a , 累加器a 与间接r a m 单元相“与” 5 6 5 71 t 1 0 - f 第二章指令集结构 续表2 1t c m 5 1c o r e 指令集 助记符功能说明指令码字节数 逻辑操作类指令 a n l a ,# d a t a 累加器a 与立即数相“与” 5 42 o r l a ,k累加器a 与寄存器k 相“或” 4 8 - 4 f1 o r l a ,d i r累加器a 与直接地址相“或” 4 52 o r l a , 民累加器a 与间接r a m 单元相“或” 4 6 4 7 1 o r l a ,# d a t a累加器a 与立即数相“或” 4 42 x r l a ,累加器a 与寄存器心相“异或” 6 8 6 f1 x r l a ,d i r累加器a 与直接地址相“异或 6 52 x r l a , 民 累加器a 与间接r a m 单元相“异或” 6 6 6 71 x r l a ,# d a t a累加器a 与立即数相“异或” 6 42 c l r a 累加器a 清零 e 41 c p l a 累加器a 取反 f 41 s p 入 累加器a 半字节交换 c 41 l 也a 累加器a 循环左移 2 3 1 l 江ca 累加器a 带进位位循环左移 3 31 r r a 累加器a 循环右移 0 31 r r ca 累加器a 带进位位循环右移 1 31 控制转移类指令 a c a i i a d d r l l 绝对( 短) 调用子程序1 1 一f 1 2 聊 子程序返回 2 21 r e l l 中断返回 3 21 a j m a d d r l l 绝对( 短) 转移 0 1 一e 12 s j r vr e l 相对转移 8 02 j cr d 进位位为1 则转移 4 0 2 j n c t e l 进位位为。则转移 5 02 j zr d 累加器a 为零则转移 6 02 j n z z e l 累加器a 非零则转移 7 0 2 d j n z k ,t e l 寄存器减1 ,非零则转移d 8 一d f 2 n o p 空操作 0 0 1 布尔操作类指令 c l rc 清进位位 c 31 c l r b i t 清直接地址位 c 2 2 s 脚c 置进位位 d 31 s m b i t置直接地址位 d 22 c p lc 进位位求反 b 31 c p l b i t 直接地址位求位 b 2 2 第二章指令集结构 续表2 it c m 5 1c o r e 指令集 助记符功能说明指令码字节数 逻辑操作类指令 a n l c ,b i t进位位和直接地址位相“与” 8 22 a n l c ,b i t进位位与直接地址位的反码相“与” b o2 o r lc , b i t 进位位和直接地址位相“或” 7 22 o r l c ,b i t进位位与直接地址位的反码相“或” a 02 m o v c ,b i t直接地址位送入进位位 a 2 2 m o vb i t , c 进位位送入直接地址位 9 22 2 指令类型 从表2 2 中可知,t c m 5 1c o r e 的指令集按照功能分,包含了5 种类 型的指令: 1 ) 算术操作类指令:用来完成t c m 5 1c o r e 所支持的各种类型的算术 操作。 2 ) 数据传送类指令:用来完成t c m 5 1c o r e 中各种不同类型的寄存器 和存储器之间数据交换操作。 3 ) 逻辑操作类指令:用来完成t c m 5 1c o r e 所支持的与、或、异或、 取反和循环移位等逻辑运算操作。 4 ) 控制转移类指令:用来完成t c m 5 1c o r e 所支持的子程序调用返 回、相对跳转、绝对跳转和条件跳转等程序转移操作。 5 ) 布尔操作类指令:用来完成t c m 5 1c o r e 所支持的置位、清零、取 反、位与、位或和位传送等位操作。 3 指令格式 从表2 2 中不难发现,t c m 5 1c o r e 的指令长度只有两种,单字节和 双字节。 对于单字节指令,8 b i t 的指令码占据了唯一一个字节,它包含了一条 指令在执行时所需的全部信息。 对于双字节指令,第一个字节是8 - b i t 的指令码,第二个字节是8 - b i t 的指令操作数( o p e r a n d ) 。其中,8 - b i t 的操作数主要用来在一些指令中提 供立即数( # d a t a ) 、直接地址( d i r ) 、位地址( b i t ) 、指令地址和指令地 址偏移量( r e d 等信息。 4 寻址方式 1 2 第二章指令集结构 t c m 5 1c o r e 的指令集主要支持以下几种寻址方式 1 ) 立即数寻址:由指令操作数( # d a t a ) 直接给出参与运算的操作数。 例j z r l :m o va ,# d a t a 2 ) 直接寻址:指令操作数( d i r ) 给出的是参加运算的操作数地址。 这里的操作数地址( d i r ) ,指的是内部数据空间地址,因此这种 方式只能用来寻址内部数据存储器和特殊功能寄存器。 例如:a n la ,d i r 3 ) 寄存器寻址:这种寻址方式是对选定的通用寄存器k 、累加器a 、 结果寄存器b 中的数进行操作,其中所选定的寄存器号隐含在了 指令码当中。 例如:i n ck 4 ) 寄存器间接寻址:在这种寻址方式中,指令码中隐含了存放操作 数地址的寄存器号。在t c m 5 1c o r e 中可作为寄存器间接寻址的 寄存器有通用寄存器r 0 、r 1 和地址寄存器d p t r ,寻址的对象是 内部数据存储器和外部数据空间。 例如:m o va , k 5 ) 相对寻址:相对寻址是将程序计数器p c 中的当前值与指令操作数 ( r e d 相加,其结果作为转移指令的转移地址。偏移量为带符号的 数,所表示的范围是1 2 8 一+ 1 2 7 。这种寻址方式主要用于转移指令。 例如:s j n , r e l 6 ) 位寻址:位寻址是指对一些内部数据存储器r a m 和特殊功能寄存 器进行位操作时的寻址。位地址与字节直接寻址中的字节地址形 式完全一样。 例如:s e t bb i t 以上就是对t c m 5 1c o r e 指令集结构的一个较为完整的介绍。总之, t c m 5 1c o r e 的指令集结构是以传统8 0 5 1 为蓝本建立起来的,但在指令集、 寄存器和存储器结构等方面与8 0 5 1 相比又有一些自己的特点,但这些特点 并不影响t c m 5 1c o r e 与8 0 5 1 在软件上的兼容性。 在接下来的三章中,就将以本章所建立起来的指令集结构为根本出发 点,进行t c m 5 1c o r e 的硬件设计。 1 3 第三章建立基本数据通路 第三章建立基本数据通路 建立基本的数据通路就是根据指令集结构中所支持的各类指令的功能及寄 存器结构来对m c u 核中的基本功能模块进行初步设计,并确定各个基本功能模 块之间的连接关系。 第一节功能部件的分类 m c u 中的基本功能部件模块上可以分为三大类,即存储器系统功能模块、 运算功能模块和i o 功能模块。下面对这三类部件分别进行一个简单的说明: 1 存储器系统功能模块 这类模块是m c u 体系结构中所占比重最大的一类的模块。这类模块中 不仅包含了m c uc o r e 中所必需的各种存储器模块,还包含了为这些模块 提供地址和数据的相关模块。在t c m 5 1c o r em c uc o r e 中这类模块具体 包括:指令存储器、为指令存储器提供地址的程序计数器、指令数据分离 器、内部数据存储器、寄存器文件、堆栈存储和控制器、地址产生单元、 数据产生单元、核心寄存器模块。 2 运算功能模块 这类模块是m c u 体系结构中的核心模块。它们主要负责完成m c u 所 应该具有的各种算术运算、逻辑运算和位运算功能。在t c m 5 1c o r em c u c o r e 中这类模块具体包括:舡操作数选择器、核心运算单元、8 * 8 b i t 乘 法器。 3 i o 功能模块 i o 访问是m c uc o r e 与其它外围模块进行数据交互的重要方式。这类 模块就是完成这种数据交互的一个桥梁。在t c m 5 1c o r em c uc o r e 中完 成这种功能的模块就是通用 o 模块。 第二节各个功能部件的初步设计 1 4 第三章建立基本数据通路 3 2 1 指令存储器( i n s t r u c t i o nm e m o r y ) 指令存储器是用来存储程序指令的部件,它是m c u 数据通路中不可或缺的 一部分。但在进行m c u 核设计的过程中,这一部件的电路不需要再进行具体设 计,这里只需定义好其功能和相应的接口,然后选择芯片生产厂商( 或第三方 厂商) 提供的相应的存储器i p 模块或是芯片来进行实现即可。当然,为了仿真 的方便,也需要对指令存储器用v e r i l o g 语言进行功能建模。 1 功能设计 1 ) 含有最多6 4 k 个存储单元,每个存储单元的位宽为8 b i t 。 2 ) 采用只读存储器进行实现。存储器中的数据( 即m c u 要运行的程序) 是采用一定的方法预先写入的,在m c u 工作的过程中存储器中的内容 不会更改。 3 ) 存储器根据地址输入端口输入的1 6 位地址信息,将相应地址单元所存储 的8 位数据异步输出至数据输出端口。 2 端口说明 a d d r e s s d a t a 1 5 :o 】 i n s t r u c t i o n 7 :0 r o s 图2 1 指令存储器端口 表2 1 指令存储器端口说明 端口名称端口方向端口说明 a d d r e s s 1 5 :0 】 输入只读存储器1 6 位地址输入端口 d a t a 7 :0 】 输出只读存储器数据输出端口 3 2 2 程序计数器( p r o g r a m c o u n t e o 程序计数器模块是用来产生指令地址的模块,它在整个m c u 数据通路中是 控制程序执行流程的关键部分。 1 功能设计 1 5 第三章建立基本数据通路 该模块的核心是一个p c 寄存器,它存储的是即将输出的指令地址的值。 从m c u 在工作过程可能遇到的几种不同的情况出发,该模块在产生指令地 址时需要具有以下几种不同的方式: 1 ) 在执行非跳转类指令时,完成p c 寄存器的自动加1 操作并输出指令地 址。 2 ) 在执行跳转类指令时,将指令地址更新为跳转指令的目标地址并输出, 同时更新p c 寄存器的值。对于相对跳转指令,目标地址需经过计算得 出,地址的偏移量来自指令操作数;对于绝对跳转指令,目标地址的低 8 位直接取自指令操作数,高3 位与指令码相关;对于条件跳转指令, 还要根据条件是否满足来决定是
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 运营专员考试题库及答案
- 导游考试题库及答案
- 摩尼驾照考试题库及答案
- 标准化合同评审流程及模板生成工具
- 针灸学基础考试题及答案
- 2025年锅炉水处理G3证理论考试笔试试题含答案
- 2025年新疆糖料甜菜种植基地土地流转调整合同协议
- 2025年贵州科级领导干部选拔考试全真模拟试题及答案
- 商务会议组织与活动服务协议合同条款梳理
- 北流二模高考试题及答案
- 食管恶性肿瘤护理查房
- 2025年江苏高考地理真题(原卷版)
- 学堂在线 生活英语听说 章节测试答案
- 先心病常见病介入封堵治疗讲课件
- 锅炉安装改造维修管理制度
- DB31/T 1377.4-2022实验鸡和鸭第4部分:设施及环境
- 2025邮储银行面试题目及答案
- 他人借车免责协议书
- 企业合规经营及纳税证明书(5篇)
- 城中村改造项目规划设计(仅供参考)
- 公司代经营合同范例
评论
0/150
提交评论