(电路与系统专业论文)简指令微处理器(risc)的全流程设计.pdf_第1页
(电路与系统专业论文)简指令微处理器(risc)的全流程设计.pdf_第2页
(电路与系统专业论文)简指令微处理器(risc)的全流程设计.pdf_第3页
(电路与系统专业论文)简指令微处理器(risc)的全流程设计.pdf_第4页
(电路与系统专业论文)简指令微处理器(risc)的全流程设计.pdf_第5页
已阅读5页,还剩66页未读 继续免费阅读

(电路与系统专业论文)简指令微处理器(risc)的全流程设计.pdf.pdf 免费下载

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

文档简介

原刨性声明 本人郑重声明:所呈交的学位论文,是本人在导师的指导下,独 立进行研究所取得的成果。除文中已经注明引用的内容外,本论文不 包含任何其他个人或集体已经发表或撰写过的科研成果。对本文的研 究作出重要贡献的个人和集体,均已在文中以明确方式标明。本声明 的法 期:2 堕! ! 二以 关于学位论文使用授权的声明 本人完全了解山东大学有关保留、使用学位论文的规定,同意学 校保留或向国家有关部门或机构送交论文的复印件和电子版,允许论 文被查阅和借阅:本人授权山东大学可以将本学位论文的全部或部分 内容编入有关数据库进行检索,可以采用影印、缩印或其他复制手段 保存论文和汇编本学位论文。 论 山东大学硕士学位论文 摘要 当代超大规模集成电路设计与制造技术日趋成熟。微处理器,特别是嵌入式 微处理器的设计实现以其低功耗、高性能之特征发展迅速简指令c p u ( r i s c ) 作为嵌入式系统业已成为s o c ( 片上系统) 研究与开发的技术热点 本课题完成了基于舡p s i i 指令系统的3 2 位简指令微处理器全流程设计实 现,由系统级硬件描述、仿真与综合验证,直至布局布线及布局优化 本项研究所实现的一体化设计流程,反映出笔者在超大规模s o c 设计思想和 设计方法学等领域进行的努力和尝试。特别是在设计流程的组织上所表现出的创 新点。本课题所进行的设计流程应用到诸多s y n o p s y s 公司的前端和后端设计工 具主要应用到v c s ( 验证仿真) 、d e s i g nc o y p i l e ( 逻辑综合) 、f o r m a l i t y ( 形式验证) 、p h y s i c a lc o m p i l e ( 物理综合) 、f l o o rp l a nc o m p i l e ( 布局规 划) 、c t s ( 时钟树生成) 、p r i w t i 妒( 静态时序分析) 、s t a r r c x t ( 寄生参数 r 提取) 及a s t r o ( 布局布线) 等软体。 首先设计起始于代码级的实现与验证,随后进行了逻辑综合基于面积约 束和时序约束,进行面积和时序的逻辑约束,进入物理设计流程物理设计流程 以物理综合着手,以1 0 单元、兆单元、行通道生成的次序进行布局规划,完成 时钟树的综合,进而使用a s t r o 进行布局布线 本工作在布局布线阶段,对设计进行了静态时序仿真和寄生参数的提取,并 根据仿真结果和参数对设计进行了再规划和细化调整,并对逻辑网表和v e r i l o g 描述、布图规划之后的网表及门级网表、物理综合后的网表及布图规划后的网表, 以及时钟树综合后的网表与物理综合后的网表进行了形式验证通过对整个流程 的调整,对影响信号完整性、串绕和寄生参数的流程进行了重点分析和解决,增 加信号线间的间距,采用屏蔽措施,并采用参数提取和参数分析工具来检测易出 现信号完整性问题的区域,选择出其中的区域并加以解决在驱动器选择中t 采 用缓冲器来分割长线,减小线的长度和耦合电容,将缓冲器输入端的负载降低到 单个负载的水平,确保在缓冲器布局布线过程中做较小的改动就可以确保底层规 划和优化的实施笔者在设计流程中加入了静态时序分析步骤,用以处理噪声和 延迟问题。将解决串扰和时序的步骤集成到同一流程中经过反复的试验和设计, 一当耋奎兰塑圭兰竺釜銮 最终成功的完成了r i s c 的全流程设计。 本设计实现所进行的诸多研究与工作具有一定的系统性和可操作性为日后 进行更大规模的6 4 位简指令微处理器的设计打下了良好的设计基础本项研究 进行的过程中,得到了中芯国际集成电路制造有限公司、泰鼎多媒体技术( 上海) 有限公司的技术支持 1 关键词:集成电路:超深亚微米;物理设计;信号完整性;布局布线 , 山东大学硕士学位论文 a b s t r a c t n o w , t h ed e s i g na n dm 柚l l f i c 呲t e d m o l o g yo fv l s ih a v eb e e np c = r f 砒a g r e a tp r o g r e s sh a sb e e nm a d ei nt h ed e s i g no fm p u 。e s p e c i a l l ye m b e d d e dm p u , t l l 锄l ( st oi t sl o wp o w e rc o n s u m p t i o na i l dh i g hp c = r f b f m 蛆t h cr e s e a r c ha n d d e v e l o p m e n to f i u s cc p u 船e m b e d d e ds y s t e m , i s 、,i t a lf o rt h ed e v e l o p m e n to fs o c ( s y s t e mo nac h i p ) , t h i ss u b j e c th 鹧c o m p l e t e dt h ew h o l ed e s i g no ft h e3 2 b “r i s c 口ub a s e do n t h em i p s i ii n s m l c t i o ns y s t e m ,f r o mt h es y s t e ml c v c lh a r d w 眦d e s c r i p t i o n , s i m u l a t i o n & s y n t h e s i sv e r i f i c a t i o na n dt h ep l a c ea n d r o u t et ot h ep l a c e m e n to p t i l n i z a t i o n 1 kw h o l ed e s i g nt l o wo ft h i s 鲫巧e c tr e f l e c t sm ya t t e m p ti nt h ef i e l do fv l s i s o cd e s i g nm e t h o d o l o g y , e s p e c i a l l yi nt h ei n n o v a t i o no ft h ed e s i g np l _ o o 懿 o r g a n i z a t i o n m a n yd e s i g nl o o i so fs y n o p s y sh a v eb e e nl l s e d i n c l u d i n gv c s , d e s i g nc o m p 眦f o r m a l i t y , p h y s l c a lc o m p 腿,f l o o rp l a n c o m p 几e ,c t s ,p 剐m m 附正,s 1 a r - r c x ta n d a s t r o f i r m l y , t h cd e s i g nb e g i n sw i t ht h ef i n i s ha n dv e r i f i c a t i o no f e 翻t el e v e ld e s i g na n d t h el o g i cs y n t h e s i s b a s e do nl l l r l 既1 c 0 删缸a i n t 柚dt i | m n gc 。叫血a i m ,蚴咀鼬阻i n :ta n d 痂i n gl o g i c 埘出撕h a v eb e e n 丘n i s h c d t h e np h y s i c a ld e s i g n o c c 豁i sd e v e l o p e d p h y s i c a ld e s i g nf l o wb e g i n sw i t hp h y s i c a lc o m p i l e f o l l o w e db yt h en o o rp l a ns u c ha s i om ta n d 也es y n t h e s i so fc t s p l a c ea n dr o u t eh a v eb e e nc o m p l e t e dw i t ha s t r o , a f t e rt h ep r i m t i m es i m u l a t i o na n d 呻a s t i cc x t r o 施o ni nt h ea 脱o fp l a c ea n d r o u t e ,p l a n 蛆da d j u s t m e n ti nd e t a i lh a v eb e e nf 如h e x l 耻以 蛐t ot h es i m u l a t i o n 托诎a n dp a r a m e t e r s f o r m a l i t yo fg a t en e t l i s t n e t i i s t 栅p h y f i c 甚lc o m p i l e n e t l i s t a f t e rf l o o rp l a n , l l e t l i s ta f t c rc t si sf i n i s h e d b yt h e 喇u s 血c n lo ft h ee n t i r ef l o w , t h e p r o b l e m so fs i ( s i n g l ei n t e g r a t e ) a r o s s t a l ka n dp a r 硎ea c t 删o nh a v eb e e n a n a l y z e da n dw o r k e do u t w i d e n i n gt h ed i s 啪c cb c 蜘懵髓l h es i 鲫l a lw i 瞄,诅l d n g f l f i e l dm 嘣a n d d e t e c t i n gs 1w i t ht h ep a 衄鼬叮舒删o na n da n a l y s i st o o l s h t h e 叫6 n go fd r i v e r s ,w ct a k eb u f f e r st od i v i d et h el o n gw i r ef o rt h ed 嘲辩o f w i 瑙a u dc o 即l i n g p a c 1 1 啪啦d e w t u g 呻ml o a do f b u f f e rt o 位s i n g l e 山东大学硕士学位论文 l o a d ,w ec a ne n s u r et h er e a l i z a t i o no fb o t t o mp l a na n do p t i m i z a t i o nb yt h es m a l l m o d i f i c a t i o ni nt h ep l a c ea n dr 伽【t eo fb u f f e r s b ya d d i n g 两m e t j m ea n a l y s i si nt h e d e s i g nf l o w , t h ep r o b l e m so f n o i s ea n dd e l a ya r cw o r k e do u tt h ep r o c e d u r e ss o l v 吨 t h ep r o b l e m so fc r o s s t a l ka n dt i m i n ga 托p u ti n t oo n ef l o w f i n a l l y , b y r e p e a t e x p e r i m e n t sa n dd e s i g n s t h ef u l lf l o wd e s i g no f r i s ch a sb e e nf i n i s h e d t h er e s e a r c ha n dw o r ko ft h i sd e s i g nh a v es y s t e ma n do p e r a t i o nc h a r a c t e r i s t i c sa n d t h ed e s i g nf o u n d a t i o no f6 4 - b i tr s i cm p uh a sb e e nm a d e t h i sr e s e a r c hi ss u p p o r t e d b y s e m i c o n d u c t o rm a n l l f j a c t u r i n gi n t e r n a t i o n a lc o r p o r a t i o na n dt r i d e n tm u l t i m e d i a t e c h n o l o g i e s ( s h a n g h a i ) c o l t d k e yw o r d s :i c ( i n t e g r a t e dc i r c u i t s ) ;v d s m ( v e r yd e e ps u b m i c r o m e t c r ) ; p h y s i c a ld e s i g n ;s i ( s i n g l ei n t e g r a t e ) ;p l a c ea n dr o u t e 7 山东大学硕士学位论文 第一章前言 1 1 课题背景及来源 随着大规模集成电路技术日益成熟,微处理器的应用越来越广泛。目前,国 际上微处理器按应用领域的不同可分为三类:一是通用高性能微处理器,追求高 性能,主要应用于工作站和高性能个人计算机系统:二是嵌入式微处理器,主要 用于运行面向特定领域的专用程序,配备轻量级操作系统,如;手机、v c d 、机 顶盒等:三是微控制器类,主要用于汽车空调、自动机械等领域的自控设备。展 望2 1 世纪前5 0 年,微电子技术对我们既是一个重大的机遇,也是一个严峻的挑 战,随着“后p c 时代”的到来,数字化产品的技术需求越发旺盛,产品层出不 穷。嵌入式微处理器以其低功耗、高性能的特点成为市场新宠。由于嵌入式微处 理器还处于起步阶段。市场潜力巨大,而且没有形成垄断,如果我们能够抓住这 个机遇,立足创新,则有可能使我国微电子技术实现腾飞,在新一代微电子技术 中拥有自己的知识产权,促进我国微电子产业的发展“1 嵌入式微处理器的基础是通用计算机中的c p u 。在应用中,将微处理器及其 辅助设备集成在同一块电路板上,只保留和嵌入式应用有关的母板功能,这样可 以大幅度减小系统体积和功耗。为了满足嵌入式应用的特殊要求,嵌入式微处理 器虽然在功能上和标准微处理器基本是一样的,但在工作温度、抗电磁干扰、可 靠性等方面一般都做了各种增强。和工业控制计算机相比,嵌入式微处理器具有 体积小、重量轻、成本低、可靠性高的优点,但是在电路板上必须包括r o m ,r a i d 、 总线接口、各种外设等器件,从而降低了系统的可靠性,技术保密性也较差。嵌 入式微处理器一般就具备以下4 个特点:1 ) 对实时多任务有很强的支持能力,能完 成多任务并且有较短的中断响应时间,从而使内部的代码和实时内核的执行时间 减少到最低限度。2 ) 具有功能很强的存储区保护功能。这是由于嵌入式系统的软 件结构己模块化,而为了避免在软件模块之间出现错误的交叉作用,需要设计强 大的存储区保护功能,同时也有利于软件诊断。3 ) 可扩展的处理器结构,以能最 迅速地开展出满足应用的最高性能的嵌入式微处理器。4 ) 嵌入式微处理器必须功 耗很低,尤其是用于便携式的无线及移动的计算和通信设备中靠电池供电的嵌入 式系统更是如此,如需要功耗只有聃甚至u 耵级8 。3 3 r i s c 作为嵌入式系统的一种 8 山东大掌硕士学位论文 有着极为广阔的应用前景,它的核心技术突出了嵌入式系统的特点,它的全流程 设计技术也是非常关键的技术,而在设计过程中。全流程的设计也显得尤为重要 这代表着一个国家的微电子水平,和独立研发的能力。在这种情况下,我展开了 r i s cc p u 从前端的设计到验证综合、f o r m a i l i t y 行为验证、布局布线、l a y o u t 的工作。 1 2 本项研究的主要内容及关键技术 本课题基于对r i s cc p u 体系结构的深入研究,完成了各子模块功能的代码 实现。进而,基于s y n o p s y s 的验证工具v c s 进行了仿真验证,完成了代码的逻 辑功能验证,确定了正确性和可综合性。采用d e s i g nc o m p i l e 进行逻辑综合, 代码映射得到门级网表,通过f o r m a i l t y 形式验证,比较验证门级网表和代码, 物理网表和门级网表之间的一致性。最后,基于物理设计的流程,进行布图规划、 布局布线、物理综合、静态对序仿真等物理设计。导出g d s i i 文件,完成了整个 的设计流程。 本课题的关键技术点包括: v c s 代码验证; f o r m a l i t y 形式验证的主要技术: 物理设计的流程和实现; 信号完整性的解决方案。 1 3 论文的内容安排 本文共分七章, 第一章前言 第二章r i s c 及其指令系统 第三章代码实现和v c s 验证 第四章逻辑综合 第五章形式验证 第六章物理设计 第七章总结 9 山东大学硕士学位论文 第二章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 ) 即缩减指令集合计算机,产生于 8 0 年代中期,其主要思想是简化指令格式和寻址方式,从而提高指令的运行速度。 相对于原来具有复杂指令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 i s c 体系结构大大减少了指令的数量,采用固定长度的指令系统,优 化编译程序,寻址方式简单等等,这些使r i s c 体系结构具有较高的性能和较小的 芯片面积。同时采用r i s c 技术的处理器更容易实现流水线操作,从而使处理器在 每个周期能执行的指令条数接近于l “3 。它作为计算机设计策略的一种类型己愈 来愈多地应用于计算机的体系设计中。国际上出现了多种以r i s c 体系结构设计的 计算机,如s u n 公司的u l t r a s p a r c ,s g u m i p s 公司的r 1 0 0 0 0 ,i b m m o t o r o l a a p p l e 公司的p o w e r p c ,d e c 公司的a l p h a2 1 2 6 4 和i m p 公司的p a 一8 0 0 0 等等。 随着对计算机功能要求的日益增强,设计师们逐渐设计出更为复杂的机器。 而r i s c 体系结构的出现是基于以下几点:一是经过统计发现,各种编译程序基本 上都愿意用比较简单的指令,几乎不使用附加给微程序中那些十分复杂的指令, 编译程序最优化更进一步倾向于使用简单指令:二是采用r i s c 技术后大大简化 了芯片内的控制电路部分,有效地减少了芯片设计的复杂程度,节约了芯片面积。 若采用同样的芯片面积,就可在芯片上集成更多的功能单元( 如寄存器,超高速 缓冲存储器) 。这样就可减少访问内存的频度,使各种处理过程的执行速度都大 大加快。简而言之,r i s c 的设计思想就是简单性与有效性,b p r i s c 是通过有效地 简化处理机指令集合语义以及指令集合的编码来获得芯片资源的有效利用。 2 1 使用m i p s 3 2 指令系统的砒s c c p u 本课题设计了基于m i p s 3 2 系统的p j s cc p u ,主要就它的综合和布局布线等方面进行了 研究。下面先介绍一下它的结构和工作原理。 2 1 1 流水结构 流水线( p i p e l i n e ) 是一种能够使多条指令重叠操作的处理机的实现技术,它 已成为现代处理器设计中最为关键的技术。 流水线处理机把指令的执行分成几个步骤,成为级( s t a g e ) 。 1 、m i p s 微处理器的流水线分为五级: l o 山东大学硕士学位论文 ( 1 ) 从指令存储器取指令( i n s t r u c t i o nf e t c h ,i f ) ; ( 2 ) 解码指令的同时读取寄存器中的值( i n s t r u c t i o nd e c o d e r ,i d ) : ( 3 ) 执行操作,以及计算地址( e x e c u t e ,e x e ) : ( 4 ) 访问数据存储器中的操作数( m e m o r ya c c e s s ,姬m ) ; ( 5 ) 把结果写回寄存器( w r i t eb a c k ,w b ) 2 、数据路径的流水结构 微处理器主要包括两部分;数据路径和控制部件在流水线处理器的设计中 需要把控制部件嵌入到数据路径中,适时准确的产成数据路径所需的控制信号 流水线处理器的最大特点是每一个时钟周期取出一条指令来执行。所有指令 按取出的先后次序通过数据路径在第一级,i f 级,指令计数器p c 中的内容作 为访问指令存储器的地址,送到指令存储器的地址输入端。第二级,i d 级,对 指令进行译码。根据译码的结果访问寄存器堆,取出相应的寄存器单元中的数据 或者对1 6 位立即数进行扩展作为下一级运算单元的输入第三级,e x e 级,这 一级根据i d 级输入的数据完成算术逻辑的运算第四级,m 酬级,存储器访问, 根据e x e 级计算结果和相应的控制信号,对存储器进行读或写操作,读出存储器 中相应地址的数据或将结果写入相应的地址单元,第五级,髓级,将a l u 计算 结果或从存储器中取出的数据写回寄存器堆中暂存,作为后读指令的源操作数 为保证指令在流水线中可靠的执行,需要在流水的各级之间安排一组寄存 器,用以保存当前时钟周期运算的结果,以便为下一个周期使用,即流水线寄存 器。 2 1 2 指令系统 r i s c 处理机一般采用固定长度的指令格式定长指令格式的好处在于指令译 码和流水线执行比较容易r i s c 处理机指令系统的共同特点就是指令种类少而 精,寻址方式简单,指令格式固定,只有l o a d s t o r e 指令访问存储器,而运算指 令的操作数全部来自于快速寄存器堆本课题的r i s c 微处理器采用的指令系统为 m i p s 3 23 2 位指令系统。 m i p s 3 2 指令分为如下几类: 存储器访问指令( l o a d s t o r e ) :用于在存储器和通用寄存器之问传递数据, r i s c 体系结构的共同特点是所谓的l o a d s t o r e 结构,即访问存储器的指令只有 t o a d s t o r e 两种。它们访问存储器的地址是由寄存器的内容和1 6 位立即数偏移量 山东大学硕士掌位论文 _ _ - - _ _ _ _ - _ _ _ - _ - _ _ _ _ _ _ _ _ - - - _ _ - _ _ _ - _ - - _ - i _ _ _ _ - _ _ _ _ - _ _ - 相加的结果。因此都属于立即数类型指令( 1 一t y p e ) 运算指令:完成算术、逻辑、移位运算。操作对象既可以是寄存器中存储的 3 2 位数据,也可以是1 6 位立即数扩展成的3 2 位数据运算指令既可以是寄存器类 型( r - t y p e ) 也可以是立即数类型( 1 - t y p e ) 跳转转移指令o u m p b r a n c h ) :跳转转移控制指令用于改变程序的顺序执 行次序。转移指令( b r a n c h ) 用程序计数器( p c ) 加偏移量的寻址方式令程序计数器 指向目的地址跳转指令o u m p ) 类似于寄存器间接寻址的方法,把某个寄存器的 内容写入p c 这样的指令通常被用于从程序散转表中取到目标地址,再跳转。j u m p 指令由单纯2 6 位字地址( j t y p e ) 或寄存器地址( r t y p e ) 组成。b r a n c h 指令则包 括了相对于p c 的1 6 位偏移量,属于立即数类型。 协处理器指令:用于完成协处理器中的操作本设计中主要用到了 l o a d s t o r e 。f p u 的加、减、乘指令 特殊指令:用于执行一些特殊任务,包括在特殊寄存器和通用寄存器间传递 数据,陷阱指令,设置断点等。这些指令都属于寄存器类型指令婀冷 m i p s 采用的是r e g i s t e r r e g i s t e r 指令格式。又叫做lo a d s t o r e 格式,所有 指令的长度均为3 2 位 ( 1 ) 存储器访问指令 存储器访问指令是每个处理机都必须具备的。最基本的存储器访问指令包括 取数据( 1 0 a d ) 和存数据( s t o r e ) 两种取数据是从存储器读出数据,把它写入寄 存器中:存数据是把寄存器中的数据写入存储器中把数据从存储器中取出并存 入寄存器中的数据传输指令称为l o a d ,实际的h i p s 指令名是1 w ( 即l o a dw o r d ) l o a d 指令的格式: l - r t 。o f f s e t ( r s ) r t 目的寄存器,是将要把数据存入的寄存器:r s 源寄存器,r s 中的数据与1 6 位偏移量( o f f s e t ) 相加得存储器地址。 与l o a d 相对的指令称为s t o r e ,这一指令完成把寄存器中的数据存到存储器 中,m i p s 指令中的名字是s v ( 即s t o r ew o r d ) 钾的指令格式与l - 相似: s lr t ,o f f s e t ( r s ) 将寄存器r t 中的数据存储到r s 中的内容与1 6 偏移量相加得出的存储器地址 山东大学硕士学位论文 中 ( 2 ) a l u 指令 a l u 指令共分为4 类:逻辑运算指令、算术运算指令、移位指令、比较指令。 逻辑运算指令包括寄存器操作类型和立即数操作类型寄存器操作类型是对 两个寄存器中的内容进行逻辑运算,结果存到寄存器中,如a n d ,o r ,x o r ,n o r 等:立即数操作类型是对寄存器中的内容和3 2 位扩展立即数进行逻辑运算,结果 存到寄存器中。如a n d i ,o r i ,x o r i ,n o r i 等。 算术运算指令与逻辑运算指令类似,不同的是算术运算指令还包含了有符号 数和无符号数。a d d ,a d d i ,s u b ,l l u l t 表示参与运算是有符号数,立即数作有符 号扩展;a d d u ,a d d i u ,s u b u ,w u l t u 表示参与运算的是无符号数,立即数作无符 号扩展乘法器采用b o o t h 编码完成1 6 x1 6 位乘法。 移位指令包括左移指令和右移指令s l l ,s l l v 。s p a ,s r a v ,s r l ,s r l v 等。 s l l ( s h i f tl e f tl o g i c a l ) 逻辑左移,指令格式:s 乙lrd ,r t ,s a ,将寄存器r t 中的数据左移s a 位,低位补。,结果存入寄存器州中;s l l v ( s h i f tl e f t l o g i c a l v a r i a b l e ) 交量逻辑左移,指令格式:s l l vr d ,r t ,r s 。将寄存器中r t 中的数据 左移,低位 b o ,移位数由寄存器r s 低j 位确定,结果存入寄存器r d 中。逻辑右移 指令与逻辑左移指令相似,在此不再详述,s r l ( s h i f tr i g h t l o g i c a l ) 、s r l v ( s h i f tr i g h tl o g i c a lv a r i a b l e ) 指令格式为:s r lr d ,r t ,s a : s r l 旷r d ,r t ,r s es r a ( s h i f tr i g h ta r i t h m e t i c ) 算术右移,指令格式:s r ar d ,r t , s a 。寄存器r t 中的数据右移s a 位,高位作符号扩展,结果存入寄存器r d 中。 s r a v ( s h i f tr i g h ta r i t h m e t i c v a r i a b l e ) 变量算术右移,指令格式:s r a v r d ,r t , r so 寄存器r t 中的数据右移,移位数由寄存器r s 的低五位决定,高位作符号扩展, 结果存入寄存器r d 中 比较指令比较两个的大小,以i 和0 标识。比较指令同样涉及寄存器类型和立 即数类型,有符号数和无符号数,包括s l t ( s e to nl e s st h a n ) 、s l t i ( s e to nl e s s t h a ni m m e d i a t e ) 、s l t i u ( s e to nl e s st h a ni m m e d i a t eu n s i g n e d ) 、s l l u ( s e to n l e s st h a nu n s i g n e d ) s l t 指令格式:s l tr d ,r t ,r s 。寄存器r s r t 中均为有符 号数,如果r s 中的数小于r t 中的数结果为1 ,否则为。,结果存入目的寄存器r d 中s l t i 指令格式:s l t ir t ,r s ,i m m e d i a t e 1 6 位立即数作符号扩展至3 2 位,如 山东大学硕士学位论文 果r s 中的数据小于立即数结果为1 ,否则为0 。结果存入r d 中s l t u 和s l t i u 与s l t 和s l t i 类似,不同的是s l t u 和s l t i u 是对无符号数操作。 ( 3 ) 转移控制指令 转移指令改变程序的顺序执行次序。转移( b r a n c h ) 指令通常用p c 加偏移量的 寻址方法令p c 指向目的地址:跳转( j u m p ) 指令类似于寄存器间接寻址的方法,把 某个寄存器的内容写入p c ,这样的指令通常被用于从程序散转表中取到目标地 址,再跳转。本设计中用到m i p s 3 2 的转移控制指令有b e q b n e ,b g t z ,b l t z ,j j r b e q ( b r a n c ho ne q u a l ) 指令格式:b e qr s ,r t ,o f f s e t ,如果寄存器r s 和r t 中的 内容相等,则程序转到目标地址执行,目标地址由偏移量( o f f s e t ) 和前一条指令 的地址相加得出b n e ( b r a n c ho nn o te q u a l ) 与b e q 相反,指令格式:b n er s ,r t , o f f s e t ,如果寄存器r s 和r t 中的内容不相等,则程序转移到目标地址执行b g t z 和b l t z 的比较对象是o ,如果大于0 则b g t z 执行,如果小于o 则b l t z 执行。因指令 均为字节寻址所以偏移量需要乘4 ,即左移2 位,并作符号扩展至3 2 位。b r a n c h 指令执行时总是使前一条指令无效,即有一条指令的延迟。 j ,j r 是无条件转移指令,j 的指令格式:jt a r g e t ,2 6 位t a r g e t 左移2 位,低 位补。,高4 位由前一条指令的高4 位补齐,得出目标地址。j r 的指令格式:j rr s , 指令执行后程序跳转到寄存器r s 存储的地址。j u m p 指令的执行同样也会引起一 条指令的延迟 ( 4 ) 浮点单元( f l o a t i n g p o i n tu n i t ) 指令 本设计的浮点单元共实现加、减、乘三条指令,意在用硬件实现浮点的规格 化问题。 2 2 流水线相关问题处理 相关性问题( h a z a r d s ) 是流水线操作中比较重要的问题,它解决的好坏直接 影响到流水线性能高低。在流水线操作过程中,当下一条指令无法在下一个时钟 到来时被执行,这种情况就叫做相关性问题( h a z a r d s ) 下面将描述三种流水线 中的相关性问题结构相关( s t r u c t u r a lh a z a r d s ) 、控制相关( c o n t r o l h a z a r d s ) 和数据相关( d a t a h a z a r d s ) 。同时相关性问题的解决方法也在设计中得 到解决 2 3 1 结构相关的处理 结构相关是指硬件不能支持两条希望同时执行的指令采用m i p s 处理器的5 1 4 山东大学硕士学位论文 级流水线操作,就可以很轻松的解决结构相关问题设想如果使用单一存储器结 构,而不是指令存储器和数据存储器分开的设计,在5 级流水线操作中如果有4 条指令在执行,比如第4 个时钟周期里第一条指令正在对存储器中的数据进行 访问,而第四条指令同时从同样的存储器中读取指令如果没有使用两个存储器 的设计,流水线就会出现结构相关问题。 2 3 2 控制相关的处理 控制相关是指其他指令正在执行时,需要根据一条指令的结果作出一个判 断。在流水线操作执行有条件的跳转指令的时候,跳转与否是根据上面莱条指令 对标志位的设置来决定的,这种情况就是发生了控制相关问题 有两种方法可以解决:一、流水线等待( s t a l l ) 。流水线等到跳转指令执行 跳转完毕之后,才对下一条指令进行解码操作。这种方法效率比较差。二、流水 线预测( p r e d i c t ) 。在流水线执行跳转指令时,可以首先预测跳转指令的结果, 从而送出后续指令。比如处理器预测的是跳转不成功,那执行过程是这样的:如 果跳转不成功,那么就执行下面那条指令,如果跳转成功,那么就把下面那条指 令放弃,从新的p c 值里获得新的指令 2 3 3 数据相关的问题 数据相关是指正在流水线中执行的一条指令和它前面一条正在执行的指令 产生的结果有一定的依赖关系。可以把e x e 输出到m e m 级的计算结果直接反馈到 e k e 级的输入端,这样就可以避免数据相关问题的发生,这种解决技术叫做指令 前推( f o r w a r d i n g ) ”1 尘耋銮兰罂圭:墨兰兰 l 第三章代码实现和v c s 验证 在设计完成以后,首先要通过代码实现代码编写完毕以后,要进行功能的 验和仿真,确保自己的设计各种逻辑功能的正确。我在设计中采用的工具是 s y n o p s y s 公司的仿真验证工具软件v c s ( v e r i l o gc o m p i l e ds i m u l a t o r ) v c s 是一个编辑源代码辑和对其进行验证仿真的工具,它能进行多种抽象级 别的验证仿真,包括行为级( b e h a v i o r a l ) 、寄存器传输级( 盯l ) 、门级( g a t e ) 等。 设计中采用了v e r i o g 进行代码的编写参考了典型的r i s cc p u 的代码, 整个设计有存储器( r a w ) 、运算单元( l u ) 、控制器( c o n t r 0 1 ) 、乘法器 ( m u l t s t o r e ) 、r i s c 核( r i s c _ c o r e ) 、时钟产生器( c k g e n ) 、地址存储器( a d r ) 、 顶层模块( t o p ) 和各种寄存器等部分 验证仿真时先分块进行,然后再集成在顶层模块里面进行验证。经过反复的 实验,修改代码,再验证最后得到正确的代码。下面是各部分的验证结果的部 分图形” 3 1 乘法器的仿真验证波形 如圈3 一1 是对乘法器进行仿真验证之后v c s 产生的波形图 图3 - - 1 乘法器的仿真验证渡形图 虫耋奎:要圭兰竺兰兰 3 2 运算器a i 的仿真验证波形 如图3 - 2 t 是对运算器a l u 进行仿真验证之后v c s 产生的波形闰。 图3 2 运算器a l l 的仿真验证波形图 3 3 地址储存器的仿真验证波形 如图3 - - 3 是对地址储存器进行仿真验证之后v c s 产生的波形图。 圈3 - - , 3 地址储存器的仿真验证波形图 1 7 一 当奎奎兰登圭兰鳘至兰 3 4 时钟发生器的部分仿真验证波形图 如匿3 - 4 是对时钟发生器进行仿真验证之后,v e s 产生的部分波形图 图3 - - 4 时钟发生器的部分仿真验证波形图 3 5 控制器的仿真验证波形图 如图3 5 ,是对控制器进行仿真验证之后,v c $ 产生的波形图 圈3 5 控制器的仿真验证波形圉 出至銮:要主兰竺兰兰一一 3 6 数据控制器的仿真验证波形 如图3 - 6 。是对敷据控制器进行仿真验证之后,v c s 产生的披形墨 掘3 - - 6 数据控制器的仿真验证波形图 3 7 寄存器的部分仿真验证波形 如图3 - - 7 是对寄存器进行仿真验证之后v c s 产生的部分渡形圈 图3 7 寄存嚣的部分仿真验证波形圈 t 9 山东大学硕士学位论文 3 8 集成顶层模块的仿真验证波形 分块仿真验证之后,再从顶层把所有模块集成在一个大的模块,进行仿真验 证,它的波形图如图3 8 图3 8 顶层的仿真验证波形图 山东大学硕士学位论文 i i - _ _ _ _ l - _ _ _ _ _ _ _ _ _ - _ _ _ - _ _ _ _ _ _ _ - _ _ - - 第四章逻辑综合 通过功能的仿真和验证之后,确定逻辑功能符合要求,下面就要进行综合的 工作了下面我先简单介绍一下综合的知识和综合中需要注意的问题 4 1 逻辑综合流程 v e r i l o gh d l 是一种硬件描述语言,它不仅可以在门级和寄存器传输级 ( r e g i s t e rt r a n s f e rl e r v e r ,r t l ) 描述硬件,也可以在算法级对硬件加以描述。 综合就是从采用v e r i l o gh d l 语言描述的寄存器传输级电路模型构造出门 级网表的过程。如图4 1 所示: r i l o e 皿堪生 曩蝣z 艺 一嗍一甲 图4 1 综合过程 综合是个中间步骤,它生成的网表是由导线相互连接的寄存器传输级功能块 ( 如触发器、算术逻辑单元和多路选择器) 组成的。此时,就要使用r t l 模块构 造器的程序了,该构造器用来针对用户指定的目标工艺从预定元件库中构造或获 取每一个必需的r t l 功能模块。 产生门级网表以后,逻辑优化器读入网表并以用户指定的面积和时序约束为 目标优化网表。这些面积和时序约束也可以用来指导模块构造器恰当地选取或生 成寄存器传输级功能块“” v e r i l o gh d l 这种硬件描述语言允许用户在不同的抽象层次上对电路进行建 模,这些层次从门级、寄存器传输级,行为级直至算法级因此,同一个电路就 可以有多种不同的描述方式,但不是每一种描述都是可综合的,事实上,v e r i l o g 2 l 山东大学硕士学位论文 h d l 原本被设计成种仿真语言。而不是一种用于综合的语言结果导致v e r i l o g h d l 中有很多结构没有相应的硬件可以对应,例如系统调用s d i s p l a y 同样也不 存在用于寄存器传输级综合的v e r i l o g 皿l 标准子集。 正是由于存在这些问题,不同的综合系统所支持的v e r i l o gh d l 综合子集是 不同的由于v e r i l o gh d l 中不存在单个的对象来表示锁存器或触发器,所以每 一种综合系统都会提供不同的机制以实现锁存器或触发器的建模。因此各种综合 系统都定义了自己的v e r i l o gh d l 可综合子集以及自己的建模方式“。嘲。 图4 - - 2 是综合设计流程。需要使用综合方法检查器来确保编写出的模型是 可综合的注意这项工作必须在第一个验证循环中完成。首先通过这种方式验证 模型是可综合的,然后再对其进行综合 量 宪瞳 经过t 薯种优化的一毫 图4 - 2 综合设计流程 4 2 逻辑综合的具体步骤 综合中采用了s m i c ( 中芯国际) 的0 1 8 pm 的综合库。综合工具使用的是 s y n o p s y s 公司的d e s i g nc o m e p i l e 4 2 1 数据路径的逻辑综合 这里需要用到s y n o p s y s 的m o d l ec o m p i l e 和d e s i g nc o m p i l e 。 l 、首先设置综合数据路径所需要的环境变量 2 、读入库文件,设置数据路径综合的输入文件、输出文件、日志文件 山东大学硕士学位论文 3 、设置用到的源文件,并开始进行综合。 下面是综合过程中的一些情况,包括温度、电压等参数 啪札瞄:1 1 1 删d o ”f l l e e 1 1 1kl e n e r l t 酣 副f 帕p s 叫由c e l ll t b r l r t e s r e 州1 n 9u

温馨提示

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

评论

0/150

提交评论