(电路与系统专业论文)数字集成电路设计方法的研究.pdf_第1页
(电路与系统专业论文)数字集成电路设计方法的研究.pdf_第2页
(电路与系统专业论文)数字集成电路设计方法的研究.pdf_第3页
(电路与系统专业论文)数字集成电路设计方法的研究.pdf_第4页
(电路与系统专业论文)数字集成电路设计方法的研究.pdf_第5页
已阅读5页,还剩69页未读 继续免费阅读

(电路与系统专业论文)数字集成电路设计方法的研究.pdf.pdf 免费下载

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

文档简介

摘要 数字电路比较容易处理复杂庞大的逻辑,在a s i c 中扮演着极其重要的角色。 很多时候,数字系统的性能直接决定着整个芯片的性能。 本论文意在对数字电路设计整个流程进行探究,设计工作来源于科研项目“一 款数模混合光传感专用集成电路关键理论研究及设计实现”。在参与完成该项目的 过程中,结合具体设计,深入地理解了数字电路设计中的各个环节。 本文首先对数字电路设计做了简单的介绍,然后结合项目,对前端设计和后 端设计进行了较为详细地阐述,对r t l 设计、综合、布局布线、静态时序分析等 环节中遇到的问题逐一分析解决,并在各个环节逐步仿真验证,在最终成果的检 验中,仿真结果显示:设计满足要求。 在文章的最后,引入了异步设计的概念,这种设计方法很有可能成为数字电 路设计的一个发展趋势。 关键词:r t l 设计综合布局布线静态时序分析仿真验证 a b s t r a c t i ti se a s yf o rd i g i t a lc i r c u i tt od e a lw i t hl o g i cw h i c hi sl a r g ea n dc o m p l e x ,d i g i t a l l o g i cp l a y s 勰i m p o r t a n tr o l ei na s i c m a n yt i m e s ,d i g i t a ls y s t e m sp e r f o r m a n c e d e t e r m i n e st h ew h o l ep e r f o r m a n c eo ft h ec h i p b a s e do nt h ep r o j e c t : t h e o r e t i c a lr e s e a r c ho nt h ek e y t e c h n i q u ea n dt h ed e s i g nf o r am i x e ds i g n a la s i co f l i g h ts e n s o r ,i ti si n t e n d e dt oe x p l o r et h ew h o l ep r o c e s so ft h e d i g i t a lc i r c u i td e s i g n d u r i n gt h ep r o j e c t ,c o m b i n e dw i t ht h es p e c i f i cd e s i g n , d e e p u n d e r s t a n d i n go fd i g i t a lc i r c u i td e s i g ni na l la s p e c t si sg a i n e d i nt h i sp a p e r , ab r i e fi n t r o d u c t i o no ft h ed i g i t a lc i r c u i td e s i g ni st a k e n ,a n dt h e n , c o m b i n e dw i t ht h ep r o j e c t , d e t a i l e dd e s c r i p t i o na b o u tp r e d e s i g na n dp o s t - d e s i g ni s g i v e n ,i nt h ep r o c e s s i n go fr t ld e s i g n ,c o m p i l e ,p & r ( p l a c ea n dr o u t e ) ,a n ds t a ( s t a t i ct i m i n ga n a l y s i s ) ,m e t h o d so fr e s o l v i n gp r o b l e m sa n dv e r i f i c a t i o ni na l la s p e c t s a r es h o w n f i n a lr e s u l t ss i m u l a t i o ns h o w st h ed e s i g nm e e t st h ed e m a n d s f i n a l l y , t h ec o n c e p to fa s y n c h r o n o u sd e s i g ni si n t r o d u c e d ,嬲i ti sl i k e l yt ob e c o m e t h ed e v e l o p m e n tt r e n do fd i g i t a lc i r c u i td e s i g n k e y w o r d s :r t ld e s i g nc o m p i l ep & rs t av e r i f i c a t i o n 第一章绪论 第一章绪论 自1 9 6 0 年第一款硅集成电路问世以来,集成电路的设计制造业一直作为高科 技的一个领军产业被重点关注。短短半个世纪,集成电路飞速发展,集成电路技 术工艺也从最初的5 u m 不断缩小至3 2 r i m 、2 8 r i m ,千万门级规模的电路已较为常 见。随着电子技术的发展,芯片功能越来越强大,性能越来越高,相应的,数字 电路在整个系统中也显得愈加重要。相比模拟电路,数字电路在功耗等方面表现 出了极大的优势,功能算法也较容易实现【l 】,甚至一度有取代模拟的态势。在这种 背景下,数字电路设计方法也在不断发展。 1 1 概述 数字电路设计是一门不断发展的学科,设计过程较为复杂。就设计方法而言, 可以划分为同步设计和异步设计。同步设计中主要存储器件是触发器,由统一的 全局时钟触发;异步设计中,用于存储的单元一般为锁存器,用“握手 实现对 数据流测控制,异步电路是电平敏感的电路。目前,市场上绝大多数字电路的设 计都采用同步电路的设计方法,该设计方法已较为成熟;同时随着频率、功耗等 方面的需求,异步设计以及g a l s ( 全局异步局部同步) 设计开始不断走进人们的 视线,曼彻特斯大学的a m u l e t 系列处理器,c a l t e c h 公司的m i n i m i p s 处理器等都 采用的是异步设计方法。 1 2 数字电路设计流程 集成电路发展之初,数字电路的设计主要是由底层的器件搭建而成,随着设 计人员的不断研究探索,电子设计自动化( e d a ) 的概念被提出并快速发展。如 今,数字电路的设计已经有一个比较完整的体系【2 1 。对于设计流程的理解虽然众说 纷纭,但主要划分为:系统验证、r t l 设计、综合优化、布局布线、版图设计等 几个环节,如图1 1 。 系统架构:系统架构是整个设计过程中最基础的环节。在这一环节中,需要 确定整个系统的架构,需要对模块进行划分,需要规定各个模块的功能,还需要 定义接口,并对整个系统的性能进行评估。在系统验证阶段,通常对整个系统进 行行为级的描述,并对其仿真验证,用以判断整个架构的合理性,若涉及算法, 也可验证算法的可行性。这是至关重要的一个环节,一个好的系统架构通常会给 整个设计带来极大便利。 r t l 设计:r t l 设计是数字电路设计中的核心环节。在这一阶段,通过使用 2 数字集成电路设计方法的研究 相应的语言将电路描述出来,并进行功能上的验证,同时,在设计过程之中,需 要保证相应的描述能够被综合工具综合成预想的电路。 综合优化:综合优化的目的是将相应的r t l 描述转换成硬件电路。这一环节 需要工艺厂商提供相应的工艺信息,综合工具会根据工艺信息选取相应的基准单 元,并搭建出电路。在综合过程中,设计人员需要对综合环境进行相应的约束, 工具会根据该约束进行综合,生成能够实现h d l 所描述功能的电路,综合的结果 是一个门级描述的网表,该网表应该跟r t l 描述的功能保持一致。 布局布线:相比于模拟电路,数字电路l a y o u t 的生成比较智能。一般芯片制 造方会提供一个基准单元库,基准单元库里包含了各个单元的逻辑功能信息、延 时信息以及版图信息。很多e d a 软件可以根据相应约束、门级网表以及相应的工 艺信息进行自动布局布线,尤其是对于大规模的数字系统的设计,相应的e d a 软 件给设计人员带来了极大方便。 版图设计:布局布线完成后,能够生成一个描述了电路布局布线后版图信息 的文件,结合工艺厂商提供的基准单元,即可生成具体的版图。然后进行d r c 、 l v s ,通过验证后即可认为设计完成,可以交付代工厂加工制造芯片。 厂一一一一一一一一一一一一一 图1 1 数字电路设计流程 一般来说,数字电路的设计会划分为前端设计和后端设计,综合完成前的设 计统称前端设计,综合完成后的设计被称作后端设计。在整个数字电路的设计中, 前后端设计一般分别由不同的部门来完成。 1 3 论文的主要工作以及章节安排 本论文主要是对当前数字集成电路的设计方案进行探讨,然后会对一款芯片 具体的设计进行介绍,这是一款数模混合的光传感芯片,数字电路在芯片中占了 很大分量。本论文会描述整个设计过程,从一开始的系统规划到最后版图生成, 第一章绪论 3 同时描述了设计过程中所遇到的问题以及解决方案,期间,也有一些比较新颖的 处理问题的方法。 笔者认为,异步电路设计有可能成为数字电路的发展方向,所以对同步数字 电路设计方案进行相应的探讨之后,在论文的最后阶段,会对异步的设计方法做 简单的介绍。 论文的第一章是绪论,主要对本论文做一个综述,以及对其余章节做一些规 划;第二章主要介绍一下同步电路设计过程,以及所涉及的e d a 工具;第三章介 绍了一款光传感芯片的设计流程,并对所遇到的问题进行分析解决;第四章介绍 了部分模块的仿真方法以及相应的结果;第五章会简要阐述一下异步设计;最后 是附录、结束语、致谢、参考文献以及研究成果。 4数字集成电路设计方法的研究 第二章同步数字系统的设计 5 第二章同步数字系统的设计 同步电路的良好特性,使同步设计方法备受设计人员的青睐。本章会结合相 应的e d a 工具,对同步设计方法做一个较为简单的介绍。 2 1 同步系统 “同步 是相对于“异步 而言的,之所以称之为“同步,是因为同步系统 中存储单元( 触发器) 的状态是由统一的时钟触发改变的,如图2 1 ,各个存储状 态的改变均严格在时钟的控制下完成。 几几几 c l k 控制着触发器状态 d a l al ,d a t a 2 ,d a :t a n 的改变 图2 1 同步电路的基本结构 同步系统中的基本存储单元是触发器( 也通常描述为寄存器,f l i p f l o p ) ,一般 来说,会避免使用其他的存储器件,比如锁存器之类,这主要是“同步 的需求。 因为存储单元存储状态的改变,是在时钟沿的控制下完成的,所以同步电路有很 多优越性: 1 同步电路比较容易使用触发器的异步清零置位端口,保证了各个存储单元 有相同的初始态【3 】; 2 同步电路中各个存储单元的状态只在时钟沿到来时发生改变,然后会保持 稳定,这在很大程度上避免了工艺、温度等对电路的影响,并能够消除毛刺,使 设计稳定可靠; 3 同步电路设计很容易组织流水线【4 】,使流水线的实现较为简单。在c p u 等 功能模块的设计中,经常会使用到流水线的设计方法,以此来提高芯片的效率、 大幅提高芯片的运行速度; 4 对于同步电路的设计,有着相应的e d a 软件的支持,比如功能仿真工具 m o d e l s i m 、q u a r t u si i 、n c _ v e r i l o g ,综合工具d e s i g nc o m p i l e r ,自动布局布线工 具s o ce n c o u n t e r 、a s t r o ,静态时序分析工具p r i m e t i m e 等,可以说,同步电路的 6数字集成电路设计方法的研究 设计方法以及相应的e d a 软件均较为成熟,为设计提供了很大便利,在简化设计、 加快设计进度的同时,保证了设计的准确性。 由于同步电路的种种优点,现在商业化的芯片,大都采用同步设计方案。 2 2 触发器 同步电路中的基本存储单元是触发器( f l i pf l o p ) 【5 】,这里特指d 触发器。相 比于其它的存储器件,触发器最主要的特点是:时钟触发是触发器存储d 端数据 的唯一条件,仅仅在时钟沿到来的那- - n ,触发器才将数据端相应的数据储存起 来,在时钟沿未到来时,触发器所存储的值不会发生变化。正因为触发器的这一 特性,同步电路才具备了毛刺不敏感的特点,以及较高的稳定性。 触发器对电平不敏感,对时钟的边沿敏感。在一次状态改变后,会一直维持 稳定,直到下一个时钟沿到来的瞬间,其存储状态才发生改变。另外,一般来说, 触发器还有一个异步清零置位端口,通常用来定义触发器的初始状态。触发器是 一个双稳态的存储器件。 l 陟竺轳 图2 2 一种触发器的结构图 触发器可以e hm o s t 6 1 管直接搭建而成,也可由简单的逻辑器件组成1 7 1 。图2 2 中展示了一种触发器的结构图,该触发器的构成需要使用1 2 个逻辑门,共2 8 个 m o s 管。这是一个上升沿触发的触发器,带有异步复位功能。由图2 2 可以看出, c l r 低电平的时候,环路i 、i i 以及o u t 端i :i 均一直为低电平,实现了触发器的 异步复位。 c l k 处于低电平时,传输门t 1 导通、1 r 2 关断、t 3 关断、t 4 导通; c l k 处于高电平时,传输门t 1 关断、配导通、t 3 导通、t 4 关断; 1 c l k 上升沿到来时,t 1 阻断了玳端口新数据的流入,同时t 2 打开了环 路i ,维持着数据的稳定,并且t 3 打开,使得数据能够在o u t 端1 3 得以体现,这 是一个触发器刷新数据的过程; 第二章同步数字系统的设计 7 2 此后c l k 处于高电平,由于环路i 的存在,o u t 端的数据保持稳定; 3 c l k 下降沿到来时,斟端口的数据流入了环路i ,同时t 3 阻止了环路i 数据的变化对o u t 端口造成影响,同时t 4 打开了环路i i ,以此来保证o u t 端口 数据的稳定; 4 此后c l k 处于低电平,i n 端口不断改变环路i 中的数据,又由于环路i i 的存在,o u t 端口仍然维持原数据。 参照上面的运行机制,c l k 上升沿到来的时刻,触发器对i n 端的数据实现了 寄存;在c l k 的其余状态下,寄存的数据不会发生改变。 2 3r t l 级描述 在设计过程中,对于数字电路的r t l 描述,一般采用两种语言:v e r i l o gh d l i s j 和v h d l ,两者互有优劣,一般来说,相应的e d a 工具对两种语言都能够支持。 目前市场上多选择使用v e r i l o gh d l 进行设计例。 v e r i l o gh d l 诞生于1 9 8 3 年,由g d a ( g a t e w a yd e s i g na u t o m a t i o n ) 公司的j p l l i lm o o r b y 首创。后来,p b j lm o o r y 成为了v e r i l o g x l 的主要设计者和c a d e n c e 公司的第一个合伙人,而g d a 公司也被c a d e n c e 公司收购,直到1 9 9 0 年,v e r i l o g h d l 被c a d e n c e 公司公开,并被广泛使用。 由于数字电路芯片的规模越来越大,系统的理念也越来越强烈,在数字电路 的设计过程中,一般采用t o p的设计方法【io】,数字电路的设计流程大致为:down 行为级验证( 系统验证) 、r t l 级设计、门级网表、最后生成版图。使用v e f i l o gh d l ” 可以对系统进行行为级和r t l 级描述:行为级描述目的是进行系统级的仿真验证, 为的是确认系统的可行性、可靠性,以及算法的正确性,行为级描述验证过程中 不需要关注具体的电路;r t l ,即r e g i s t e rt r a n s f e rl e v e l ,在进行r t l 级设计的时 候,需要在很大程度上考虑实际电路,设计人员需要知道自己的r t l 描述会综合 成什么样的电路。r t l 级描述能够被相应的综合工具综合,最终能够得到一个门 级的网表。可以这么说:行为级和r t l 级最大的区别就是后者可综合,而前者不 可,进行r t l 级描述所使用的指令是整个v e d l o gh d l 指令集的一个子集,大量 的指令能够用于描述,但不能够被综合。 在r t l 设计【l l 】过程中,有两点需要额外关注:一个是描述的可综合性,另一 个是测试验证功能的完备性。 一、r t l 级描述需要是可综合的 目前被设计人员广泛使用的编译仿真工具是m o d e l s i m ,这是一款简单实用轻 便的软件,功能也相当强大。不过该软件对于v e r i l o gh d l 的容错能力较强,并且 不能够区分行为级描述和r t l 级描述,一方面,这说明该软件的强大之处,另一 8数字集成电路设计方法的研究 方面,这可能不是设计人员所期望的,设计人员绝不会希望自己所设计的并不能 够被综合成硬件电路。 在进行r t l 级描述的时候,设计人员需要额外关注哪些指令是能够被综合的, 以及各种指令能够被综合成何种电路。比如t 一些系统指令自然是不可综合的, i n i t i a l 初始化指令也是不可综合的,同时在同步电路设计过程中,还约定俗成地避 免使用锁存器等。关于r t l 级的描述规范,可以参考资料,本论文中就不做额外 的阐述。 二、r t l 级描述中,功能需要是完备的 笔者认为,功能完备性的达成,比可综合性的实现要困难得多,目前也没有 一套能够保证功能完备的验证体系。在对r t l 代码进行仿真验证的时候,很有可 能因为测试向量的不完备,进而导致功能出现缺失,而这种设计上的缺陷通常是 很难发现的。 在对数字电路的设计过程中,本人也遇到过此类问题,并且一直被其困扰, 同时给了我惨痛的经验教训。虽然测试向量终究是不可能完备的,但是,我们仍 然可以通过一些方法尽可能避免此类问题的发生i 1 在系统级的规划中,对模块的划分要合理,尽可能地按照功能划分模块, 并尽量详细地规定各个子模块的功能。然后进行r t l 级描述的时候,严格按照所 规划的进行设计; 2 用v e r i l o gh d l 进行r t l 级描述的时候,需要保持良好的编程习惯:比如 敏感列表保持完备,保证完整的分支描述等; 3 虽然测试向量不可能完备,但尽可能地去验证各种情况t 各种正确的情况, 以及各种错误的情况,并判定是否会生成预期的结果。虽然这样做不能保证百分 百覆盖率,但随着测试向量的增加,发现漏洞的可能性也会增加; 4 。就有完整体系的公司而言,一般会额外设立一个测试部门,把测试和设计 人员分开,这样发现问题和漏洞的几率会大大增加,进而能够保证最终产品的性 能以及可靠性; 5 用成熟的组件配合验证,比如欲设计一款1 2 cs l a v e ,在r t l 级描述之后, 可以将其载入f p g a 中,然后跟a r m 等硬件中的1 2 cm a s t e r 进行级联,这样也有 助于发现设计中的漏洞。 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 中的系统指令并不是可有 可无的“假把式 ,在某些情况下,系统指令的使用会给设计带来很大的便利,尤 其是在仿真测试环节。比如:在t e s t b e n c h 中,使用$ d i s p l a y 命令,可以将相关信息 显示出来,这样可以对复杂的信号进行一个粗略的筛选,并且以文本的形式显示 出来,避免了测试人员去检查较为繁琐缭乱的波形。诸如此类的功能比较多,对 第二章同步数字系统的设计 9 系统指令使用得当,会给测试、验证以及设计带来很大便利。 2 4 使用d e s i g nc o m p i l e r 综合优化 r t l 设计仅仅是对电路的功能进行一个描述,由r t l 级描述转化为门级的网 表,就需要借助相应的综合工具,比如s y n o p s y s 的d c ( d e s i g nc o m p i l e r ) 1 2 】。 综合( s y n t h e s i s ) 是将r t l 级描述的v e r i l o g 文件,用标准单元库的基准单元,转 换成相应的门级网表的一个过程。综合出的门级网表中所使用单元的集合是基准 单元库的一个子集。基准单元库一般是由芯片制造厂商提供。综合后生成的门级 网表描述了电路的具体结构,最终可被自动布局布线工具用来生成版图。综合之 前的r t l 级描述跟综合后的门级网表在功能上应该是完全一致的,综合仅仅是将 v e r i l o g 所描述的行为用单元库中的器件体现出来。 在用d c 综合之前,需要准备如下文件: ab e h a v i o r a lv e r i l o gf i l e , 这是一个r t l 级描述文件,这个v e r i l o gh d l 描述 的文件必须是可综合的,否则d c 会认为该文件不符合要求,会提示w a r n i n g 或 e r r o r ,如果模块较多,则需要一并添加。 a c e l ld a t a b a s ef i l e :这是一个二进制的“d b 格式的文件,一般不可打开,该 文件内含有工艺厂商所提供的r t l 描述被编译时的目标库的基准单元信息,该文 件应该是跟l i b e r t y 格式( 1 i b ) 文件一致的,s y n o p s y s 的l i b r a r yc o m p i l e r ( 库编译) 工具能很容易地将l i b e r t y 格式的文件装换成d b 格式的文件,一般该文件由工艺厂 商提供。 a s y m b o lf i l e :这个文件描述了单元库中相应器件的形状,指示了各个单元在 d c 中以什么样的模型显示出来。该文件仅仅只对d c 中显示的电路图的美观、可 读性有一定的妨碍,可以不添加,若不读入此文件,d c 会使用默认的形状( 比较 单一而已) ,对整个综合过程没有影响。 综合是一个比较严格的过程,综合工具d c 会根据所加的约束,对电路中所有 的路径进行分析,判断其是否满足要求,若出现违例,则会将相应路径进行优化, 并最终告诉设计人员优化的结果。 这里有几个概念需要解释一下:路径、s e t u pt i m e ( 建立时间) 、h o l dt i m e ( 保 持时间) 、亚稳态,d c 综合正是基于这几个概念之上的。 路径:顾名思义,路径指的是两点之间的连线,在电路设计中,则指示了电 路中两个节点之间的线路,d c 综合过程中,路径主要是指时序约束的四大基本路 径,如图2 3 所示: 1 从输入到寄存器 2 从寄存器到寄存器 1 0 数字集成电路设计方法的研究 3 从寄存器到输出 4 从输入到输出 图2 3d c 综合中时序约束的4 种路径 建立时间:为保证触发器能够存储稳定的数据,在时钟沿到来前数据需要保 持稳定的时间。如图2 4 所示,区间l 指示触发器的建立时间; 保持时间:为保证触发器能够存储稳定的数据,在时钟沿到来之后,数据仍 需保持稳定的时间。如图2 4 所示,区间2 指示触发器的建立时间; s e t u pt i m e o l 一 1 i c l k ij o rh o - d t i m e 图2 4 触发器的建立时间和保持时间 亚稳态:对于亚稳态,可以这样理解:若违反了触发器的建立时间和保持时 间,在时钟沿到来后,触发器的状态变得不可预测:有可能是“0 ;有可能是“1 : 有可能处于“0 ”跟“1 之间的某个电平;甚至还有可能在电平“0 与“1 之 间震荡。这种不稳定的状态会随着时间逐渐回归到低电平“0 ,或者高电平“1 , 这同样是不可预测的、随机的。 d c 综合并不会对r t l 级描述中的触发器进行修正,不过对于一些冗余的触 发器,d c 会给出相应的警告。d c 综合过程,综合优化的是触发器之间的组合逻 辑,如图2 3 中的“l o g i c ”部分,通过约束控制信号在“l o g i c 中消耗的时间, 以此来满足触发器的时序要求,进而保证了综合后的门级网表跟r t l 级描述的一 致性。 d c 综合这一过程属于数字电路设计的前端,对电路的综合通常是由前端设计 第二章同步数字系统的设计 人员完成的。在综合的设计中,d c 尽最大努力、最大程度优化之后仍然可能存在 违例路径,这种情况下,就需要设计人员返回r t l 级,对r t l 级的设计进行相应 的修改,然后重新进行综合,这是一个不断循环的过程。 d c 综合的脚本是用t c l 编写的,t c l 是工具命令语言( t 0 0 lc o m m a n d l a n g u a g e ) 。综合过程中约束的添加,可以在命令窗口一步步进行设置,也可以直 接读取脚本文件,“s o u r c e t c l 即可。d c 是根据相应的约束进行时序分析、综 合优化的。 虽然d c 提供了g u i ( g u i 中的操作效果跟命令是一致的) ,但限于篇幅,本 论文仅用t c l 命令对设计流程做一个简单介绍: 1 设置综合的路径和所使用的库: s e ts e a r c hp a t h 设置搜索路径, s e tl i n kl i b r a r y 设置目标库, s e tt a r g e t _ l i b r a r y 设置符号库; 2 读入相应的r t l 级代码,并设置顶层模块: r e a df i l e 读入v e r i l o g 代码, c u r r e n t 设置顶层;design 3 设置工作环境: s e t d r i v e ( 设置驱动) ,s e t l o a d ( 设置负载) 等; 4 设置时钟的频率、延时、抖动等信息;理论上来说,在r t l 级描述中,凡 是进入触发器c l o c k 端的都需要进行说明: c r e a t ec l o c k 建立时钟, s e tc l o c k 设置时钟延时,1mency s e tc l o c ku n c e r t a i n t y 设置时钟抖动, s e tf a l s ep a t h 设置伪路径等; 5 设置i n p u t _ d e l a y ,o u t p u t _ d e l a y ,a r e a 等参数: s e ti n p u t 设置输入延时, , d e l a y s e t _ o u t p u t _ d e l a y 设置输出延时等; 6 c o m p i l e ; 7 查看是否存在违例,若存在,则需要重新综合: r e p o r tt 查看时序, i m i n g r e p o r t _ c o n s t r a i n t - a l l _ v i o l a t o r s 查看所有违例; 8 输出相应的文件: w r i t e f i l e f o r m a tv e r i l o g 输出n e t l i s t 网表, w r i t es d c 输出约束文件。 以上的流程描述地较为简单,但已经罗列了最为关键的因素,d c 中还提供了 1 2 数字集成电路设计方法的研究 帮助文档,用“m a r l + 欲查询的命令 即可打开。对于d c 的详细流程以及综合时 的约束,可以参照“d e s i g nc o m p i l e ru s e rg u i d e 。 d c 综合时,可以在d c 的g u i 界面查看相应的电路结构,为综合过程中提供 辅助;综合完成之后,可以从d c 中输出两个文件,一个是综合后的门级网表,另 一个是s d c 约束文件,这两个文件会作为后端布局布线的输入文件。除此之外, d c 还可以输出一个s d f 文件,s t a n d a r dd e l a yf o r m a t 文件,即标准延时格式的文 件,该文件描述了相应的延时信息,主要描述了器件的延时,若添加了线载模型, 应该还记载了相应的线延时信息,不过,由于并非真实的走线,并且时钟树未进 行处理,该延时文件显得很不准确。该文件可以跟门级网表级联,进行仿真, m o d e l s i m 即可完成,这仍然属于前端的功能仿真,可用来进行功能的验证。不过 笔者认为这样仿真的意义不大。 2 5 使用s o ce n c o u n t e r 布局布线 同步数字设计的后端,主要涵盖了布局布线、时序验证、后仿等环节,后端 的目的是生成一个能够完成设计规划功能的可用版图。 相比于模拟电路,数字电路版图的生成显得比较智能化,很多公司都提供了 自动布局布线的软件,比如c a d e n c e 公司的s o ce n c o u n t e r 、s y n o p s y s 公司的a s t r o 等,a u t op & r 工具的出现避免了大量的人力劳动,提高了设计效率,简化了设计 流程,缩短了设计周期。由于在研究生期间,本人主要接触的是s o ce n c o u n t e r t l 3 j , 所以本节主要以e n c o u n t e rg u i 环境来介绍数字电路的后端设计。 使用e n c o u n t e r 布局布线之前需要准备好如下文件: 1 c e l lc h a r a c t e r i z a t i o nd a t a ( 单元表征数据) :此文件为l i b e r t y 格式的文件, 虽p 1 i b 文件,文件内包含了时序、功耗和功能的详细信息,通常有三个 l i b 文件,分别描述了最好( 最快) 、典型和最坏( 最慢) 的情况,e n c o u n t e r 支持 这三种情况的文件同时导入进行分析; 2 c e l la b s t r a c ti n f o r m a t i o n ( 单元抽象信息) :此文件为l e f 文件,即 1 e f 文件,文件内包含了库中所有单元的工艺信息和宏模块信息。l e f 文件可以由相应 的a b s t r a c t 工具产生【h 】,不过通常是由厂商提供: 3 s t r u c t u r a lv e r i l o g ( 结构级v e r i l o g ) :此文件是一个 v 文件,是基 准单元所搭建的电路,是由d c 综合产生的网表; 4 d e l a yc o n s t r a i n ti n f o r m a t i o n ( 延时约束信息) :此文件是一个s d c 格式的文 件,最p s d e 文件,文件内定义了时钟信号以及对时钟所要求的时序。该 文件由布局布线工具用来优化时序和生成时钟,s d c 文件是由t c l 格式的约束命 令组成,可以由设计者手工编写,也可以可由工具生成,一般由d c 综合后生成该 第二章同步数字系统的设计 文件。 文件完备后,即可开始综合。s o ce n c o u n t e r 提供了g u i ,比较人性化,也比 较易懂易学。一个布局布线过程大致如下: 1 读入设计 在d e s i g n d e s i g ni m p o r t 进行设置,主要是读取上文提及的准备文件,同时需 要对电源地进行命名; 2 平面规划 在f l o o r p l a n s p e c i f yf l o o r p l a n 中进行设置,主要是对版图面积、利用率进行设 定; 3 电源规划 在p o w e r - p o w e rp l a n n i n g a d dr i n g s 中进行设置,主要是对电源地进行相应的 配置; 4 编辑i o 在e d i t p i ne d i t o r 中进行设置,主要对p i n 脚的位置进行配置; 5 布局标准单元 使用p l a c e s t a n d a r dc e l l s 指令,e n c o u n t e r 会根据相应的l i b 文件和l e f 文件调 用基准单元,并对器件进行布置; 6 时钟树综合 使用c l o c k - s y n t h e s i z ec l o c kt r e e 指令,可以插入时钟树; 7 连接关系 在f l o o r p l a n - c o n n e c tg l o b a ln e t s 中进行设置,这是对输入网表中的“1 b 1 和“1 b o ”进行的定义,需要将其分别接到电源和地; 8 最终布线 在r o u t e - n a n o r o u t e r o u t e 中进行设置,根据c a d e n c e 公司的宣传,n a n o r o u t e 是比较强大的走线策略; 9 优化 在t u n i n g - o p t i m i z a t i o n 中可以检查时序关系,并进行优化。d c 综合时可以忽 略的h o l dt i m e 违例,在此可以进行修正; 1 0 检查 v e r i f y - v e r i f yc o n n e c t i v i t y 可以对版图进行相应的检查,不过笔者认为,对于 工艺规则的检查,始终没有在v i r t u o s o 使用c a l i b r e 进行的d r c 、l v s 来的全面; 1 1 保存并输出 d e s i g n - s a v e 之中可以进行相应文件的生成以及保存,主要需要生成:g d s 文 件( 或d e f 文件) 、v e r i l o g 网表、s d f 文件以及s p e f 文件。此处的s d f 文件中 会记录相应的延时信息,相对真实;s p e f 文件提供了各个节点的寄生参数( r 、c 1 4数字集成电路设计方法的研究 的值) 。 s o u r c ec l k 一一一一- c :l k l l k 3 l 印 。七f f : ip 图2 5 时钟树结构图 时钟树的插入是自动布局布线过程中极为重要的一个环节,一个稳定的时钟 是所有同步设计人员所期望的。如图2 5 ,c l k 到来后,向树根一样不断分叉,最 后生成若干子时钟,送到各个触发器的时钟端口。在线延时不等的情况下,通过 添加相应b u t , 来保证c l k l 、c l k 2 、c l k 3 到来时间的一致性。经过这种处理 过后,可以将时钟的s k e w 限制在一个较小的范围内。 2 6 使用p r i m e t i m e 静态时序分析 在数字电路设计中,很多时候,设计人员通常不对电路进行后端仿真,而是 在d c 综合和e n c o u n t e r 布局布线之后进行静态时序分析,据此判定电路的时序是 否满足要求,进而判定电路的功能是否满足要求。 为验证门级网表的功能,可以添加测试激励进行仿真,但由于测试向量局限, 完备的仿真验证比较难以实现。在r t l 功能验证正确的前提下,对生成的门级网 表进行静态时序分析,分析工具会对网表中所有路径进行考量,检查其s e t u pt i m e 、 h o l dt i m e 是否满足要求,这是覆盖率1 0 0 的验证,进而间接判定网表的功能。 s y n o p s y s 公司的p r i m e t i m e 是一款最为通用的功能强大的s t a 工具【l 引, p r i m e t i m e 的命令语言是基于t c l ( t o o lc o m m a n dl a n g u a g e ) 标准的,这跟d c 一样,此处不再累赘。值得一提的是:p r i m e t i m e 可以反标延时信息,此延时信息 是布局布线后提取的,能让分析更加真实。 2 7 版图设计 在v i r t u o s o 下,直接f i l e i m p o r t - s t r e a m ,导入布局布线后生成的g d s 文件, 即可得到相应数字电路的版图,比较简便。 对于数字电路版图的设计,主要的工作是: 1 对于一个数模混合的系统,完成数字版图和模拟版图的组装; 2 虽然在布局布线阶段进行过相应的检查,但在版图层面,相应的d r c 、l v s 仍是必要的; 第二章同步数字系统的设计 1 5 3 输出g d s i i 文件,若设计人员认为设计无误,对相应的版图也感到满意, 就可以生成g d s i i 文件,认为可以准备将数据送至代工厂进行加工了。 对于一款商业化的a s i c 设计,版图并不是最终环节。在相应的版图完成后, 可以交由工艺厂商加工生产,芯片回来后,需要对其测试,以验证芯片功能、性 能是否满足要求,并进行d e b u g ,调试完成之后再进行量产【1 6 1 。 1 6 数字集成电路设计方法的研究 第三章一款光传感芯片数字系统的设计1 7 第三章一款光传感芯片数字系统的设计 本章结合了一款具体芯片的设计,对同步设计方法做一定的探索。这款芯片 的设计源自项目:“一款数模混合光传感专用集成电路关键理论研究及设计实现 。 目前该项目的基本目的已经达成,设计工作已处于收尾阶段。 3 1 芯片概述 这是一款数模混合的光传感【1 7 1 1 8 】芯片,该芯片有环境光检测和接近检测两种 工作模式,芯片内使用了两个独立的a d c 用来分别进行两种模式下的检测。对于 环境光检测( a l s ) ,芯片会产生一组1 2 位的数据,对于接近检测( p r o x ) ,芯 片会产生一组8 位的数据。该芯片有相应的中断功能,并提供了一个硬件的中断 p i n 脚,同时还提供了软件的中断标志位来指示中断的发生。该芯片对于光强的检 测较为精确、稳定,并且具有模式可调、量程可调、精度可调、中断方式可调等 功能。同时,该片还携带了1 2 c 接口,能够与主机实现相应的数据交流,并且硬 件地址可以选择,使得对该芯片较容易进行拓展。 在该芯片的设计过程中,在完成功能的前提下,确保了优越的性能,同时, 所设计的电路内部还规划了相应的测试机制,体现了d f t 的设计理念。 图3 1 芯片典型外部连接电路 图3 1 显示了芯片的大致框架,以及相应的应用电路。 该芯片有8 个p i n 脚,分别是:a d d r 0 、v d d 、g n d 、r e x t 、i r d r 、x i n t 、 s d a 、s c l ,各个p i n 脚的功能定义参照表3 1 。 关于电源v d d ,对于数模混合的芯片,片中的数字电路可能会对v d d 造成 数字集成电路设计方法的研究 一定的干扰,进而可能影响模拟电路的性能甚至功能,在进行系统级的规划中, 通常需要对数字电路的电源跟模拟电路的电源采取一定的隔离。在本芯片中,考 虑到工作频率较低( 大约为3 4 m h z ) ,数字电路的干扰较小,选择数字跟模拟共 用电源、地。 表3 1 芯片p i n 脚描述 p i n 序号p i n 名称描述 la d d r 0 1 2 c 的地址p i n ,可以接v d d 或g n d 2v d d 电源线2 2 5 v - 3 6 3 v 3g n d 地线 4r e x t 外部连接一个电阻( 4 9 9 k ) 后接地 5s c l 1 2 c 的时钟线 6s d a 1 2 c 的数据线 7 x i n t 中断p i n 脚,用来指示中断的逻辑输出,开漏结构 8i r d r 吸l e d 驱动p i n 脚 该片的主要功能是对光进行量化,芯片的封装是透明的。在版图的规划中, p d 管占用了很大面积,大约占到整个版图的三分之一至二分之一,并且,对p d 管进行了镀膜处理,同时,为避免光照对电路模块的信号产生干扰,p d 管之外的 电路需要用一层额外的铝线覆盖。 芯片中模拟部分功能主要是对可见光或红外光进行检测,通过光电二极管将光 转化成电流,再对电流量化。对p r o x 和a l s 的量化过程是在不同的a d c 中进 行的。由于模式可调,量化过程中的控制信号由数字电路生成。a d c 之后,会得 到一组量化的数据( 1 2 位8 位) ,然后数字部分会对采样后的数据进行一些的处理, 生成相应的中断,同时,该数据可以通过1 2 c 传输给m a s t e r 。其间,对芯片模式的 控制是通过1 2 c 进行配置的。 3 2 数字部分功能描述 在整个芯片系统级的规划中,芯片功能的实现较大程度上依赖于数字模块, 设计规划中,数字模块主要行使三大功能: 一、跟外界通信,这是通过使用1 2 c 总线实现的。作为一个1 2 cs l a v e ,需要 能够跟1 2 cm a s t e r 进行稳定的数据交流; 二、根据芯片内部配置寄存器中的信息产生相应的控制信号,用来控制模拟 部分的工作状态,进而决定了整个芯片的工作模式; 三、根据a d c 采样后的数据,和配置寄存器中相应的信息,产生清除中断。 第三章一款光传感芯片数字系统的设计1 9 3 2 数字系统结构框图 除了以上功能之外,数字部分还需具备一定的测试能力。进行d f t 的设计, 插入扫描链是比较常用的一种方法,但在这款芯片中,由于芯片规模并不是很大, 工作频率也比较低,并不需要插入扫描链,同时插入扫描链会对芯片面积带来负 担,所以是将内建自测向量的概念引入了芯片的可测性设计之中。图3 2 显示了芯 片中数字系统的结构框图。 3 3 前端设计 数字电路设计之初,需要进行系统级的规划。经各方分析验证,根据功能将 该芯片的数字模块划分为了三个功能块,分别是1 2 c 模块、i n t 模块和c o n t r o l 模 块。1 2 c 模块是用来完成通信,用户( 1 2 cm a s t e r ) 可以通过1 2 c 对芯片进行配置, 同时,也可以通过1

温馨提示

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

评论

0/150

提交评论