已阅读5页,还剩64页未读, 继续免费阅读
(微电子学与固体电子学专业论文)微处理器验证方法研究(1).pdf.pdf 免费下载
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
摘要 随着集成电路物理尺寸的缩小,设计的复杂度不断增加、面市时间不断缩 短。功能验证已成为设计开发周期中的瓶颈,占据整个设计一半以上的时间。 对微处理器而言,它们的种类繁多、架构各异,而且通常有不同的指令集。如 果能提出一套通用的验证方案,对各种架构的微处理器进行快速而有效的功能 ( 指令) 验证,将大大提高设计开发的效率。 本文提出了一种微处理器验证的方案,并在具体项目中对8 位微处理器 m c 6 8 0 9i p 进行实践。采用基于仿真的验证流程:首先根据处理器的设计规约, 用c 语言建立参考模型;然后设计测试用例,分别施加到参考模型和r t l 模型 上,将得到输出响应进行比较,验证r t l 的功能是否与设计规约一致。项目最 终验证通过并成功流片。这种验证方法可以推广至0 其它架构的微处理器,具有 一定的理论和工程价值。 关健词:微处理器、指令验证、寻址模式、基于仿真的验证流程、参考模型, 测试用例、测试平台 a b s t r a c t w i t ht h ed e c r e a s e m e n to f l cp h y s i c a ld i m e n s i o n , d e s i g n sa r eb e c o m i n gm o r ea n d m o r ec o m p l e xa n dt h et i m e - t o m a r k e ti sc o n t i n u a l l yr e d u c e d f u n c t i o n a lv e r i f i c a t i o n e m e r g e s 鹤t h eb o t t l e n e c ko f t h ed e s i g nd e v e l o p m e n tc y c l e a n du pt oh a l f o f t h e o v e r a l lt i m eh a sb e e ns p e n to nt k ev e r i f i c a t i o n t h e r ea l ev a r i o u st y p e so fm i c r o p r o c e s s o r s ,w i t hd i f f e r e n ta r c h n e c t u r e sa n du s u a l l yd i f f e r e n ti n s t r u c t i o ns e t s i f a c o n l n l o nv e r i f i c a t i o nm e t h o d o l o g yi sp r o p o s e d , t op e r f o r mf a s ta n de f f i c i e n tf u n c t i o n ( i n s t r u c t i o n ) v e r i f i c a t i o nf o rm p u ,i tw i l li m p r o v et h ed e v e l o p i n ge f f i c i e n c yg r e a t l y i nt h i sp a p e r , av e r i f i c a t i o nm e t h o d o l o g yf o rm p ui sp r o p o s e da n da p p l i e dt oa l l m p u t h em c 6 9 0 9i pi i lap r a c t i c a lp r o j e e t t h es i m u l a t i o n - b a s e dv e r i f i c a t i o nf l o wi s u t i l i z e d f i r s t , ar e f e r e n c em o d e lf o rm p uw i t hci sd e v e l o p e da c c o r d i n gt oi t s s p e c i f i c a t i o n t h e n t e s t c a s e sa r ed e s i g n e da n da p p l i e dt ob o t i lt h er e f e r e n c ea n dt h e r t l m o d e l f i n a l l y ,t h e i rr e s p o n s e sa r ec o m p a r e dt ov e r i f yw h e t h e rt h er u c t i o no f r t la c c o r d sw i t i it h ed e s i g ns p e c i f i c a t i o n t h ep r o j e c ti sf i n a l l yv e r i f i e da n dt a p e d o u ts u c c e s s f u l l y t h i sm e t h o d o l o g yc a nb ea p p l i e dt om p u sw i mo t h e ra r c h i t e c t u r e s a n di th a ss o m es e n s e si nb o t ht h e o r ya n dp r o j e c t k e yw o r d s :m i c r o p r o c e s s o r , i n s t r u c t i o nv e r i f i c a t i o n ,a d d r e s s i n gm o d e ,s i m u l a t i o n b a s e dv e r i f i c a t i o nf l o w ,r e f e r e n c em o d e l ,t e s t e a s e ,t e s t b e n c h i i 论文独创性声明 本论文是我个人在导师指导下进行的研究工作及取得的研究成果。论文中除 了特别加以标注和致谢的地方外,不包含其他人或其它机构已经发表或撰写过的 研究成果。其他同志对本研究的启发和所做的贡献均已在论文中作了明确的声明 并表示了谢意。 名:蛘隰掣 论文使用授权声明 本人完全了解复旦大学有关保留、使用学位论文的规定,即:学校有权保留 送交论文的复印件,允许论文被查阅和借阅;学校可以公布论文的全部或部分内 容,可以采用影印、缩印或其它复制手段保存论文。保密的论文在解密后遵守此 规定。 作者签名导师签名: 芈 纽 1 课题的背景 引言 随着集成电路物理尺寸的缩小,设计的复杂度呈指数增加、对面市时间的要 求更为紧迫。由于片上系统( s o c ) 的发展,涉及到数字模拟混合设计、软件 硬件协同设计,系统变得更加复杂。同时,验证进步的速度却不能与设计进步相 匹配,例如p e n t i u mf d i v 缺陷造成的损失高达4 7 5 ,0 0 0 ,0 0 0 美元【l 】。这些说明功 能验证已成为设计开发周期中的瓶颈。对复杂的系统,验证通常占据整个设计一 半以上的时间i z j 。 在传统的微处理器设计中,系统架构师提供设计规约和软,硬件划分,逻辑 设计人员用硬件描述语言来实现处理器,软件设计师进行软件开发,验证工程师 对设计进行仿真和形式验证【3 】。而今,不断缩短的面市周期迫切需要把传统的硬 件、软件顺次设计改为同时进行t 4 1 ,另外还要考虑后续产品的向前兼容性以及对 软件的依从性,这使得验证过程变得越来越复杂,易于出错和消耗时间。 形式验证方法如模型检查【5 】、定理证明,仅适于相对小的模块和非常集中的 验证目标;在工业实践中,基于仿真的技术在m p u 验证中扮演主要角色 6 1 1 7 1 。 用于实现功能验证过程自动化的硬件验证语言1 8 】和环境的出现,大大影响了 基于仿真的技术。典型情况下,使用这些环境来验证a s i c 、s o c 和处理器中的 单层次部件,但是用它们来验证大型系统( 如x 8 6 和p o w e r p c ) 仍需要付出很多 努力。 目前工业界采用分立的、自动的、随机的激励生成器来进行处理器级别和多 处理器级别的验证。产生的激励( 通常是以测试程序的形式) 触发由验证计划定 义的结构和微结构事件【9 】。测试程序一方面要满足验证要求:测试的行为应符合 层标设计的规范。另一方面还要满足质量要求:测试应该扩大目标设计的覆盖率, 提高发现缺陷的概率。通过生成器可以得到许多不同的、分布良好的测试程序实 例,符合用户的需求。1 0 】 2 课题的目的和意义 微处理器的种类繁多、架构各异,而且通常有不同的指令集。如果能提出一 套通用的验证方案,对各种架构的微处理器进行快速而有效的功能( 指令) 验证, 将大大提高设计开发的效率。 本课题的主要任务是提出一种适于微处理器指令验证的通用方案,根据这套 验证方案建立一个验证平台,并对一款具体的微处理器m c 6 8 0 9i p 进行验证。 本课题来源于上海复旦微电子股份有限公司所承担的项目一8 位微处理器 m c 6 8 0 9 口核的功能验证与设计实现,属于工程应用性研究。 3 研究途径与方法 微处理器m c 6 8 0 9 的验证采用基于仿真的验证流程。首先,根据处理器的设 计模型、编程模型及寻址方式,用c 语言建立处理器的参考模型。同时,针对 指令集中的指令设计测试用例,并用编译器编译得到测试向量。将测试向量施加 到参考模型,得到标准输出响应。建立测试平台,对r t l 模型进行仿真,施加 与参考模型相同的激励,比较它的输出结果与标准响应是否一致,以此判断其功 能是否正确。 一 4 文章结构 本文内容共分为五章: 第一章为集成电路的验证理论,从集成电路的设计与验证的关系及验证方法 学入手,引出基于仿真的验证思想,并将这一思想应用到微处理器验证流程中去。 第二章讲述m c 6 8 0 9 微处理器模型,介绍处理器的设计模型和编程模型,详 细描述了它的端口信号特征、中断机制、寄存器分布和寻址方式等。熟悉处理器 模型是建立硬件参考模型和设计测试用例的前提。 第三章介绍m c 6 8 0 9 微处理器参考模型,描述了用c 语言实现它的全过程。 处理器的建模分为主程序设计、各种寻址模式情况下的译码函数和执行函数的设 计,以及执行结果的输出。 第四章描述如何建立验证平台及设计测试用例。描述如何构造包括存储器在 内的完整的验证环境,如何设计测试用例,同时还介绍了汇编程序的编译,及验 证结果的判断与输出。 第五章给出了验证的结果,并对整个课题作出总结。介绍了m c 6 8 0 9 项目的 设计开发流程,给出软、硬件仿真结果,以及最终版图。在文章最后,给出了课 题的结论和展望。 2 第一章集成电路验证理论 1 1 集成电路的设计与验证 随着集成电路的工艺向着深亚微米级、甚至是l o o m 以下的水平发展,芯 片的集成度空前提高。g o r d o n m o o r e 在1 9 6 5 年曾经提出,单个硅芯片中集成逻 辑门( 晶体管) 的能力每1 8 到2 4 个月翻一番,这就是著名的摩尔定律。直到现 在,这一定律依然支配着集成电路的发展。图1 1 是2 0 0 0 年预测的半导体工艺 演变图景。 i n t e r n a t i o n a lt e c h n o l o g yr o a d m a pf o rs e m i c o n d u c t o r s y e a r o f 9 9 92 0 0 02 0 0 12 0 0 42 0 0 82 0 1 12 0 1 4 i n t r o d u c f i o n t e c h n o l o g yn u d e 1 8 01 3 0 9 06 0 4 01 0 【n m l s u p p l yi v 量1 81 5 - 1 81 。2 - 1 5o 9 - 1 。20 6 - o 9o 5 - 0 6o 3 o i b w n n gl e v e l s 6 - 78 7789 9 一1 0 1 0 m a xf r e q u e n c y 1 21 8 - 1 42 。1 - 1 6 3 5 27 1 2 5 1 1 - 3 1 4 9 【g hz l l o c a l - g l o b a l 3 6 m a x p pp o w e r 【l f v 】 9 0 1 0 6 1 3 01 6 01 7 17 71 8 6 b a lp o w e r w j1 。41 7z o 2 4 2 12 3 2 5 n o d ey e a r s :2 0 0 7 6 5 n m ,2 0 1 0 4 5 n m ,2 0 1 3 3 3 n m 2 0 1 6 ,2 3 n m 图1 12 0 0 0 年预测的半导体工艺演变 尺寸的缩小带来的是电路容量、性能方面的显著提升。除了传统的专用集成 电路( a s i c ,a p p l i c a t i o ns p e c i f i ci n t e g r a t e dc i r c u i t ) 之外,强大的设计能力使人 们可以将最终产品的所有主要功能集成到单块系统芯片( s o c ,s y s t c m o n - a - c h i p ) 上。此外,电路的时钟频率已能达到千兆赫兹以上,数据的传输率也已经达到每 秒几十亿比特。 然而随着硅工艺的进步和芯片集成度的提高,集成电路的设计已经变得越来 越困难,这主要表现在: ( 1 ) 管脚数和逻辑门数不断提高; ( 2 ) 功能更加多样性; ( 3 ) 时钟速度更快; ( 4 ) 与系统的连接也更加复杂; ( 5 ) 市场对开发时间的要求不断缩短; ( 6 ) 开发成本需要进一步下降。 因此,集成电路复杂性的不断增加对验证和测试工作提出了更高的要求,验 3 证和测试的精确度将直接关系到芯片设计的成败。其中验证的精度直接影响成片 以后逻辑功能的正确率,验证的不充分可能导致投片后逻辑功能的错误,这些都 会带来风险和成本。有结果显示,在目前的超大规模数字芯片的前端设计流程中, 对r t l 级代码的验证,其工作量和投入的力度已经占到整个设计的6 0 - 一7 0 , 是整个设计过程中的重要环节。据统计,通常l 行r t l 级代码需要5 l o 行的代 码来验证。然而在市场机会的压力下,功能验证在项目中所占的时间被不断压缩, 对产品投片的成功率造成影响。 所以,验证在凸显其重要性的同时,也面临着重大的挑战。目前验证环节关 注的问题主要有: ( 1 ) 验证的自动化程度。验证是繁琐而复杂的过程,提高验证的自动化程 度,可以极大地降低验证过程的投入。在验证过程中,逻辑门每增加1 个数量级, 仿真所需的周期就要增加3 个数量级。所以在仿真周期很长的情况下,人工干预 和检查逻辑错误的可能性是非常低的,必须设计合理的方法和工具提高验证的自 动化。 ( 2 ) 验证的抽象语言支持。高效率的验证方法需要更抽象的语言支持,同 时还需要从高级语言向低级语言转换的工具。类似于软件中从机器码、汇编语言 到c 语言的发展过程,在集成电路的设计中,硬件描述语言( v e r i l o g v h d l ) 是对逻辑门单元电路描述的一种抽象,提高了i c 设计的效率,但它们在验证领 域的表现并不理想。所以业界采用更抽象的语言,如s y s t c m c 和v e r a ,以胜任 设计和验证两方面的需求。 1 2 数字集成电路验证方法学 验证的目的是要确保设计对象满足在功能规约中所定义的功能要求,验证占 据了设计研发工作的4 0 - - - 7 0 。验证工程师需要考虑的问题是:怎样才算是充 分的验证,验证选用何种策略和技术,以及如何对验证作规划以使其时间最短。 1 2 1 可用的验证技术 工业界现有的验证技术大体上可以分为四类:仿真技术、静态技术、形式技 术以及物理验证技术【1 1 1 。要实现验证芯片的目的,必须将这些方法结合起来使用。 仿真技术 基于仿真( s i m u l a t i o n ) 的验证是以设计的功能需求为基本出发点,在流片 之前对设计进行仿真,检测设计实现的功能是否达到了设计规约的要求。它在仿 真器中把激励加到设计中,并将得到的响应与预期结果进行比较。仿真技术可分 为基于事件的、基于周期的和基于事务的等等。 4 静态技术 静态技术包括代码静态检查( l i n t ) 和时序验证。前者对设计对象的代码作 静态检查来验证其在语法上的正确性,后者用来确定设计中的每个存储元素和锁 存器是否已满足时序要求,如建立时间、保持时间和各种延迟时序。用静态技术 来实现验证不需要测试平台和测试向量。 形式技术 形式验证作为功能验证的补充,提供了一种切实可行的解决方案,从而使验 证的覆盖率达到1 0 0 。它是对设计进行检查并从数学上证明它的功能特征。形 式验证主要包括两个部分:等效检查( e q u i v a l e n c ec h e c k i n g ) 和模型检查( m o d e l c h e c k i n g ) 。形式验证的优点有:更早地发现设计缺陷,降低设计的周期和成本; 用命题( a s s e r t i o n ) 取代测试用例( t e s t c a s e ) ,减小验证难度;达到1 0 0 的覆 盖率,提高验证质量;不影响原有验证流程,易整合其它验证方法。 物理验证与分析 在深距微米设计中,必须将所有的电学问题和工艺都纳入考虑并解决互连线 寄生效应,因为互连线延迟凌驾于门延迟。务必分析并解决的问题有:时序、信 号完整性、串扰、瓜电压降、电迁移、功耗分析、工艺天线效应、相移掩模( p h a s e s h i f tm a s k ) 和光学临近效应修正( o p t i c a lp r o x i m i t yc o r r e c t i o n ) 。工业界现有的 做法是:在版图之前的设计阶段估算各种物理效应、在版图之后的设计阶段再提 取和分析这些物理效应。 1 2 2 验证级别和策略 在为系统建立设计规约的同时就应当启动设计验证计划,系统规约决定了验 证的策略【i “。图1 2 为s o c 的开发流程,这里主要关注验证方面( 图中阴影部 分) 的内容。 5 设计签付 图1 _ 2 系统芯片的开发流程 系统级验证 在系统设计中,根据设计规约对系统的行为进行建模,使用行为性仿真测试 平台对系统的行为进行验证。行为性测试平台的建立可以采用硬件描述语言、 c c + + 语言或测试平台语言( 如v e r a ) 。 在证实了系统的行为正确之后,下一步是进行软件和硬件之间的划分。可以 使用库中已有的、或者在设计过程中自创的软件和硬件口,将系统映射到恰当 的架构之上。然后,使用在系统行为仿真期间所建立的测试平台去验证该架构的 功能和性能。 为系统级验证而建立的测试平台一般是基于令牌( t o k e n ) 的,所以需要将 测试平台转换一下形式,使之能够处理系统精确至周期或引脚方面的问题,这样 它就能够用于硬件r t l 代码仿真和软件验证了。 6 硬件寄存器传输级验证 在硬件验证中,r t l 代码和测试平台是从系统设计中得到的。将测试平台转 换或者迁移成某种恰当形式来验证r t l 代码,从而验证设计对象的功能。验证 主要关注设计对象的功能方面。寄存器传输级验证包括代码静态检查、模型形式 检查、逻辑仿真、基于事物的验证以及代码覆盖状况分析。 软件验证 在软件验证中,软件和测试文件是软件小组提供。软件验证针对的是通过系 统而得到的设计规约。可以使用软原型、快速原型系统、仿效或软件硬件协同 验证等手段,并根据验证要求进行验证和软件,硬件集成。 网表验证 对硬件寄存器传输级代码进行逻辑综合,就生成了门级网表。可以使用等效 性形式检查工具,将寄存器传输级代码用作参考设计( r e f e f e n c e ) 、将门级网表 作为设计实现( i m p l e m e n t a t i o n ) 进行验证,以确保r t l 代码和门级网表在逻辑 上等价。在将时钟树和扫描链添加到设计对象中之后,网表将会有所变化,所以 仍然需要使用等效检查工具对设计对象作验证。 在芯片规划设计阶段的各个步骤期间都需要执行时序验证来确保设计对象 满足其时序要求。 物理验证 对芯片设计作物理验证是为了确保在所实现出来的设计对象中没有物理违 规。物理验证包括设计规则检查( d r c ) 、版图与原理图的比对( l ,v s ) 、工艺天 线效应分析、信号完整性检查( 包括串扰、取电压降) 。 器件测试 最终器件测试将使用在功能验证期间所生成的测试向量。器件测试检查器件 制造得是否正确,它关注的是芯片的结构( 如连线的连接、逻辑门真值表) ,而 不是其功能。使用在功能验证期间所建立的测试平台和自动测试模式生成器 ( a i p g ) 工具,来生成制造器件时所用的测试向量。在验证产生满意的结果之 后,设计对象就已经就绪,可以制造( f a b r i c a t i o n ) 、签付( s i g n - o f f ) 和流片( t a l ) e o u t ) 了。 1 3 基于仿真的验证思想 1 3 1 基于仿真的验证流程 基于仿真的验证( t e s t c a s eb a s e dv e r i f i c a t i o n ) 是一种动态的验证过程,它是 在仿真器上通过模拟实际电路的工作环境来对设计进行验证。它主要由4 个部分 7 组成:测试用例( t e s t c a s e ) 、测试平台( t e s t b e n c h ) 、参考模型( r e f e r e n c em o d u l e ) 和仿真器( e m u l a t o r ) 。 1 2 1 基于仿真的验证流程是:首先根据设计需求设计测试用例;然后根据测试用 例设计相应的激励,加到参考模型上得到标准输出:在仿真器上进行仿真,通过 接口模块,在仿真过程中把激励数据送入r t l 模型;最后把r t l 模型的输出同 标准的输出结果进行比较,从而验证r 1 陀模型的正确性。流程如图1 3 所示。 基于仿真的验证是完成逻辑功能验证最基础的方法。 图1 3 基于仿真的验证流程 仿真器 仿真器是实现整个验证过程的平台和基础。验证人员设计测试用例、测试平 台和硬件参考模型,将它们整合在一起,并把r t l 模型嵌入其中,然后在仿真 器上仿真,完成逻辑验证。 测试用例 测试用例决定了系统测试功能上的覆盖率,从而决定了系统最终能否很好地 满足系统的需求。 测试平台 测试平台是提高验证效率的关键,它将整个系统的设计模块和测试模块整合 起来测试。自动化程度和查错效率是判定一个验证平台好坏的关键。 参考模型 参考模型是根据设计要求用其它语言( 如c 语言) 对系统设计的简单实现, 实现参考模型的设计重点在实现系统的功能上,它具有和r t l 模型相同的接口 和功能。 寄存器传输级模型 8 仿真,根据找出的错误修改r t l 模型,直到所有的测试用例全部通过为止。 1 3 2 随机测试与覆盖率分析 在所有的测试用例都通过之后,需要进入随机测试阶段,利用随机测试产生 偏僻用例进行重点测试。随机测试方法能提供更有效的途径来提高功能覆盖水 平,它有3 个步骤: ( 1 ) 根据给定的测试规范来选择结构化的性能特点; ( 2 ) 获得可支持测试内容包括随机参数的测试样板; ( 3 ) 开发一个能实现测试样板与硬件模型之间物理接口的处理器。 在大规模的验证测试中,在仿真的同时还需要进行覆盖测试。覆盖测试用来 评估测试的整体进程,去除重复、低效的测试案例,确定尚未被测试过的区域, 并能够识别回归组件测试( r e g r e s s i o ns u i t e s ) 。覆盖测试可划分为两大类:代码 覆盖测试和功能覆盖测试,前者是基于程序的,后者和特殊处理有关。 代码覆盖测试 代码覆盖测试会在仿真过程期间测试设计中哪些部分已经运行了测试程序, 指示出所有的状态机控制器、数据通道和控制,以及是否经过测试等信息。代码 覆盖工具还会测试累积性仿真,并对状态值和状态变换、数据和控制值以及线覆 盖实施跟踪。 功能覆盖测试 功能覆盖测试方法需要用到监视器( m o n i t o r ) 和声明( a s s e r t i o n ) 检查器。 通过收集仿真过程中产生的信息、状态条件和次序信息,监视器对整个验证过程 进行管理。这种方式能够对一项或一组测试做出评估,根据仿真过程中测得的覆 盖水平,可以动态增加伪随机测试案例或者全新测试。覆盖分析数据保存在数据 库中,以备后续集中和分析。 1 3 3 规范的测试平台 在仿真期问,检查器会在协议、结构和算法完好的前提下验证系统性能和假 设条件。而在复杂的并行系统中,协议规则之间的相互影响是非常微妙的,因此 需要为每个协议规则制作p a s s f a i l 声明。要做到这一点,需要一些基本组件组成 一个测试平台,对设计施加激励,对反应特性进行观察评估。测试平台是针对待 测模块的,如果将测试平台以一定的规范组织起来,使各组件之间通信方式达到 标准化,就可以在下一级集成时再利用这些组件,这就是组件在模块级和系统级 验证中的复用性。 一个模块的规范测试平台包括测试向量生成器、总线功能模型、调度器、检 验器和参考模型。它们之间的关系如图1 4 所示。 9 图1 4 规范的测试平台 测试向量生成器:针对每一条测试用例产生测试向量。 总线功能模型:它的作用是把底层总线的时序封装起来,向上层提供一 个统一的任务接口。它主要实现两个任务:一是实现复杂的总线协议, 同d u t 进行接口通信;二是把总线的操作抽象成能被外部模块调用的任 务( t a s k ) 。 参考模型:用c 语言设计参考模型程序,针对的是事件处理精度而非周 期精度。把和d u t 相同的测试向量输入给参考模型,它将产生期望的响 应序列。 监视器:在得到从参考模型和d u t 输出的事件数据流后,将两者进行比 较并将不匹配作为错误报告出来。 调度器:处于测试平台的最上层,作总体的任务调度,上述的每一个子 模块都对它提供任务调度接口。 这种测试平台组织方法的优越性体现在它的集成性上。通过在模块级测试平 台上做一些额外工作,可以得到能在集成测试平台使用的组件。这种复用性能可 一直延伸到结构的最上层,通过将参考模型和总线模型混合匹配在一起,可以测 试任意组合形式的模块,而不需要设计新的测试平台组件。 测试平台的组织方式有两种:一种是所有的任务调用,包括参考模型的调用 都集中在仿真程序中完成:另一种是先调用参考模型和测试向量生成器,生成激 励和参考数据( 这一步叫前仿真) ,然后在仿真过程中调用b f m 和m o n i t o r ,来 实现系统的验证。 1 3 微处理器验证流程 微处理器( m p u ) 的类型很多,各种微处理器的架构和指令集可能存在很 大的差异。但是它们都包含算术和逻辑单元( a l u ) 、控制单元、寄存器以及内 部总线等基本结构 l 3 i 。本课题研究的重点是处理器的功能验证( 指令验证) ,即 1 0 大的差异。但是它们都包含算术和逻辑单元( a l u ) 、控制单元、寄存器以及内 部总线等基本结构。本课题研究的重点是处理器的功能验证( 指令验证) ,即 关注指令的译码和执行过程是否与设计规约完全一致。 本文以具体的微处理器m c 6 8 0 9i p 为例,指令验证采用前述基于仿真的验 证流程。i c 设计师根据设计规约编写了寄存器传输级代码。对验证工程师来说, 首先要根据设计规约来设计测试用例( 汇编程序) ,经过编译器编译后得到测试 向量。同时,为了对r t l 代码进行验证。还要建立参考模型( 使用c 语言) 【川。 然后将相同的激励加到r t l 模型和参考模型分别进行仿真,得到各自执行的结 果。对它们的响应进行比较,得出验证的结论。m c 6 8 0 9 口的整个验证流程如图 1 5 所示。 图1 5 m c 6 8 0 9 i p 的验证流程 1 3 1 设计规约 设计规约是设计和验证工作总的根据和出发点。r t l 代码、参考模型、测试 用例和编译器,都是由设计规约得到的。1 1 7 】 要对m p u 进行编程和建模,必须了解详细的处理器模型,例如它的i ,o 端 口、编程模型、寻址方式和指令集等。 要了解芯片管脚的分布情况和每个i ,o 端口的信号描述,这是建立r t l 模型和参考模型的前提; 编程模型指内部架构,如寄存器的分布情况; 寻址方式灵活多变,每条指令的情况各不相同,要分别加以检验; 要熟悉它的指令集,例如每条指令的功能和具体执行情况,运算后各寄 存器值的变化,以及对条件码寄存器每一位的影响。 1 3 2 测试用例 因为要对微处理器进行指令验证,所以它的测试用例就是指令集中的指令, 以汇编程序的形式存在。测试用例需要涵盖微处理器的全部指令,以及所有的寻 l l 1 3 3 测试向量 将汇编程序的测试用例通过编译器编译为测试向量,编译时加上不同的参数 ( - x 和- b ) 把汇编程序编译成不同的格式:h e x 和b i n 。其中,前者是十六进制 向量格式文件,预装入到存储器里,供处理器的r t l 代码读取和执行;后者是 二进制机器码格式,在参考模型程序中读入存储器,作为它的输入激励。 1 3 4 参考模型 参考模型又称设计参考模块,通过向参考模型和r t l 模型施加相同的激励 并比较它们的响应,可判断r t l 的电路实现是否正确。本文按照设计规约,用c 语言对m c 6 8 0 9 进行建模,采用v i s u a lc + + 工具进行开发和编译。 参考模型实现微处理器的结构和功能,在逻辑功能的描述上更为精确,而且 由于它不需考虑时序问题,所以实现上更为简单。在参考模型设计完成并通过验 证后,执行测试程序,可以输出指令译码和执行的细节,以及最终存储器的状态。 1 3 5 测试平台 测试平台的作用是将r t l 代码和存储器连接起来,并对i o 端口的信号迸行 设置,以进行仿真。在处理器运行前将测试向量从文件读到存储器中,在程序执 行结束后将存储器的值写到文件中,以和参考模型执行的结果进行比较。 1 3 6 比较器 比较器的作用是把r t l 执行的结果和参考模型的运行结果进行比较,本文 使用的是b e y o n dc o m p a r e 工具。 参考模型的开发、测试用例的构建,以及测试平台的设计,是本论文的重点, 在后续章节将做详细阐述。 1 4 小结 本章介绍了验证的基本概念和方法,基于仿真的验证思想,以及微处理器验 证流程。 验证是判断设计对象是否满足功能规约中的功能要求。它已经占到整个设计 的6 0 7 0 ,是整个设计过程中的重要环节。工艺的不断进步给验证带来了很 大挑战。例如验证的自动化程度亟需提高,需要更抽象的语言支持,需要降低昂 贵的工具和人力成本等等。 工业界现有的验证技术大体上分为四类:仿真技术、静态技术、形式技术以 及物理验证和分析技术。在芯片开发过程中要进行各个级别的验证,包括系统级 验证、硬件寄存器传输级( r t l ) 验证、软件验证,网表验证、物理验证和器件 测试。 基于仿真的验证是一种动态的验证过程,它是在仿真器上通过模拟实际电路 的工作环境来对设计进行验证。基于仿真的验证流程是:首先根据设计需求设计 测试用例,得到激励和标准输出;然后在仿真器上把激励数据送入r t l 代码模 型,并把它的输出同标准输出进行比较,从而验证r t l 模型的正确性。 微处理器的指令验证,采用前述基于仿真的验证流程。完整的验证环境包括: 测试用例、编译器、测试向量、r t l 模型、参考模型、测试平台以及比较器等。 以下章节将以m c 6 8 0 9i p 为例来介绍微处理器的验证过程。 第二章m c 6 8 0 9 微处理器模型 要对微处理器进行建模,或者编写测试用例对它进行验证,首先必须要了解 详细的处理器模型,例如设计模型和编程模型。本章简单介绍m o t o r o l a m c 6 8 0 9 微处理器的特点,并分别描述了它的端口信号特征、中断机制、寄存器分布和寻 址方式等。m c 6 8 0 9 的处理器模型参见摩托罗拉公司的技术数据文档”l 。 2 1m c 6 8 0 9 微处理器介绍 2 0 世纪7 0 年代末,摩托罗拉公司推出了m c 6 8 0 9 ,成为8 位处理器市场的 领头羊。有人认为这是有史以来功能最强大的纯8 位处理器,也是所有投产的硬 布线处理器中最复杂的。比m c 6 8 0 9 更先进的处理器后来都用了微代码技术。这 是因为硬布线逻辑无法满足越来越复杂的设计,逐步被淘汰了。 在当时看来,m c 6 8 0 9 是一款高性能的8 位处理器,支持现代编程技术,例 如位置独立、模块化、可重入( r e e n t r a n c e ) 编程等。作为m c 6 8 0 0 系列的第三 代产品,它在结构上的主要改进是增加了新的寄存器、指令和寻址模式,可达到 更快的运算速度。 由于强大的寻址模式的出现,计算机的基本指令被大幅扩充。m c 6 8 0 9 具有 8 位处理器上最全面的寻址模式组合。在软、硬件方面具有的诸多优点,使 m c 6 8 0 9 成为执行高级语言或者应用于标准控制的一个理想的处理器。 2 1 1 兼容性 在硬件方面,它兼容所有的m c 6 8 0 0 外设:软件方面,它的地址模式和指令 与m c 6 8 0 0 前向兼容。 2 1 2 结构特征 与m c 6 8 0 0 相比,m c 6 8 0 9 增加的寄存器有:变址寄存器y 、堆栈指针u 和 直接页面寄存器d p 。这简化了软件设计,改进了寻址模式。m c 6 8 0 9 的内部模 块如图2 1 所示。它的结构包括: 寄存器组 两个1 6 位变址寄存器( x 和y ) 两个1 6 位可变址堆栈指针( u 和s ) 夺两个8 位累加器( a 和b ) ,共同组成1 6 位累加器( d ) 直接页面寄存器( d p ) 1 4 程序计数器( p c ) 夺条件码寄存器( c c ) 算术和逻辑单元a l u 指令寄存器 中断控制器 总线控制器 时序模块 图2 1m c 6 8 0 9 内部的模块图 2 1 3 硬件特征 处理器有1 6 位的地址总线、8 位双向数据总线,和一个读写信号。 有两个时钟信号,e ( 相当于m c 6 8 0 0 的平2 ) 和一个新增的方照时钟q ( 相 位比e 超前9 0 度) ,简化了硬件设计。 r e s e t 使处理器复位,h a l t 使处理器保持暂停状态而不丢失数据。 d m m b r e q 输入用于直接存储器访问或者动态存储器刷新操作,它停止 m c 6 8 0 9 的内部时钟,并把总线的控制权转移到d m a 控制器。因为处理器的寄 存器都是动态的,所以需要一个内部的计数器来周期性地从d m a 操作中恢复总 线,并执行处理器自刷新操作,这样就能允许无限长度的d m a 操作。 1 5 总线允许( b a ) 为高表明总线和读写信号处于高阻态,告诉总线共享或d m a 系统可以使用总线。总线状态( b s ) 与b a 一起译码,指示当前处理器的状态。 m c 6 8 0 9 有三个硬件中断:非屏蔽中断n m i 、快速中断请求f i r q 和一般中 断请求i r q 。优先级别依次降低,其中f i r q 是m c 6 8 0 9 新增加的中断,因为它 进入中断服务程序之前只把程序指针p c 和条件码c c 压入堆栈,所以速度较快。 存储器就绪信号m r d y 用于与慢存储器一起工作的情况下,它可以延长处 理器的内部周期和直接存储器访问的时间。 2 1 4 软件特征、 m c 6 8 0 9 有多种寻址模式,使它能更有效地寻址存储器以获得数据和指令, 适应现代编程技术的需要。 它的寻址模式和指令与m c 6 8 0 0 前向兼容,在它的基础增加了新的寻址模 式,指令和各种寻址模式的组合达到1 6 4 6 种。例如在直接寻址模式下,d p 被用 来存放地址的高位字节,可以缩短地址运算的时间;分支相对寻址允许寻址到地 址空间( - - 3 2 7 6 8 + 3 2 7 6 7 ) 中的任何地方;程序计数器( p c ) 相对寻址也可像 分支指令一样用于数据访问;变址寻址模式扩展到包括:0 、5 、8 、1 6 位的常数 偏移,8 、1 6 位的累加器偏移,自增减1 或2 。另外,大部分的变址寻址模式还 有相应的间接模式。 m c 6 8 0 9 增加了新的指令。例如:增强了堆栈操作,只需要使用一条指令 p s h p u l ,就可以把部分或全部寄存器压入弹出任意一个堆栈;m u l 指令把累 加器a 和b 中的两个无符号二进制数相乘, 结果( 无符号数) 放在1 6 位的累加器d 中; l e a 指令计算变址模式的有效地址,并把它 置于变址寄存器中,可用于开发位置独立的程 序。 具有处理1 6 位数据的能力,包括存取、 比较、加减、传输,交换以及堆栈操作等等。 m c 6 8 0 9 有三级软件中断,s w i 、s w l 2 和s w l 3 ,它们用于操作系统调用和软件开发 调试等情况。 2 2m c 6 8 0 9 的设计模型 m c 。譬:6 8 0 竺皂三思竺三竺的慧兰陶瓷 2 - 2m c 6 8 0 9 管脚排布 或塑料) ,它的管脚排布如图2 2 所示。 ” 1 6 丽 l室一一一q;一一洲m啪肌媚帕静舯葛飘嚣越钟趋嚣打茎孔扫复舢 2 3 4 5 6 7 a 9竹住n饽博盯博饽鉴篙丽誓喙篇竺竺箸篇篮 电源( v s s & v c c ) 这两个管脚用来供电:v s s 接地,为0 v ;v c c 电压为+ 5 0 v :t :5 。 地址总线( a 1 5 a 0 ) 这1 6 个管脚用于从m p u 向地址总线上输出地址信息。当处理器不需要地 址总线进行数据传输时,它输出地址f f f f l 6 ,读写信号r w :1 ,b s = 0 。这是 一个对r e s e t 向量低字节的“伪访问”,或称丽袄周期。地址在时钟q 的上升 沿为有效。当总线允许( b a ) 信号为高电平时,1 6 位地址总线的输出均为高阻 态。每一个管脚驱动1 个s c h o t t k y t r l 负载,或者4 个l s t t l 负载,和9 0 p f 电容。 数据总线( d 7 d o ) 这8 个管脚提供与系统双向数据总线的通信。当总线有效信号b a 输出为高 时,8 位数据总线的输出均为高阻态。每一个管脚驱动1 个s c h o t t k y r r l 负载或 者4 个l s t t l 负载,和1 3 0 p f 电容。 读,写信号( r w ) 这个输出信号指示了数据总线上的数据传输方向,它为高则处理器从存储器 或i o 上读取数据,为低则表示向存储器或i o 写入数据。当b a = l 时,它输出 为高阻态。r 面在q 的上升沿有效。 x t a l e x t a l 这两个输入管脚用于产 生时钟信号q 和e 。它们用于 连接片上振荡器和外部平行 谐振的晶体,如图2 - 3 所示, 或者也可以将x t a i ,接地,而 e x t a l 管脚作为外部时序信 号的r r l 电平输入。晶体或 外部频率是总线频率的4 倍, 分频后得到q 和e 。 时钟( q e ) q 和e 是m c 6 8 0 9 的时 钟,支配处理器内部的时序。 e 为使能时钟,类似于 m c 6 8 0 0 的总线时序时钟q 2 ; 图2 3 芯片与外部晶振的连接关系 1 7 q 为方照时钟( 相位比e 提前r d 2 ) ,在m c 6 8 0 0 中没有相对应的时钟。 e 的下降沿( 相位设为o ) 是周期的开始,锁存地址总线、数据总线、读写 信号r w 、b a 、b s 等信号。q 的上升沿( r d 2 ) 标志处理器输出的地址和读写 信息已经有效。对于写操作,数据由q 的上升沿( r d 2 ) 发起,在e 的上升沿( 兀) 标志为有效,存储器在e 的下降沿( h ) 锁存数据;对于读操作,处理器在e 的下降沿( 2 兀) 锁存数据。地址和数据读写应该考虑建立时间或保持时间的要求。 时钟q 和e 的关系如图2 4 所示,图2 - 5 给出了一个数据读写的例子。 e q 地址有效 , , 相位( 角度) 09 01 8 03 6 0 图2 - 4 时钟q 和e 的关系 _ 弋 步 步一弋i 厂 a 0 一 图2 - 9 ,典型的d m a 时序( 小于1 4 个周期) i。l。,。o。aiun未,。l。“一 il i i i l 图2 1 0 带自刷新的d m a 时序( 大于1 4 个周期) 总线允许和总线状态( b a b s ) 总线允许( b a ) 输出为高时表明地址和数据总线以及读写信号处于高阻态, 它用于指示总线共享或d m a 系统使用总线,但不表示能一直使用下去。当b a 变低时,经过一个d e a d 周期,处理器将重新得到总线的控制权。 总线状态( b s ) 输出与b a 一起译码,指示当前处理器的状态( 在时钟q 的上升沿有效) ,如表2 1 所示。 表2 - 1b a 、b s 的输出与处理器状态 b ab s处理器状态 oo正常( 运行) o1中断复位应答 los y n c 应答 llh a l t 总线准予 2 l o 巧 一 n := 中断复位应答状态:在取出中断向量( r e
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026上半年贵州事业单位联考玉屏侗族自治县招聘41人备考题库有答案详解
- 初级社工考试题库及答案
- 测量理论考试试卷及答案
- 颈椎骨折选择试题及答案
- 2025-2026人教版二年级数学上期末卷
- 2025-2026五年级信息技术期末测试粤教版
- 肠道菌群与代谢病线粒体功能障碍
- 肠道-脑轴在麻醉药品依赖性评价中的意义
- 肝血管瘤临床路径变异的观察策略
- 探店汽修店卫生管理制度
- 科室护理人才梯队建设
- 企业用油管理制度
- 《建筑施工常见问题》课件
- 职高计算机单招操作题库单选题100道及答案
- 通信工程部的职责与技术要求
- 简爱插图本(英)夏洛蒂·勃朗特著宋兆霖译
- 焊接专业人才培养方案
- 第二届全国技能大赛江苏省选拔赛焊接项目评分表
- 糖尿病护士年终总结
- 第20课 《美丽的小兴安岭》 三年级语文上册同步课件(统编版)
- 糖尿病基础知识培训2
评论
0/150
提交评论