




已阅读5页,还剩92页未读, 继续免费阅读
(微电子学与固体电子学专业论文)基于fpga的系统芯片soc原型验证技术的研究与实现.pdf.pdf 免费下载
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
摘要 摘要 随着系统芯片( s o c ) 设计复杂度不断增加,使得缩短面市时间的压力越来 越大。虽然i p 核复用大大减少了s o c 的设计时间,但是s o c 的验证仍然非常复 杂耗时。s o c 和a s i c 的最大不同之处在于它的规模和复杂的系统性,除了大量 硬件模块之外,s o c 还需要大量的固件和软件,如操作系统,驱动程序以及应用 程序等。面对s o c 数目众多的硬件模块,复杂的嵌入式软件,由于软件仿真速 度和仿真模型的局限性,验证往往难以达到令人满意的要求,耗费了大量的时间, 将给系统芯片的上市带来严重的影响。为了减少此类情况的发生,在流样片之前, 进行基于f p g a 的系统原型验证,即在f p g a 上快速地实现s o c 设计中的硬件 模块,让软件模块在真正的硬件环境中高速运行,从而实现s o c 设计的软硬件 协同验证。这种方法己经成为s o c 设计流程前期阶段常用的验证方法。 在简要分析几种业内常用的验证技术的基础上,本文重点阐述了基于f p g a 的s o c 验证流程与技术。结合m o j o x 数码相机系统芯片( 以下简称为m o j o xs o c ) 的f p g a 原型验证平台的设计,介绍了m o j o xf p g a 原型验证平台的硬件设计过 程和m o j o xs o c 的f p g a 原型实现,并采用基于模块的f p g a 设计实现方法, 加快了原型验证的工作进程。 本文还介绍了m 0 j o xs 0 c 中a r m 固件和p c 应用软件等原型软件的设计实 现以及原型验证平台的软硬协同验证的过程。通过软硬协同验证,本文实现了 p c 机对整个验证平台的控制,达到了良好的验证效果,且满足了预期的设计要 求。 关键词:系统芯片;f p g a ;原型验证;软硬件协同验证 北京工业大学工学硕士学位论文 a b s t r a c t a s 忙m p l e x i 母o ft l l es o cd 船i 鲥i l l c r e 船i i l gg r a d l l y 血ep s s u mo fd e c 嗽s i n gt l i e p r o d u c tt i n l e t o - m a r k e tb e m 嚣m o 他锄dm o 陀s e r i a 峪a l m o u g h 血ei pc o r e 惦m gm a k 曲m e d 髓i 鲷c y c l er e d u c e dr a p i d l y t t i es o cv e r i f i c 撕彻i ss f j l l 锄p l e ) 【柚dt j l n e - c 衄s 哪i i i g t h em o 甄 d i 伍舶啪b e 怕,鲫in ”s o c 舡i da s i cj sm es l ea n dc 咖p l i c 舢e ds y s t e i x lp r o p e r 吼b 鼬i d 髓血e h a r d w a m o d u l e s ,m a n yf i r i n w a r ca i l d f t w a 托a nn c c d c db yt l l es o cd c s i 印,s u c h 鹞t i l e o p e m t i o ns y s t 哪,d r i v e 晤锄da p p i i t i p m g 娜璐w 曲t h en 啪e r o 嘴h a r d w a mm o d u l c s 舳d i n 仃i c a t e 锄b e d d c ds o r w 鹕v 酬行c 砒i o nc a n ts 小i s f i e d 血e 他q u i 他m 肌tf k q 嘲t l ym 艟t ot l i e i i m i 协t i o f t l i es i m u l a t i 伽s p c e d 柚dm o d e l s ,w h i c hc o m 啪m o r et i i i i e 锄dt a k e sb a di n n u 棚 m ec 咖i n g i n t o 摊m a r k e t i n o r d 盯t oa v o i d t h i sc a 辩,b c f o t l i e t e 髓c h i p i s t a p e d o u s y 咖 p r o i o t y p ev e r m c a t i o ni sc o m p i 砷e db a s e do nf p g a ,w h e r et h eh a r d w a 他m o d u i e s i ns o cd e s i 鲫i s i m p i e m 舶t e dw 胁h i g h - s p d ,锄dm a k 嚣t h e f h a m o d u l 鼯n mi n r ll l a r d w a r ec o n d i t i r a p i d l y w h i c hi m p l e m e n t sm eh w s wc 0 - v 盯i 丘c a l i o no f t h cs o cd c s i 印1 1 l i sm 劬o db c c o m c s 龇c 伽m 硼v c r i 6 c a t i o l ip r o s si l lm c 俪s ts t a g eo f s o cd e s i g n t 1 i i sp 印c ri l i i d u 懈s “e r a iv e r i f i 训t h n i q 嘲c o 咖伽】yl i s e di i li l l d i 矧峨a n dt l l c s o cv c r i f i c a t i o np r o 嘲s 锄d t i l n o l o g yb a s c d 锄f p g a i s i i ld c t a n 做吨t l l e f p g ap f o t o t y p c v 丽6 c 撕傩p l a t f o 彻o fm o j 似d i g i 协is t i l ic 锄啪s o c o n e d 豁m o j o xs o c ) 猫柏e x 锄p l e , t h ef p g ah a r d w a 他d 嚣i 印p m c so ft i i cp r o t o t y p ev 盯矗c a t i o np l a t f o n n 锄dt 1 1 ep r o t o t y p e i m p l 伽朋t a t i o nb a s c do nf p o a i sp 嵋踞n t c d a n dt 1 1 ef p g ad e s i 朗i m p i 锄e i l 诅t i m 劬o db l o c k b 嬲e ds p e 酣su pt i i cw o r kp r o g s so f p r 砷啊p cv 州行c a t i 伽 1 1 l i sp a p c ra l p r e 湖协t i l ei m p i 啪蜘洲佣o f a r mf i 咖w a ”,p c 叩p l i c a t i o n f h v a 拍d h w s w 静v c r 币c a t i o nf o rm o j o xs o c 1 1 i 州g l lt l l ch w s w 静v e r i 缸a t i o n ,m ec 仃o l w h 0 i ev c r m c a t i o np l a t f 撕ni si m p i 伽e n t e db yp c ,w h i c ha c h i “ag o o dv 盯i f i c a t i 化s u n 锄d s a t i s n e st l l ed 9 1 1 ”q u i r 鲫部t k e yw o r d s :s o c ;f p g a ;p r o t d i y p ev e r i 丘c a t i o n ;s w ,h wc o v e r i f i c a t i i i 独创性声明 本人声明所呈交的论文是我个人在导师指导下进行的研究工作及取得的 研究成果。尽我所知,除了文中特别加以标注和致谢的地方外,论文中不包含 其他人已经发表或撰写过的研究成果,也不包含为获得北京工业大学或其它教 育机构的学位或证书而使用过的材料。与我一同工作的同志对本研究所傲的任 何贡献均已在论文中作了明确的说明并表示了谢意。 签名:罗仁燕日期:加7 石 关于论文使用授权的说明 本人完全了解北京工业大学有关保留、使用学位论文的规定,即:学校有 权保留送交论文的复印件,允许论文被查阅和借阅;学校可以公布论文的全部 或部分内容,可以采用影印、缩印或其他复制手段保存论文 ( 保密的论文在解密后应遵守此规定) 签名:猡和愎导师签名:彦、列修日期:矽7 磊 第l 章绪论 第l 章绪论 随着集成电路的工艺能力和设计能力的快速发展,为了满足嵌入式系统市场 对于成本、功能和功耗的要求,系统芯片( s o c ,s y 咖mo n - a h i p ) 设计技术已经 成为一种发展趋势。众所周知,迄今为止在集成电路发展过程中,摩尔定律( 单 芯片上所能集成的晶体管数目每1 8 个月翻一番) 一直在起作用“,因此s o c 的 规模和功能在不断急剧膨胀,这使得设计验证日益重要并向业界提出了巨大挑 战,已成为了整个s o c 设计流程的瓶颈“1 。本章首先介绍了本文研究的背景和意 义以及f p g a 原型验证的发展情况。然后介绍了本文的主要研究内容,最后是论 文的结构。 1 1 课题背景及课题意义 当前芯片一次投片成功率只有3 5 左右,造成芯片重复投片的主要原因就是 验证不够充分。s 0 c 验证所需资源已占整个设计资源的6 0 一8 0 。s o c 验证研 究领域在验证技术、验证方法学、测试码提取、验证描述语言、p 核重用验证、 验证流程及验证评估方面取得了长足进步嘲。但总体而言验证技术已经落后于设 计和制造能力,仿真和验证工作成为整个s o c 学科发展的制约瓶颈,给提高设 计生产率造成了障碍。如何构建一种更快更好的设计验证方法是当前s o c 业界 所关注的问题。 随着s o c 设计复杂度不断增加,使得缩短面市时间的压力越来越重。虽然 口核复用大大减少了s o c 的设计时间,但是s o c 的验证工作仍然非常复杂耗时。 s o c 和a s i c 的最大不同之处在于它的规模和复杂的系统性,除了大量硬件模块 之外,s o c 还需要大量的固件和软件,如操作系统,驱动程序以及应用程序等“一 s o c 硬件模块数目众多,嵌入式软件复杂,由于软件仿真速度和仿真模型的局限 性,验证往往难以达到令人满意的要求,在s o c 芯片的设计过程中,从系统设 计,逻辑设计,各层次仿真到综合,直至流出样片后才能在硬件层次验证设计的 正确性。经常会出现到了最后才发现芯片的设计有错的情况,这不仅会造成投 片巨大成本的浪费,而且要耗费了大量的时间,将给系统芯片的上市带来严重的 影响。为了减少这种情况的发生,在投片之前,进行快速系统原型验证,即硬件 原型和软件原型结合验证,己经成为s o c 设计流程前期阶段的常用验证手段阻”。 北京工业大学工学硕士学位论文 1 2 国内外相关领域的研究进展 f p g a 原型验证的本质在于快速地实现s o c 设计中的硬件模块,让软件模块 在真正的硬件环境中高速运行,从而实现s o c 设计的软硬件协同验证。该技术 实现的基础是需要规模强大的f p g a 和有力的设计描述及编译工具”。 由于目前f p g a 在密度和复杂程度上有了飞速的发展,在f p g a 设备中逻辑 密度和存储位已有3 0 倍的增长,使得这项工作可以实现。a b m 公司最新推出 最大的蚴m 系列的e p 3 s l 3 4 0 f p g a ,包含高达3 3 8 ,o o o 个等价逻辑单元( l e , l o g i ce l c i i l e n t ) 和超过1 7 m b i 忸的嵌入式存储单元。同时,大规模的f p g a 器件 一般都嵌有微处理器、m 核和多种高速接口标准。由于f p g a 最大的特点就是 具有静态可编程的特性或在线动态重构特性,使硬件的功能同软件一样可以通过 编程来修改,使设计和测试工作变得便利且实时性好。这种设计验证模式也可以 使产品开发周期大为缩短,降低开发成本。 目前,f p g a 已成为最理想的s o c 功能验证的器件,它为s o c 的快速系统原 型验证提供了一个非常合适的平台。所以,基于f p g a 的s o c 芯片的原型验证技 术的研究工作已经成为业内广泛关注的热点。 1 3 课题研究内容 本课题结合“m o j o x 数码相机系统芯片”设计项目,建立相对完善的硬件验 证环境,完成基于该系统芯片的f p g a 的硬件验证平台的设计,f p g a 的工作实现 以及整个验证平台的软硬协同验证调试工作。 本课题所研究的内容不仅是“m o j o x 数码相机系统芯片”设计工作的重要组 成部分,也是整个s o c 设计领域的重要研究内容,建立一种更快更好的硬件验证 环境已经成为当前s o c 业界所关注的重要问题之一 1 4 论文内容 本论文主要由六部分组成: 第一部分:绪论,对本论文研究背景和研究内容的概述; 第二部分:s o c 中的验证技术,介绍了业内常用的几种验证技术,分别阐述 了各自的有缺点; 第三部分:基于f p g a 的s o c 原型验证技术,主要介绍了f p g a 实现s o c 的验证流程与技术,从s o c 到f p g a 的移植技术,f p g a 中基于模块的设计方法, 第l 章绪论 以微处理器为核心s o c 的f p g a 的验证方法以及s o c 中多片f p g a 的验证方法; 第四部分:m o j o xs o c 原型验证硬件平台的设计,介绍了f p g a 原型验证平 台的硬件设计概况,着重讲述了主板的设计方案及实现,并完成了该平台的硬件 电路的测试工作; 第五部分:m o j o x s o c 的f p g a 原型实现,介绍了m 0 j o x s o c 的f p g a 原 型实现过程,通过对s o cr t l 代码的修改,实现了从s o c 到f p g a 的成功移植; 采用基于模块的f p g a 设计实现方法,加快了原型验证的工作进程; 第六部分:m 0 j 弧s o c 原型验证平台软硬协同验证,介绍了m o j o xs 0 c 中 a r m 固件和p c 应用软件等原型软件的设计与实现以及m o j o xs o c 原型验证硬 件平台的软硬协同验证的过程; 最后是结论部分,在总结本论文完成情况的基础上,指出下一步工作的进展 与设想。 第2 章s o c 中的验证技术 第2 章s o c 中的验证技术 验证的目的是要确保设计对象满足在设计规范中所定义的功能要求,实践 证明,对系统芯片进行验证会占到整个项目工作总量的7 0 以上。目前,工业 界验证技术有许多种,它们大致可以分为六类:基于仿真的技术,静态技术, 形式技术,基于断言的验证方法,快速原型系统验证和物理验证与分析技术。 要实现系统芯片的设计目的,必须将这些技术组合起来使用。 2 1 仿真技术 仿真( s i m u l a t i o n ) 技术涉及到基于事件的仿真,基于周期的仿真,基于事 务的验证,代码覆盖状况的分析,软硬件协同验证,硬件加速器技术以及数模混 合信号仿真。 2 1 1 基于事件的仿真技术 基于事件的仿真技术是把输入激励的变化认为是事件的触发,每一个仿真时 间仿真器处理一个事件触发,根据事件触发的内容对整个设计重新计算,直到一 个仿真稳态出现为止0 1 。如果输入的信号在一个时钟周期内到达,而不同的输入 信号达到的时间可能不尽相同,则基于事件的仿真机制决定仿真器在一个周期内 要计算多次。这不仅因为各个输入的信号抵达时间不同,还存在来自位于下游的 设计元素的信号反馈n m 。 尽管基于事件的仿真为设计提供了具有时序的精确的仿真环境,非常容易探 测到设计中的毛刺电路,尤其适用于异步电路的仿真。但是其执行速度取决于设 计对象的规模和仿真中行为举动的( 抽象) 层次,算法复杂,对于规模较大的电 路仿真可能会很慢。 2 1 2 基于时钟周期的仿真 基于时钟周期的仿真器在时钟周期的时间内没有时间的概念,它只在时钟的 上升沿或下降沿进行触发,每一个时钟周期的时间对电路计算一次0 1 。基于时钟 周期的仿真技术特点是忽略设计的时序,假定所有寄存器的建立时间( s c t i i pt i m c ) 和保持时间( h o l dt 缅e ) 都满足要求,在一个时钟周期,信号仅更新一次,从而信 号必须与时钟同步。 基于时钟周期的仿真可以在一定程度上提高电路的仿真速度,但是它只适用 于同步设计的电路仿真,对于异步电路则有可能产生错误的仿真结果。 北京工业大学工学硕士学位论文 2 1 3 基于事务的验证 基于事务的验证允许在信号月i 脚之外的事务级之上对设计对象进行仿真和 调试。将系统中各个功能模块之间所有可能的事务类型都建立出来,并系统地加 以测试。基于事务的验证不需要很细致的测试平台以及大型向量。“1 。在基于事 务的验证中使用总线功能模型( b f m ,b u sf u n c t i o nm o d e l ) 。总线功能模型为设 计对象的硬件接口上运行事务提供了一种手段。它将根据接口协议的要求来驱动 各个互连线的信号。这种验证技术提高了验证效率,可以很容易的实现自核对和 定向随机测试。 2 1 4 代码测试覆盖率检查 代码测试覆盖率检查,可以统计当一组测试用例作用于设计时各种各样的测 试覆盖情况:语句覆盖,( 电平) 翻转覆盖,有限状态机( f s m ) 弧( a r c ) 覆盖, 受访问状态覆盏,触发覆盖,分支覆盖,表达式覆盖,路径覆盖和信号覆盖等。 利用这些数据,设计者可以了解测试激励对设计的覆盖情况,同时还可以确定设 计还有哪些功能没有得到测试。测试激励的代码覆盖率至少要达到9 5 以上才能 基本认为代码在逻辑上是通过质量控制的,才能进入综合步骤。这一方面帮助设 计者可以对测试功能覆盖情况有一个量的认识,另一方面方便设计者发现冗余逻 辑和设计错误”1 。 代码覆盖率为成套的测试提供了量化评价的手段和查明设计对象未经测试 的地方,是保证高质量代码的必要条件,但却不是充分条件。即便代码行覆盖和 分支覆盖都能够达到1 0 0 ,也不能肯定的说代码己经得到1 0 0 的验证,除非 所有的分支覆盖都能够进行组合。 2 1 5 软硬件协同验证 在软硬件协同验证中,将软件和硬件同时集成起来加以验证。协同验证环境 所提供的图形用户界面( g u i ) 与软硬件项目开发小组当前使用的软件仿真器, 调试器和硬件仿真器一致嘲。这使得软件小组能够直接在硬件设计对象上执行软 件。此外,硬件设计可以采用真实的输入激励来仿真,因而减少了创作硬件平台 所需要的工作量。 软硬件协同验证可以在设计的早期对软件和硬件同时加以验证,这样就能够 加快产品面市的时间。同时,它还提供了足够的性能来运行接口可信度测试、代 码片断、各个驱动程序和应用程序的代码“”。但是,由于能力和仿真速度的限制, 当今已有的软硬协同验证环境还无法提供足够的性能以便在目标实时操作系统 ( r t o s ,r 1 1 _ 蚰e0 l p e r a t i s y s t e l n ) 上运行整个应用软件。 第2 章s o c 中的验证技术 2 1 6 硬件加速器技术 硬件加速器技术,是将软件仿真中全部或部分元件映射到特意为加快某些仿 真操作的速度而设计出来的硬件平台中啪。普遍的做法是创建一个物理芯片的逻 辑模型,向仿真器提供该芯片的行为信息,芯片和仿真器的通信过程是首先将物 理芯片插入硬件仿真器,然后格式化来自仿真器的数据,作为该芯片的输入,最 后将该芯片输出的数据,包含时序信息,送往仿真器。 硬件加速器器可以提供很高的仿真速度,但是设备价格高昂。需要注意的是, 硬件加速器实现的只是功能仿真而不是时序仿真,因为往往芯片是降频运行的 2 1 7 数模混合信号仿真 目前数模混合信号系统芯片的设计不只是自顶而下( t o p - d o w n ) 数字电路 设计和自底而上( b o t c o m u p ) 的模拟电路设计。业内现有的模拟电路设计工 具所能提供的自动处理能力要少一些,主要是由于模拟电路设计的本质上更为复 杂。 数模混合信号的仿真比单纯的模拟电路仿真或单纯的数字电路仿真复杂。通 常遵循的仿真技术是单纯验证数模混合信号的功能模块。数模混合信号功能模块 的接口部分被当作数字信号,在集成到系统芯片之后再去验证接口部分。 2 2 静态技术 静态技术包括静态( 1 i n t ) 检查和静态时序分析( s t a ,s 协t i cn m i n ga l l a l y s 动。用 静态技术来实现验证不需要验证平台和测试向量。 2 2 1 代码静态检查 代码静态( 1 缸) 检查对设计对象的代码作静态检查来验证其在语法上的正 确性。不保险的错误类型有未初始化的变量,不受支持的( 语法) 结构和端口 不匹配。可以在设计的早期进行代码静态检查,查出代码中的简单错误,避免使 用更高级的工具而造成大量时间的浪费。 2 2 2 静态时序分析 设计对象中的每个存储元素和锁存器都有时序要求,例如建立时间( s e t l l p t 铀e ) 、保持时间( h o l d 啊m e ) 和各种延迟时序。1 。静态时序分析是用来确定是 否已满足时序要求,对于大型设计对象是一个挑战性难题,因为每一个输入都可 能有多个信号源,并且时序可能会根据电路运行状况而变化。 北京工业大学工学硕士学位论文 2 3 形式验证 形式验证是一种系统验证手段。它一方面指利用边界条件从理论上推导、论 证设计实现的正确性,另一方面通过分析对比两个设计来论证两个设计实现的功 能是否一致,形式验证主要用来判断两个设计的等价性。1 。形式验证方法不需要 用于验证的测试平台和( 测试) 向量。理论上讲,形式验证将保证非常高的验证 速度和1 0 0 的覆盖率。但由于形式验证涉及较复杂的数学推导,加之推导本身 的正确性难以把握,尤其当系统较复杂时,形式验证会成为整个项目进展的瓶颈。 2 3 1 定理证明技术 定理证明技术仍然处于学术研究的阶段。这种技术允许用户使用定理去构造 出对设计对象行为的证明,以此来表明设计对象满足其功能要求。 2 3 2 模型形式检查方法 模型形式检查技术充分利用数学上的形式技术来验证设计对象的行为属性。 模型检查工具用设计对象的行为与用户自定义的一组逻辑属性相比较。所定义的 属性是直接从设计规范中提取出来的。模型形式检查也很适用于复杂的控制结 构,如总线仲裁器、译码器、处理器以及外围设备的桥等。 模型形式检查工具不需要任何测试平台和( 测试) 向量。它以查询的方式来 指定待验证属性。当工具发现错误时,它将生成初始状态变化到指定属性不成立 状态的完整过程的记录。但是,模型形式检查并不能消除对仿真的需要,只是对 仿真的一种补充。这种方式不考虑设计对象的时序信息,因而需要使用时序分析 工具来进行静态时序分析。 2 3 3 等价性检查方法 等价性检查是证明同一个设计对象的两个不同视图彼此等价的一种方法。它 通过一定的算法,来证明设计实现的逻辑一致性,保证设计的功能在实现过程中 没有改变嘲。这种方法可以用来验证寄存器传输级对寄存器传输级、寄存器传输 级对门级以及门级对门级实现之间是否等价。因为等价性检查工具是拿参考设计 与目标设计对象作比较,因此参考设计功能是否正确是很关键的 等价性检查方法比穷举式仿真更快,而且它能保证实现l o o 的验证覆盖率, 不需要开发测试平台和向量。但是,这种方法不能验证设计对象的时序,因此它 必须和时序分析工具一起使用。 第2 章s o c 中的验证技术 2 4 基于断言的验证方法 断言验证就是在仿真中引入形式特征检查的验证方法啪。用这种方法,设计 者在编码时插入对特征的描述一断言。代码完成后,进行仿真以检查断言,并修 改仿真时断言发现的问题。最后,特征检查根据约束限定,穷举搜索设计的状态 空间、证明或证伪断言、查找设计的错误。 断言验证将是芯片设计业中下一个突破点,使设计者能继续设计和验证更大 更复杂的电路。由于断言定义了设计的属性( 或可认为是功能) ,通过对断言的 覆盖率统计我们可以将传统的代码覆盖率分析提升到功能覆盖率分析,对于设计 的功能检查具有更加直接的意义。基于断言技术并结合动态仿真、形式验证、测 试激励自动化等方法的验证平台构成了新的验证方法学,有效地提高了验证的质 量和效率 2 5 快速原型系统验证 快速原型系统( r p s ,r a p i dp r o t o t y p es y 咖n ) 可用来为预期的系统芯片精确 的建立快速原型模型。它是待验证的设计对象的一种硬件设计表示形式。成功建 立快速原型的关键在于要快速地将原型实现出来。可用的一些途径( 如仿效系统 和可重配置原型系统) ,都是将目标设计对象映射到现有器件之上,如控制处理 器、d s p 、引出焊点式( b o n d e o u t ) 芯核和f p g a 。这些元件安装在子板之上,而 该子板插在含有用来模拟目标系统的、互连的客户自定义可编程器件的系统互连 母板中。原型验证系统最常见的是用f p g a 验证目标设计,首先用f p g a 实现并放 到应用系统环境中进行测试。对于嵌入式的s o c 设计,其原型验证系统可以是嵌 入式系统插板,它极有可能是包含有m c u 、d s p 、存储器件、实现i p 宏或定制设 计的一个或多个f p g a 系统阻目 快速原型系统提供了开发和调试软件的能力,展现了系统芯片的硬件真实 性。这样在有了芯片原型后就能够实现软件和硬件的无缝集成“”。快速原型系统 所提供的仿真速度比单纯的软件仿真和软硬协同验证要快得多。 快速原型系统的验证方法也正是本文研究的重点所在,在下面的章节将会做 进一步的介绍。 2 6 物理验证与分析技术 在深亚微米设计中,由于互连线延迟所产生的问题相对于门延迟所产生的闯 北京工业大学工学硕士学位论文 题而言,已经成为设计中主要考虑的问题,所以必须将所有的电学问题和工艺都 纳入统筹考虑,并要重点解决互连线寄生效应0 1 。务必分析并解决的问题有:时 序、信号完整性、串扰、瓜电压降、电迁移、功耗分析、工艺天线效应、相移 掩模( p h a s h i f tm 鹊k ) 和光学临近效应修正( o p t i c a ip r o x i m 时c o m 蜕i o n ) 。 物理验证与分析技术主要是进行设计规则检测回r c ,d 鼯i 弘r u l ec h e c k ) 和版图 与原理图对照( l v s ,l a y o u t 、研飘塔s c h 铷a t i c ) 。现在常用的做法是在版图之前的 设计阶段估算各种物理效应,在版图之后的设计阶段再提取和分析这些物理效 应。 2 7 本章小结 本章主要介绍了s o c 中的几种常用的验证技术,主要有仿真技术,静态技 术,形式验证技术,基于断言验证方法,快速原型系统验证和物理验证与分析技 术。我们不难看出,各种验证技术具有不同的优势和局限性,采用何种做法要取 决于设计的复杂度,验证的要求以及能够承担得起的代价。 第3 章基于f p g a 的s o c 原型验证技术 第3 章基于f p g a 的s o c 原型验证技术 基于f p g a 的s 0 c 原型验证技术提供了开发和调试软件的能力,展现了s o c 的硬件真实性这样在有了s 0 c 的f p g a 原型之后,就能够实现软件和硬件的无 缝集成,让软件模块在真正的硬件上高速运行,实现s o c 设计的软硬件协同验证, 同时也在s 0 c 设计前期同时进行外围电路设计和应用软件的开发,缩短了芯片的 上市周期。 因此,基于f p g a 的原型验证技术己成为业内最流行的一种快速系统原型验 证技术。 3 1f p g a 实现s o c 的验证流程与技术 基于f p g a 原型验证不同于其他验证方法,其他任何一种验证方法都是s o c 验证中的一个环节,而f p g a 验证却是一个过程。f p g a 原型验证的流程相当于一 个f p g a 设计的主要流程,它主要分为设计输入、综合、功能仿真( 前仿真) 、实 现、时序仿真( 后仿真) ,配置下载、下载后板级调试检错这几个步骤。f p g a 原 型验证中所复用到的i p 可以是i p 供应商提供实现i p 功能的测试样片( t e s t c h i p ) ,例如c p u 的i p 核通常都采用测试样片。当然其它i p 核可提供源代码, 同样可以将其综合到f p g a 中实现。s o c 的底层固件( f i r m 帕r e ) 则可以通过c p u 的调试软件,配合c p u 的硬件调试器,直接下载到f p g a 原型验证板的存储器芯 片中。对于不同的s o c 设计可以将f p g a 验证的方式分为以下三种。 3 1 1 结构简单且对设计周期要求不高的s o c 的f p g a 验证方式 这种方式的s o c 设计经过简单的仿真即可尝试在f p g a 上运行,着实现结 果真实可靠,再进行s o c 后端设计,然后投片“这种方式的验证流程如图3 1 所示。 北京工业大学工学硕士学位论文 系统定曳 0 i p 模块设计 与i p 复用设计 上 f p 0 验证与实现 f p g a 板级系统调嗣 0 眦逻辑综合与仿, 眦布局布战与仿, 图3 1 结构简单且对设计周期要求不高的s o c 的f p g a 验证的方式 f i g3 - ls i n i p l e 卸dl i t t l er e q u i 舢吼t 锄d 髓细c y c ks o cf p g av 捌f i 训m e l l l o d 但当芯片比较复杂时,这种方式将会在f p g a 开发板上的调试将花费大量 时间,且由于f p g a 本身的局限性,并不能完美地验证s o c 设计中的诸如低 功耗设计、多时钟域交互、数模混和等特殊任务。 3 1 2 大规模且有特殊设计要求的s o c 的f p g a 验证方式 这种方式要建立一个完善的s o c 软件仿真环境,s o c 设计的主要功能都可 以在软件虚拟平台上得到比较全面的验证。之后再把s o c 设计在f p g a 平台上 实现,凭借f p g a 速度快和结果真实的优势,可在f p g a 平台上运行大量的测 试程序,以提高验证的完备性“”。这种方式的验证流程如图3 - 2 所示。 第3 章基于f p g a 的s o c 原型验证技术 图3 - 2 大规模且有特殊设计要求的s o c 的f p g a 验证的方式 f i g3 2l 甜鲈- s l e 柚ds p e c 瑚r e q u i r 啪e n ts o cf p ( 认v 矾疗c 撕m c 凼o d 但是该流程要求花费很多经费和时间构建硬件平台,并且在验证过程中, 研究如何产生激励和分析f p g a 运行情况也将花费非常多的时间。考虑到项目 周期和经费等因素,这种f p g a 验证流程很难对s o c 设计进行彻底的验证。 同时,软件人员必须在投片后才能在真实的环境下调试应用程序,这也就增加 了项目风险和研发周期。 3 1 3 可重用的复杂s o c 软硬件协同的f p g a 验证方式 这种方式是一个可适应于各种项目的通用的f p g a 硬件验证平台,不必经 常重新设计硬件平台。该平台具有强大验证能力,可以非常真实地模拟各种s o c 设计的功能和应用平台,从而可以对其进行全面的验证。该流程要求建立一个 完善的f p g a 综合与仿真环境,并与s o c 设计的环境统一起来,使得任何一个 仿真的激励都可以类比地在s 0 c 设计前端仿真、在s o c 后端仿真和在f p g a 后端仿真。通过比较它们的结果,很容易地找到设计中的缺陷“”。这样,整个 验证工作都将变得轻松而且透明。 在成功建立f p g a 软硬件设计环境后,软件研发人员就可以并行的在该平 台上开发和调试应用软件,并及时把系统级调试结果反馈到s o c 设计前端,这 大大提高了研发效率,也非常全面地验证了整个s o c 设计“。同时,还可以在 f p g a 中加入某些监测分析模块,利用内嵌式逻辑分析仪可以真实地反馈出芯 片内部的运行数据,这些对s o c 项目的决策都是至关重要的这种方式的验 北京工业大学工学硕士学位论文 证流程如图3 3 所示。 图3 3 可重用的复杂s o c 软硬件协同的f p g a 验证方式 f i g3 - 3r 即s 曲l e 锄dc 蛳p l “s o cs o f t w a r e ,h a r d w 眦c o - v 耐丘c a t i b a do nf l g a 这也是当前业内性价比最高,验证效率最高,最为完善的一种验证方式,也 是本文研究的重点。 3 2 从s o c 到f p g a 的移植技术 由于s o c 与f p g a 在物理结构、性能上各不相同,s o c 是基于标准单元库, 而f p g a 用的则是厂商提供的宏单元模块,因此首先要进行寄存器传输级( r t l ) 代码的修改1 ;然后进行f p ( 认器件映射,映射工具根据设置的约束条件对r t l 代码进行逻辑优化,并针对选定的f p g a 器件的基本单元映射生成网表;接着进 行布局布线,生成配置文件和时序报告等信息。当时序能满足约束条件时,就可 以利用配置文件进行下载“”。如果时序不能满足约束,可通过软件报告时序文件 来确认关键路径,进行时序优化。可以通过修改约束条件,或者修改r 1 儿代码 来满足要求。 3 2 1 修改存储单元 存储单元是必须进行代码转换的,s o c 中的存储单元通常用芯片制造工厂 ( f 伽n d r y ) 所提供的m 锄o r yc o m p i l e r 来定制生成的,可以得到g 叩、- v 等文件。v 文件只用来做功能仿真,通常不能综合。而最后投片时,只需将生成的存储单元 第3 章基于f p g a 的s o c 原理验证技术 提供给芯片制造工厂,他们就可以根据需要,在芯片中实现各样的存储单元。如 果直接将s o c 代码中的存储单元作为f p g a 的输入,一般综合器是很难综合出 来的,即使能综合出来,也要花费很长时问,并且资源消耗多、性能不好。而 f p g a 厂商已经提供了经过验证并优化的存储单元。因此,使用f p g a 实现大规 模存储单元时需要将芯片制造工厂提供的存储单元替换为f p g a 的存储单元 3 2 2 修改时钟单元 数字电路中,时钟是整个电路最重要、最特殊的信号。在s o c 中,用布局 布线工具来放置时钟树,利用芯片制造工厂或第三方提供的p l ll p 核进行时钟 设计。f p g a 中通常已经配置一定数量的p l ll p 核,并有针对时钟优化的全局 时钟网络,一般是经过f p g a 的特定全局时钟管脚进入f p g a 内部,再经过全局 时钟b u f 适配到全局时钟网络的,这样的时钟网络可以保证相同的时钟沿到达 芯片内部每一个触发器的延迟时间差异是可以忽略不计的。因此时钟单元也需要 进行转换。 3 2 3 增加流水线 由于实现结构上的不同,f p g a 器件内部的单元延时远大于s o c 的基本门单 元延时。导致在同样设计的情况下,s o c 可以满足其时序,而f p g a 可能无法满 足。为了验证的需要,修改s o c 代码实现f p ( 认原型时,就需要增加流水和使 用乒乓模式以及并行模式来提高系统速度。比如在一个很长的组合逻辑路径中加 入寄存器,如图3 4 所示。 醇嘲哥傲 ( ) s o c渤砖僦 图3 4 增加流水线 f i g3 - 4l q s e r tp i p e l i 3 2 4 同步设计 同步设计是在f p g a 设计中应该遵循的重要原则。异步设计容易导致电路处 于亚稳态,产生毛刺,以致数据不正确。当从s o c 设计转向f p g a 设计时,应该 进行仔细的同步设计,包括:主时钟选取、功能模块的统一复位、同步时序电路 设计等。 北京工业大学工学硕士学位论文 3 3f p g a 中基于模块的设计方法 在传统的自上而下的设计流程中,通常设计只有一个网表。在自上而下的设 计流程中,由于每个模块实现方式不同,它们在总体设计中可能具有不同的性能。 f p g a 中基于模块的设计方法是一种自下而上设计方法,每个模块具有单独的网 表。这样就要求设计者能够建立基于块的设计,每个模块可以单独优化,然后整 合到顶层设计中,可以在以下设计流程中使用基于模块的设计“”: 模块化设计流程:在模块化设计流程中,将设计划分为对每个子模块进行例 化的顶层设计。可以单独开发每个模块,然后将其整合到顶层设计中。 渐进式编译流程:在渐进式编译流程中,用户建立并优化系统,然后添加对 原始系统性能影响较小或没有影响的后续模块。 团队设计流程:在团队设计流程中,用户将设计分割为单独的模块,然后在 项层设计中对模块进行例化和连接。其它团队成员单独开发底层模块,为每个模 块建立单独的工程,并使用为顶层设计而开发的分配。底层模块完成后,将它们 导入到顶层设计中,顶层设计将进行最终编译和验证。 在所有三个设计流程中,均可以通过将设计分割为功能块,保留所在开发层 上的性能,将这些功能块按照电路物理结构或关键路径组织起来。 鉴于本文中所使用的f p ( 认都是来自a l t e m 公司s 仃a t i x i i 系列的f p g a ,含 有连续布线,支持并强化基于模块的设计方法,确保同样的布线和时钟资源可以 应用于预先确定的设计模块,不管模块放置在器件的何处,均实现快速、确定的 性能表现。因此,a n e m 公司的q u a r h l s i if p g a 设计工具中基于模块的设计方法 就成了本文所使用的主要实现方法。 采用q u a r t u s i i 的基于模块的设计方法,是将设计分层进行,首先根据设计 规范对整个设计根据功能进行模块划分,每个模块可以单独设计和实施,然后输 入到顶层工程中。每个模块只需优化一次,从而提高了效率。在集成和系统级验 证中,每个逻辑模块的性能不受影响。采用和不采用基于模块的设计流程是有所 区别的,如图3 5 所示。 第3 章基于f p g a 的s o c 原型验证技术 ( a ) 传统的设计流程( b ) 基于模块的设计流程 圈3 5 基于模块的设计流程对比。” f i g3 5b l o c kb 勰e dd 器i g nf 1 a wc 埘n p 耐s a h 忸q l l a r n 硌i i 基于模块的设计方法显著缩短了设计迭代时间,其性能保留 特性是前所未有的,极大的提高了工作效率。设计人员采用该技术每天能够进行 4 至5 次的高密度f p g a 设计迭代,而采用传统的设计方法只能进行l 至2 次迭 代,设计迭代时间减少近7 0 ,明显缩短了全部开发时间,实现高效的团队设计。 3 4 以删微处理器为核心s o c 的f p g a 的验证方法 随着在以微处理器特别是以a 跚7 9 微处理器为核心、i p 核为基础的s o c 设 计方法出现以后,在设计能力和验证能力中间出现了差距,即我们能在短时间内 完成设计,却需要化数倍于设计的时间和人力来验证。最耗时的工作通常发生在 软硬件联合验证的阶段。大家知道,抽象级越高仿真越快,反之越慢。如果在顶 层文件中所有的模块都是寄存器传输级( r t l ) 或门级( g a t ei “e 1 ) 的( 包括 a i t mc 0 聆) ,那么仿真的速度是谁也无法接受的,所以目前现实一点的方法是使 用a r mc o 的设计仿真模型( d s m ,d e s i 鲈s i i i i u l a t i o nm o d c l ) 嘲。在这个抽 象级别的仿真速度比纯寄存器传输级( r t l ) 平台要快一些,大约能够做到l 1 0 0 指令每秒的速度o ”。在这样的平台上进行简单的驱动程序和启动代码验证是 可行的,但是如果要进行复杂应用程序的全功能验证,特别是有操作系统的应用, 北京工业大学工学硕士学位论文 这样的平台还是太慢了。显然,在这样的速度下验证应用程序还是不现实的。 针对这个问题,我们有两个选择:一是使用硬件加速器,二是以a r m 微处理器 为核心s o c 的f p g a 的验证方法。现在,某些e d a 工具供应商会提供相关的解 决方案,例如c a d e n c c 口公司的p a l l a d i u m 7a c c c l e r a t o r 厄m u l a t o r 和m 锄骱 g m p h i c s 口的v s 协t i o n p r o ? e m u l a t i o ns y s 咖,这些都是能够加速我们仿真的加 速器,但是一般价格昂贵,所以对大多数的公司来说,这个方法不但性价比不高, 而且也没有必要。因此,以a r m 微处理器为核心s o c 的f p g a 的验证方法对于 大多数公司来说是比较现实的,这正是本节中下面要讨论的问题。具体到微处理 器为核心s o c 的f p g a 的验证,我们可以选择以下的一些方法: 3 4 1 由删公司提供的h 1 _ t e 舒a t o r 原型验证板 a r m 公司提供了一套名叫i m 掣a 衙原型验证板,使设计者能够在这个套版 上搭建与设计芯片尽量一致的验证平台o ”。简单来说,a r m 提供了i n 嘲弘t o fc t ( c o 僧t i l e ) 来实现相应的a r mc o 的功能和行为:使用i n 峨即rl 1 u o g i ct i l e ) 来实现我们芯片中除了a r mc o 佗以外的所有数字逻辑( i n t c g 胁rl m 上有个 f p g a ) ,使用i n t c g m
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 杭州医保考试题及答案
- 国庆活动中秋活动方案
- 回收电池公益活动方案
- 唐朝绘画活动方案
- 商场儿童活动方案
- 四年级女孩生日活动方案
- 压力测试题及答案
- 英语七选五试题及答案
- 员工团聚活动方案
- 海军战术考试题及答案
- 137案例黑色三分钟生死一瞬间事故案例文字版
- 2024年版《代谢相关脂肪性肝病防治指南》解读1
- 《弘扬教育家精神》专题课件
- 生猪屠宰兽医卫生检验人员理论考试题及答案
- 北京市通州区2024-2025学年四年级语文下学期期末试卷新人教版
- 广东省珠海市金湾区2023-2024学年八年级下学期7月期末历史试题
- 社会语言学视角下网络流行用语研究
- 数据库程序设计智慧树知到期末考试答案章节答案2024年外交学院
- 中职数学单招一轮总复习《集合》复习课件
- 设计投标服务方案
- 外来医疗器械清洗消毒
评论
0/150
提交评论