(通信与信息系统专业论文)八位risccpu设计和实现.pdf_第1页
(通信与信息系统专业论文)八位risccpu设计和实现.pdf_第2页
(通信与信息系统专业论文)八位risccpu设计和实现.pdf_第3页
(通信与信息系统专业论文)八位risccpu设计和实现.pdf_第4页
(通信与信息系统专业论文)八位risccpu设计和实现.pdf_第5页
已阅读5页,还剩69页未读 继续免费阅读

(通信与信息系统专业论文)八位risccpu设计和实现.pdf.pdf 免费下载

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

八位r i s c - c p u 设计和实现中文摘要 八位r i s c c p u 设计和实现 中文摘要 本设计选题是基于与企业的一个合作项目,项目名称是“集成电路设计工程师入 职培训”课程建设,主要工作是以r i s c - c p u 为实例,开发一个集成电路设计流程。 r i s c 即精简指令集计算机( r e d u c e di n s t r u c t i o ns e tc o m p u t e r ) 的缩写。r i s c 与 一般的c p u 相比不仅只是简化了指令系统,而且是通过简化指令系统使计算机的结 构更加简单合理,从而提高了运算速度。 本文对r i s c c p u 的架构进行了探讨,介绍了如何设计r i s c - c p u ,并且立足于 八位的r i s c c p u 设计实例,以多种e d a 工具c a d e n c e 公司的n c - v e r i l o g 仿真 工具,s y n o p s y s 公司的d e s i g n c o m p i l e r 逻辑综合工具,c a d e n c e 公司的s o c e n c o u n t e r 布局布线工具,m e n t o r 公司的c a l i b r e 版图验证工具协同设计,系统而全面地介绍了 砌s c _ c p u 设计实例从模块划分、设计输入、功能仿真、逻辑综合、时序仿真、布局 布线到版图验证等各环节的流程和方法。同时本文在设计中采用了低功耗和探讨了流 水线设计方法,使电路的性能更加完善。 关键词:r i s c c p u 、功能仿真、时序仿真、逻辑综合、布局布线、版图验证 作者:陈芳 指导老师:王明湘黄秋萍 t h e d e s i g no f 8b i t sr i s c - c p u a b s t r a c t n ed e s i g ni sb a s e do nap r o j e c to fc o o p e r a t i n gw i t ha l li cd e s i g nc o o p e r a t i o n t h e p u r p o s eo ft h ep r o j e c ti st ob u i l dt h ec o u i f o rt h ef r e s hi cd e s i g ne n g i n e e l 鼍耽ep r o j e c t f o c u s e so n ar i s c - c p ua n dd e v e l o p sa ni cd e s i g nf l o w r i s ci st h ea c r o n y mo fr e d u c e di n s t r u c t i o ns o tc o m p u t e r c o m p a r e dw i t ht h e c o m m o nc p u ,r i s cn o to n l ys i m p l i f i e st h ei n s u u c t i o ns e tb u ta l s om a k e st h ec o m p u t e r c o n s t r u c t i o ns i m p l e ra n dm o r er e a s o n a b l e c o n s e q u e n t l yi ti n c r e a s e st h ew o r kf r e q u e n c y m s p a p 盯d i s c u s s e st h ec o n s t r u c t i o no fr s i c c p ua n di n t r o d u c e sh o wt od e s i g na r i s c - c p u t h e nt h ep a p e rf o c u s e so na n8b i t sr s i c - c p u c o m b i n e d1 】v i l hm u l t i - e d a t o o l 警_ n c v e i l i n gs i m u l a t i o nt o o lf r o mc a d e n c e ,d e s i g nc o m p i l e rs y n t h e s i st o o lf r o m s y n o p s y s ,s o ce n c o u n t e rp l a c e m e n ta n dm u t i n gt o o lf r o mc a d e n c ea n dc a l i b r el a y o u t v e r i f i c a t i o nt o o lf r o mm e n t o r , i tc o m p r e h e n s i v e l ya n ds y s t e m a t a c i a l l yi n t r o d u c e st h ef l o w a n dm e t h o d o l o g yo fr i s c c p ud e s i g nw h i c hi sf r o mm o d u l ep a r t i t i o n , d e s i g ni m p o r t , f u n c t i o ns i m u l a t i o n , l o g i cs y n t h e s i s , t i m i n gs i m u l a t i o n , p l a c e m e n ta n dm u t i n gt ol a y o u t v e r i f i c a t i o n m e a n w h i l e 1 0 wp o w e rd e s i g na n dp i p e l i n ed e s i g na r es e tf o r t ht os a t i s f yt h e d e s i g n sr e q u i r e m e n t s k e yw o r d s - r i s c - c p u 、f u n c t i o ns i m u l a t i o n 、t i m i n gs i m u l a t i o n 、l o g i cs y n t h e s i s 、 p l a c e m e n ta n dm u t i n g 、l a y o u tv e r i f i c a t i o n w r i t t e nb yf a n gc h e n s u p e r v i s e db ym i n g x i a n gw a n g ,q i u p i n gh u a n g 苏州大学学位论文独创性声明及使用授权的声明 学位论文独创性声明 本人郑重声明:所提交的学位论文是本人在导师的指导下,独立进 行研究工作所取得的成果。除文中已经注明引用的内容外,本论文不含 其他个人或集体已经发表或撰写过的研究成果,也不含为获得苏州大学 或其它教育机构的学位证书而使用过的材料。对本文的研究作出重要贡 献的个人和集体,均已在文中以明确方式标明。本人承担本声明的法律 责任。 研究生签名:醚日期:童竺: 学位论文使用授权声明 苏州大学、中国科学技术信息研究所、国家图书馆、清华大学论文 合作部、中国社科院文献信息情报中心有权保留本人所送交学位论文的 复印件和电子文档,可以采用影印、缩印或其他复制手段保存论文。本 人电子文档的内容和纸质论文的内容相一致。除在保密期内的保密论文 外,允许论文被查阅和借阅,可以公布( 包括刊登) 论文的全部或部分 内容。论文的公布( 包括刊登) 授权苏州大学学位办办理。 研究生签名:趣垂日期:妇6 f 、g研究生签名:迅查日期:塑6 :! :! 导师签名 日期 兰堕:理 八位r i s c c p u 设计和实现第一章引言 第一章引言 集成电路( i n t e g r a t e dc i r c u i t , i c ) 是电子电路,但它又不同于一般意义上的电予 电路,它把成千上万的电子元件包括晶体管、电阻、电容甚至电感集成在微小的芯片 上。正是这种奇妙的设计和制造方式使得集成电路为人类杜会的进步创造了空前的奇 迹,它不仅给人类的生产建设和科学研究带来了巨大便利,而且也彻底改变了人类文 明和人们日常生活的面目,可以毫不夸张地说,现今每个人生活的方方面面或多或少 都和集成电路有关 c p u 作为集成电路的高端产品,随着半导体工艺水平的发展,遵守摩尔定律发 展规律,c p u 性能每过1 8 个月就会翻一番。c p u 从最初发展至今已经有几十年的历 史了,这期间,按照其处理信息的字长,c p u 可以分为:四位微处理器、八位微处 理器、十六位微处理器、三十二位微处理器以及六十四位微处理器。 c p u 是c e n t r a l p r o c e s s i n g u n i t - - - - 中央处理器的缩写,它是计算机中最重要的一 个部分,由运算器和控制器组成,其内部结构归纳起来可以分为控制单元、逻辑单元 和存储单元三大部分,这三个部分相互协调,便可以进行分析,判断,运算并控制计 算机各部分协调工作。 现代计算机体系结构不再着重于设计计算机中各个部件【1 1 ,而是“向上”与对应 的指令集、编译码和操作系统更加紧密地结合在一起,“向下”与更加先进的芯片结 构设计和设计方法结合在一起。v l s i 的设计“向上”更高层次发展,计算机的设计 同时“向下发展”,两者发展的领域越来越近,甚至在很多方面交叠在一起。 计算机体系结构中的一个根本性的交革是r i s c 处理器的出现。r i s c 即精简指 令集计算机( r e d u c e di n s t r u c t i o ns e tc o m p u t e r ) 的缩写。r i s c - c p u 与一般的c p u 相 比不仅只是简化了指令系统,而且是通过简化指令系统使计算机的结构更加简单合 理,从而提高了运算速度。从实现的途径看,r i s c c p u 与般的c p u 的不同处在 于:它的时序控制信号形成部件是用硬布线逻辑实现的而不是采用微程序控制的方 式。所谓硬布线逻辑也就是用触发器和逻辑门直接连线所构成的状态机和组合逻辑, 故产生控制序列的速度比用微程序控制方式快得多,因为这样做省去了读取微指令的 时间。 r i s c 有一套优化过的指令架构,它是报掘著名的8 0 2 0 法则所i :】立。早在上个 翳1 八位r 】s c - c p u 设计和实现第章引言 世纪6 0 年代,计算机科学家们发现,计算机中8 0 的任务只是动用了大约2 0 的指 令,而剩下2 0 的任务才有机会使用到其他8 0 的指令。如果对指令系统作相应的 优化,就可以从根本上快速提高处理器的执行效率。i b m 公司在1 9 7 5 年成功开发出 第一款r i s c 处理器,从此r i s c 架构开始走进超级计算机中。由于指令高度简约, l u s c 处理器的晶体管规模普遍都很小而性能强大,深受超级计算机厂商所青睐。很 快,许多厂商都开发出了自己的r i s c 指令系统,除了i b m 的p o w e r 和p o w e r p c 外, 还有d e c 的a l p h a 、s u n 的s p a r ( 、l i p 的p a - r i s c 、m i p s 技术公司的m i p s 、a r m 公司的a r m 等。它的应用范围也远比x 8 6 来得广泛,大到各种超级计算机,工作站、 高阶服务器,小到各类嵌入式设备、家用游戏机、消费电予产品、工业控制计算机, 都可以看到r i s c 的身影。 r i s c 处理器可以说既简单又复杂;简单之处在于,相比于复杂指令集 c i s c ( c o m p l e xi n s t r u c t i o ns e tc o m p u t e r ,复杂指令系统计算机) ,这种处理器的指令和 变量非常少,正如它的英文字母缩写r s i c 所代表的“精简指令集”的含义一样;说 r s l c 复杂,是因为它们容易实现更高的并行性,而这个特点只有与设计得很好的编 译器结合起来,才能显现出其优越性。 r i s c 与c i s c ( 复杂指令,一般指普通的x 8 6 c p u ) 比较,有以下优势【2 i : 指令简单而且少。 指令系统选用那些使用频度离的简单指令和一些实用的但不十分复杂的 指令,一般指令不超过1 0 0 条。 指令字长固定,寻址方式一般不超过四种,指令格式也不超过朋种。 所有指令( 几乎所有指令) 均在单指令周期完成。 指令系统中只允许存( s t o m ! ) 和取( l o a d ) 指令访问主存,其它指令均在 寄存器之间进行。 c p u 中设鬣大量的寄存器,称作寄存器堆。 指令的运行采用崭效的流水线方式。 以硬靠线控制逻辑为主,不用或少用微码。 优化的编译程序,简单确效地支持商级语言。 超低功耗。 本文对r i s c c p u 的架构进行了探讨,介绍了如何设计r i s c c p u ,并且立足于 八位的r i s c c p u 设计实例,以多种e d a 工具( 仿真工具为c a d e n c e 公司的 2 蝴豸, 八位r i s c c p u 设计和实现 第一章引言 n c v e r i l o g ,逻辑综合工具为s y n o p s y s 公司的d e s i g nc o m p i l e r ,布局布线工具为 c a d e n c e 公司的s o ce n c o u n t e r ,版图验证工具为m e n t o r 公司的c a l i b r e 结合c a d e n c e v i r t u o s ot o o l s ) 协同设计,系统而全面地介绍了r i s c c p u 设计实例从模块划分、设计 输入、功能仿真、逻辑综合、时序仿真、布局布线到版图验证等各环节的流程和方法。 同时在设计中采用了低功耗设计方法并探讨了流水线设计方法,使电路的性能更加完 善。 ,j 八位r i s c - c p u 设计和实现第二章r i s c c p u 的架构设计 第二章r i s c c p u 的架构设计 r i s c - c p u 的设计,首先是架构设计。首先要考虑:指令集是怎样的7r i s c c p u 内采用几条总线? 用多少个寄存器? 采用几级流水线? 怎样进行分支预测、指令预取 和推测执行? 2 1 计算机体系结构 计算机体系结构可分为两种类型:冯诺依曼结构和哈佛结构。大多数c p u 采用 冯诺依曼结构。 冯诺依曼结构的处理器使用同一个存储器,经由同一个总线传输,具有以下特 点: 存储器是字长固定的、顺序线形编址的一堆结构。 存储器提供可按地址访问的一级地址空间,每个地址是唯一定义的。 由指令形式的低级机器语言驱动。 指令顺序执行,即一般按照指令在存储器存放的顺序执行,程序分支由 转移指令实现。 以运算器为中心,在输入输 1 设备与存储器之日j 的数据传送都途径运算 器。运算器、存储器、输入输【| i 设备的操作以及它们之玎j 的联系都吐j 控制器集巾 控制。 而哈佛结构使用两个独立的存储器模块,分别存储指令和数据,每个存储模块都 不允许指令和数据并存,以便实现并行处理;具有一条独立的地址总线和一条独立的 数据总线,利用公用地址总线访问两个存储模块( 程序存储模块和数据存储模块) , 公用数据总线则被用来完成程序存储模块或数据存储模块与c p u 之间的数据传输; 两条总线由程序存储器和数据存储器分时共用。数字信号处理一般需要较大的运算量 和较高的运算速度,为了提高数据吞吐量,在数字信号处理器中大多采用哈佛结构。 实际上,哈佛结构是以面积的增加为代价来换取速度的提高。 2 2 s c c p u 基本架构 一个基本的c p u 要包括三部分功能:数据的存储、数据的运算和控制部分。与 4 _ ) 八位r j s c - c p u 设计和实现第二章l u s c c p u 的架构设计 之相对应的硬件结构也分为三部分:存储器、数据通路和控制器。存储器存放指令和 数据;数据通路包括a l u 、程序计数器等,主要功能是对操作数进行运算,得到结 果,并产生程序计数器的值,作为要执行的下一条指令的地址;控制器内有指令寄存 器,它对指令进行译码,产生相应的控制信号,完成对存储器和数据通路部分的控制。 存储器、数据通路和控制器这三部分的基本关系如图2 - 1 所示。 读写控 制信号 控制 信号 图2 1 c p u 基本结构 存储器 存储器中存放了要执行的指令和楣应数据。存储器的读写信号由控制器给出。存 储器的地址来源有两个:程序计数器和指令寄存器。在取新指令时,用程序计数器的 佳作为存储器地址;在执行指令时,用指令中的地址部分作为存储器地址。 数据通路 数据通路主要包括累加器、程序计数器和算术逻辑单元。 累加器用于保存参加运算的数据以及运剪的中i 目j 结果。实际上,累加器也是寄存 器,不过,它有特殊性,即许多指令执行过程以累加器为中心。往往在运剪指令前, 累加器中存放一个操作数,指令执行后,由累加器保存运算结果。另外输入输出指令 一般也通过累加器来完成。 程序讨数器指向下一条要执行的指令。由于程序一般存放在内存的一个连续区 域,所以,顺序执行程序时,每取一个指令字节,程序计数嚣便加一。 算术逻辑单元是专门用米处理各种运算的数据信息的,它可以进行加、减、乘、 除算术运锌和与、或、非、异或等逻辑运算。 控制器 控制器产生相应的控制信号送到时序和控制逻辑电路,从而,组合成外部电路所 需婴的时序和控制信号。这些信号送彳 其他部什,以控制这些部件协调工作。 本文将以冯诺依曼结构来实现r i s c c p u 的设计,将数据和程序( 指令序列) 统一存放在一个数据存储器中。对图2 1 中的结构进行细化,可以得到一个简单c p u 八位r i s c c p u 设计和实现第二章r i s c c p u 的架构设计 的架构,如图2 2 所示。该c p u 采用总线结构,即控制器所需的指令,数据通路所 需的数据都是从总线上得到的。 图2 - 2 c p u 简单架构 2 3r i s c c p u 的功能及模块的划分 计算机进行信息处理可分为两个步骤: 1 ) 将数据和程序( 即指令序列) 输入到计算机的存储器中。 2 ) 从第一条指令的地址起开始执行该程序,得到所需结果,结束运行。c p u 的作用是协调并控制计算机的各个部件执行程序的指令序列,使其有条不紊地进 行。因此它必须具有以下基本功能: 1 ) 取指令;当程序已在存储器中时,首先根据程序入口地址取出一条 程序,为此要发出指令地址及控制信号。 2 ) 分析指令:即指令译码。是对当前取得的指令进行分析,指出它要 求什么操作,并产生相应的操作控制命令。 3 ) 执行指令:根据分析指令时产生的“操作命令”形成相应的操作控 制信号序列,通过运算器,存储器及输入输出设备的执行,实现每条指令的功能, 其中包括对运算结果的处理以及下条指令地址的形成。 本设计的r s i c c p u 数据总线为8 位t * j ,而每条指令为两个字节( 高3 位为 操作码,低1 3 位是地址) ,所以每条指令需取两次。c p u 每次取到指令后,其状 态控制器( c p u 控制中心) 分析操作码后,产生一系列控制信号,启动或停止某 6 一缵、, 八位r i s c - c p u 设计和实现第二章r i s c - c p u 的架构设计 些部件。其中时钟发生器利用外来时钟信号进行分频生成一系列时钟信号,送往 其他部件用作时钟信号。由功能分析,砌s c c p u 是一个复杂的数字逻辑电路, 但是它的基本部件的逻辑并不复杂,可把它分成以下八个基本部件,各个模块之 间的互连关系如图2 3 。 1 时钟发生器( c l k g e n ) :产生一系列的时钟信号送往c p u 其他部件; 2 指令寄存器( r e g i s t e r ) :存储指令; 3 累加器( a c c t l l n ) :存放算术逻辑运算单元当前的结果,它也是算术逻辑运 算单元双目运算中的一个数据来源; 4 算术逻辑运算单元( a l u ) :根据输入的8 种不同操作码分别实现相应的加、 与、读、写、异或,跳转等指令; 5 数据输出控制器( d a t a c t l ) :控制累加器的数据输出; 6 状态控制器( c o n t r 0 1 ) :c p u 的控制核心,用于产生一系列的控制信号,启 动或停止某些部件; 7 程序计数器( c o u n t e r ) :提供指令地址,以便读取指令; 8 地址多路器( a d o :选择输出的地址是p c ( 程序计数) 地址还是跳转的目 标地址。 产生系列控制信号来控制产生系列时钟僵号进 茸他棋块正窄工作往c p u 葛它摄块 图2 - 3r i s c c p u 结构图 ;霜 八位r i s c - c p u 设计和实现 第二章r i s c - c p u 的槊构设计 2 4r i s c - c p u 指令集 c p u 作为许多数字系统的核心,它的作用是无法替代的。而c p u 本身只是一块 集成在硅晶片上的超大规模集成电路,集成的晶体管数量可达到上亿个,是由非常先 进复杂的制造工艺制造出来的,拥有相当高的科技含量。然而如此一颗精密的芯片为 什么能够控制一个庞大而复杂数字系统呢? 这就是c p u 中所集成的指令集。所谓指 令集,就是c p u 中用来计算和控制计算机系统的一套指令的集合,而每一种新型的 c p u 在设计时就规定了一系列与其他硬件电路相配合的指令系统。而指令集的先进 与否,也关系到c p u 的性能发挥,它也是c p u 性能体现的一个重要标志 c p u 的指令集从主流的体系结构上分为精简指令集和复杂指令集,而在普通的 计算机处理器中基本上是使用复杂指令集在计算机早期的发展过程中,c p u 中的 指令集是没有划分类型的,而是都将各种程序需要相配合的指令集成到c p u 中。但 是随着科技的进步,计算机的功能也越来越强大,计算机内部的元件也越来越多,而 且越来越复杂,c p u 的指令也相应的变得十分复杂,而在使用过程中,并不是每一 条指令都要完全被执行,在技术人员的研究过程中发现,约有8 0 * , 的程序只用到了 2 0 的指令,而一些过于冗余的指令严重影响到了计算机的工作效率,就这一现象, 精简指令集( 融s c ) 的概念就被提了出来。 r j s c 的最大的特点是简单且结构相似的指令集在流水线中高效并行执行 相比于复杂指令集c i s c ,r i s c 处理器的指令和变量非常少。 本文设计的r i s c c p u 是8 位微处理器,一律采用直接寻址方式,即数据总 是放在存储器中,寻址单元的地址由指令直接给出。这是最简单的寻址方式。其 指令格式如图2 - 4 ,其中,操作码为前3 位,可以实现8 条指令;地址为后1 3 位, 可寻址2 皓( 8 k 字节) 的储存器地址空间。指令集如表2 1 所示,其中p c 代表程 序计数( p r o g r a mc o u n t e r ) ,a 表示累加器存储的数据,m 表示存储器中存储的 数据。 图2 - 4r i s c c p u 指令格式 4爵一、 八位r i s c c p u 设计和实现第二章r i s c c p u 的架构设计 表2 - lr i s c c p u 指令集 1 5 1 3 位1 2 - 0 位 指令结果 0 0 0初始化地址( 1 3 b 0 ) h l t a d d r 】 p c = 13 、b 0 0 0 l下一个p c 地址 s k z a d d r 】p c = = v a l u e ( a l u ) = o f p c + 2 ,p c + i 0 1 0 操作数地址a d d a d d r a = a + m a d d r 】 0 1 1操作数地址 a n d a d d r a = a & m a d d r 1 0 0 操作数地址 x o r a d d r a 2 aom e a d d r 1 0 1 操作数地址 l d h a d d r a = m 【a d d r 】 l l o 存放地址 s t o a d d r m a d d r = a 1 1 1下一个p c 地址 j m p a d d r p c = a d d r 对照表2 1 分别说明该8 条指令的具体功能: 1 ) h i t停机操作。该操作将空一个指令周期,即8 个时钟周期。 2 ) s k z为零跳过下一条语句。该操作先判断当前a l u 中的结果是否为 零,若是零就跳过下一条语句,否则继续执行 3 ) a d d相加。该操作将累加器中的值与地址所指的存储器或端口的数 据相加,结果仍送回累加器中 4 ) a n d相与。该操作将累加器的值与地址所指的存储器或端口的数据 相与,结果仍送回累加器中。 5 ) x o r异或。该操作将累加器的值与指令中给出地址的数据异或,结 果仍送回累加器中。 6 ) l d a读数据。该操作将指令中给出地址的数据放入累加器。 7 ) s t o写数据。该操作将累加器的数据放入指令中给出的地址。 8 ) j m p无条件跳转语句。该操作将跳转至指令给出的目的地址,继续 执行。 2 5r i s c c p u 的状态时序和控制信号 前面已经提到指令是c p u 最基本的操作,c p u 能正常工作就靠这些指令集 协调执行,那么是由谁来控制指令有条不紊地工作呢? 答案当然是c p u 的核心 部件控制器。如果把指令比作人体的双手的话,那么无疑控制器就好比人体的大 脑。控制器件得到的当前指令进行译码,产生相应的控制信号送到时序和控制逻 辑电路,从而合成外部电路所需要的时序和控制信号。这些信号送到c p u 其它 部件,以控制这些部件协调工作。c p u 何时进行读指令,读写i 0 端口,r a m 9 八位r i s c - c p u 设计和实现 第二章r i s c - c p u 的架构设计 区等操作,都是由状态机来控制的。 控制信号生成逻辑的功能包括: 生成存储器的读写信号。 控制p c 的赋值。在跳转指令时,p c 的值由指令寄存器给出;其它情况下, 由上一个值累加得到。 将解码出的操作码送给数据通路a l u ,控制a l u 的运行。 控制累加器是否要从总线上得到数据。 设计时要根据当前指令的类型和所处的周期来决定哪些控制信号有效。这里 将一个完整的操作分成8 个状态,各个状态的作用如表2 - 2 。 表2 - 2r i s c ,c p u 控制状态表 状态作用相应的控制信号 l取高8 位指令代码存储器读信号有效 2取低8 位指令代码,且p c 增1 存储器读信号有效, ( 每条指令为两个字节,需取两次)程序计数器的使能信号有效 3 空闲状态各控制信号保持原状态 对于h l t 指令,停机信号有效;对 4p c 增1 ,指向下一条指令于其他指令,程序计数器的使能信 号有效 5对于a d d 、a n d 、x o r 和l d a 指对于a d d 、a n d 、x o r 和l d a 令,从存储器中取出相应的操作数;指令,存储器读信号有效;若为 若为j m p ,将目的地址送给程序计数j m p ,使得选择总线输入地址使能 器;若为s t o ,输出累加器数据信号有效;若为s t o ,存储器写信 号有效 对于a d d 、a n d 、x o r 和l d a 指令,将结果存放于累加器中;若 6 a l u 进行运算,并且结果写回为s k z ,先判断累加器的值是否为 0 ,是0 ,程序计数器的使能信号有 效,p c 加1 ,否则保持不变;对于 跳转指令,所存目标地址 7 空闲状态各控制信号保持原状态 对于s k z ,先判断累加器的值是否 8p c 是否要增1 ,指向下一条指令为0 ,是0 ,程序计数器的使能信 号有效,p c 再加1 ,指向下一条指 令否则保持不变; 释。 下面以a d d 指令、j m p 指令和s t o 指令为例,对相关控制信号的时序进行解 a d d 指令 o 八位r i s c c p u 设计和实现 第二章r i s c - c p u 的架构设计 对于a d d 指令,控制信号时序如下: 第1 个状态,存储器读信号有效,取高8 位指令代码。 第2 个状态,存储器读信号有效,取低8 位指令代码,且p c 增1 。 第3 个状态,将指令从数据上载入到指令寄存器中。 第4 个状态,程序计数器使能信号有效,指示p c 地址加l ,指向下一条指令。 第5 个状态,存储器读信号有效,此时存储器地址取指令寄存器的地址。因此从 存储器中读出的是m c a d d r 。 第6 个状态,逻辑算术单元计算a + m a d d r ,并将结果送到输出端。这时候累加 器使能信号有效,准备好输出结果送到累加器中存放。 第7 个状态,将逻辑算术单元的结果锁存到累加器。 第8 个状态,各个控制信号保持不变。 j m p 指令 前4 个状态时的控制信号与a d d 指令一样。 第5 个状态,使得选择总线输入地址使能信号有效,用指令寄存器的地址部分 更新p c 的值。 第6 个状态,所存目标地址。 第7 和8 状态,各个控制信号保持不变。 s t o 指令 前4 个状态时的控制信号与a d d 指令一样。 第5 个状态,存储器写信号有效。 第6 个状态,将累加器的值送到逻辑算术单元的输出端。 第7 和8 状态,各个控制信号保持不变。 至此,一个八位r i s c c p u 就构造成功了。虽然它比较简单,但涵盖了c p u 设 计的主要方面。在它的基础上我们可以将其扩展为1 6 位r i s c c p u ,相应的存储器、 指令集、数据通路和控制器都要进行扩展。由于篇幅有限,在这里就不具体阐述。下 面章节中具体讲述了该八位r i s c c p u 从前端到后端设计的实现。 _ 八位r i s c - c p u 设计和实现第三章八位砌s c - c p u 设计实现 第三章八位r i s c c p u 设计实现 八位r i s c c p u 设计实现将分为模块划分、模块设计、功能仿真、逻辑综合、时 序仿真、布局布线、版图验证几个部分。设计流程如图3 1 所示。详细的设计流程及 方法将在接下来的小节中具体说明。具体安排为;第l 节讲述了八位r i s c c p u 各个 子模块的功能和设计思想,同时介绍了低功耗设计方法和流水线设计方法;第2 节介 绍了r i s c - c p u 的功能仿真;第3 节介绍了逻辑综合设计流程,并且具体探讨了 r i s c - c p u 综合实现;第4 节简单介绍了综合后仿真,即时序仿真;第5 节讲解布局 布线的概念和k i s c c p u 具体布局布线的过程;第6 节针对本设计k i s c c p u ,阐述 了版图验证方法。 k i s c - c p u 模块划分 上 修改1 l 代码卜1 各个模块i u l 代码输入 0 功能仿真 。,毹 、芝:多 +y e s 再综合卜叫逻辑综合 时序仿真 n o 涂 弋 布局布线 上 版图验证 图3 - 1k i s c c p u 设计流程图 3 1 八位r i s c c p u 各个子模块的功能和设计思想 八位k i s c c p u 可以划分为八个基本部件:时钟发生器、指令寄存器、累加器、 r i s c c p u 算术逻辑运算单元、数据输出控制器、状态控制器、程序计数器、地 址多路器,下面将具体阐述各子模块的功能和设计思想。 八位l u s c - c p u 设计和实现第三章八位r j s c - c p u 设计实现 3 1 1 时钟发生器 在介绍时钟发生器之前先介绍一下电路的功耗问题,然后再说明该模块设计 的合理性 电路的工作速度高低,面积大小和功耗高低一直以来是集成电路设计者关注 的三大问题,而往往这三者在实现上是相互矛盾的,所以许多工程师往往会在这 三大问题上作权衡考虑 5 1 。 集成器件从双极型晶体管、p m o s 、n m o s 发展到c m o s ,而制造工艺遵循 摩尔定理快速发展,从0 5 u r n 、0 3 5 u r n 、o 2 5 u r n 到现在1 8 0 n m 、9 0 n m 甚至是6 0 h m 。 芯片集成度越来越高,规模越来越大,工作速度也越来越快,相应的功耗也越来 越高现在的芯片大多是基于c m o s 工艺,所以这里主要简单介绍c m o s 的功 耗 c m o s 的功耗包括两部分:动态功耗和静态功耗。其中动态功耗是引起c m o s 的功耗的主要原因。下面简单介绍一下产生动态功耗的原因。如图3 2 ,当v i n 由高电平跳变为低电平时,p m o s 导通1 3 m o $ 截止,v d d 经p m o s 向c l 充电,产 生电流设为i p 。同样v i n 由低电平跳变位高电平时,l i m o s 导通p m o s 截止,产生 电流设为屯。此时产生的动态功耗为p ( 见公式3 - 1 ) 。 v d a 图3 - 2 c m o s 功耗分析 尸= 专【r 儿c r o a t + 如( 屹一m 其中,= - c 。警, 既以p = c 。 铲一c l 掣 ( 公式3 - 1 ) 由公式3 - 1 可知,要想降低功耗,可以减少负载q ,降低工作频率,或者降 八位r i s c - c p u 设计和实现第三章八位r j s c c p u 设计实现 低工作电压。本设计从降低工作频率厂角度出发,降低时钟信号跳变的次数,从 而可以帮助降低功耗。在芯片顶层设计一个时钟发生器如图3 - 3 所示,这在一定意义 上可以称之为门控时钟,但又与实际我们设计的门控时钟不同。真正的门控时钟是利 用p o w e rc o m p i l e r 这样的e d a 工具来自动完成的。输入c l k 是频率最高的,即意 味着在一定时间内跳变次数最多,而c l k l ,a l uc l k 和f e t c h 信号是由c l k 分 频而得,所以相对总时钟来说这些时钟信号在同样的时间内跳变次数少,即意味着可 以降低功耗。如果不设计本模块,则都用c l k 信号引到子模块,然后根据需求再进 行分频,那么在同样的时间内总的时钟跳交次数肯定大于前者,从而引起功耗的增加。 c l k g e c l k i | :i x 一 u jc u 【 l t i 船r f e t c h 图3 - 3 时钟发生器 时钟发生器c l k o e n 利用外来时钟信号c l k 来生成一系列时钟信号c l k l 、 f e t c h 、a l u c l k 送往c p u 的其他部件。其中f e t c h 是外来时钟c l k 的八 分频信号。利用f e t c h 的上升沿来触发c p u 控制器开始执行一条指令,同时 f e t c h 信号还将控制地址多路器输出指令地址和数据地址。c l k i 信号用作指令 寄存器、累加器、状态控制器的时钟信号。a l uc l k 则用于触发算术逻辑运算 单元。 3 1 2 指令寄存器 顾名思义,指令寄存器用于寄存指令。如图3 - 4 ,指令寄存器的触发时钟是 c l k i ,在c l k l 的正沿触发下,寄存器将数据总线送来的指令存入高8 位或低8 位寄存器中。但并不是每个c l k i 的上升沿都寄存数据总线的数据,因为数据总 线上有时传输指令,有时传输数据。什么时候寄存,什么时候不寄存由c p u 状 态控制器的l o a di r 信号控制。l o a d i r 信号通过e n a 口输入到指令寄存器。 复位后,指令寄存器被清为零。 1 4 八位r i s c - c p u 设计和实现第三章a p p u s c - c p u 设计实现 矾s 1 砥j c i 1 0 nf 硇g i s i 职 d a t a 70 】 e n a o p g j r a d d r s 1 5e l r e g i s t e r c l 肼 图3 - 4 指令寄存器 每条指令为2 个字节,即1 6 位。高3 位是操作码,低1 3 位是地址( c p u 的 地址总线为1 3 位,寻址空间为8 k 字节) 。本设计的数据总线为8 位,所以每条 指令需取两次。先取高8 位,后取低8 位。而当前取的是高8 位还是低8 位,由 变量s t a t e 记录。s t a t e 为零表示取的高8 位,存入高8 位寄存器,同时将变量s t a t e 置为1 下次再寄存时,由于s t a t e 为l ,可知取的是低8 位,存入低8 位寄存器 中。 3 1 3 累加器 累加器用于存放当前的结果,它也是双目运算其中一个数据来源,如图3 5 所示。复位后,累加器的值是零。当累加器通过e n a 口收到来自c p u 状态控制 器l o a d _ a c c 信号时,在c l k i 时钟正跳沿时就收到来自于数据总线的数据。 0 丑m i 帆r d a t a 7o 】 e n a c c 州70 】 c l k i a c c u m u l a t o r r s t 图3 5 累加器 八位r i s c - c p u 设计和实现 第三章八位砌s c - c p u 设计实现 3 1 4 算术运算器 算术逻辑运算单元根据输入的8 种不同操作码分别实现相应的加、与、异或、 跳转等8 种基本操作运算,如图3 - 6 所示利用这几种基本运算可以实现很多种 其它运算以及逻辑判断等操作。 图3 - 6 算术运算器 在高速通信系统的设计中,如何提高系统的工作速度1 6 是这一系统设计成败 的关键。本设计虽然着手于简单的r i s c c p u 开发流程,但是对于如何提高系统 工作速度也进行了探讨。对于r i s c c p u 中的算术运算单元的要求当然是工作速 度,本文将运用流水线设计方法,就8 位加法器用v e r i l o gh d l 编写了非流水线 模式和流水线模式的加法器进行比较。 流水线的设计思想:所谓流水线处理如同生产装配线一样,将操作执行工作 量分成若干个时间上均衡的操作段,从流水线的起点连续地输入,流水线的各操 作段以重叠方式执行。这样可以大大提高工作速度。现以8 位加法器为例进行说 明。8 位加法器非流水线模式和流水线模式v e d l o gh d l 编码1 7 1 见附录。 流水线结构如图3 7 所示。它包括额外多出的流水线寄存器( p i p e l i n e r e g i s t c r :p r ) ,输入寄存器( i n p u tr e g i s t e r :i r ) 和输出寄存器( o u t p u tr e g i s t e r :o r ) 。 流水线模式的加法器的仿真波形如图3 8 所示。结合结构图和波形图可观察到该 流水线分为三级:第一级取数据,存储在输入寄存器,第二级加法器低四位相加 操作,结果存储在流水线寄存器,第三级高四位相加,存储在输出寄存器。这三 级在时间上重叠起来,如图3 - 9 所示( a l ,b l ,s u m l 中的l 表示低四位,a h ,b h ,s u m h 中 的h 表示高四位) ,即取下一个数据的同时,当前数据正在做运算,这样就大幅 度提高了程序的执行速度。 八位r i s c - c p u 设计和实现第三章八位r j s c - c p u 设计实现 j rc _ o u t s u m 7 :o 】 图3 7 流水线结构 图3 8 流水线模式的加法器的仿真波形 1 7 1 6 :o 八位r i s c - c p u 设计和实现第三章k i f y j s c c p u 设计实现 厂 厂 厂 厂 厂 厂一 a l ! i 些丛1 2i 坐! ! l 兰2l 些型! 1 2i b i r l苎i 塑! ! 些! i ! z 堂堂堕! ! 鲤i 堂堂! 些塑2i p p i!丛竖望竺! l ! ! 些! ! 业竺堕些! 1 1 2 1 竖堕l o r 图3 - 9 流水线并行执行模式 流水线设计模式的确能提高系统的工作速度,对于要求速度很高并且计算量 很大的设计,流水线方法能有效地解决这类问题。但是流水线设计方法是以牺牲 面积来换取速度,所以在实际应用中,要综合考虑速度和面积方面的问题,择优 设计。本设计最终未采用流水线方法来设计运算单元,是因为在后面的逻辑综合 过程中发现流水线设计的运算单元面积太大,详细分析将在逻辑综合小节中介 绍。 3 1 5 数据输出控制器 数据输出控制器的作用是控制累加器数据输出,如图3 1 0 由于数据总线是各 种操作时传送数据的公共通道,不同的情况下传送不同的内容。有时要传输指令, 有时要传送r a m 区或接口的数据。累加器的数据只有在需要往r a m 区或端口 写时才允许输出,否则应呈现高阻态,以允许其它部件使用数据总线。所以任何 部件往总线上输出数据时,都需要一控制信号。而此控制信号的启、停,则由 c p u 状态控制器输出的各信号控制决定。数据控制器何时输出累加器的数据则由 状态控制器输出的控制信号d a t a c t l _ e n a 决定。 a l uo d a t a c t l i n 70 】 d a t a 70 】 d a t a e n a 图3 1 0 数据输出控制器 1 8 八位r i s c - c p u 设计和实现第三章k , 位r i s c - c p u 设计实现 3 1 6 地址多路器 地址多路器用于选

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论