(微电子学与固体电子学专业论文)跨时钟域信号同步技术研究.pdf_第1页
(微电子学与固体电子学专业论文)跨时钟域信号同步技术研究.pdf_第2页
(微电子学与固体电子学专业论文)跨时钟域信号同步技术研究.pdf_第3页
(微电子学与固体电子学专业论文)跨时钟域信号同步技术研究.pdf_第4页
(微电子学与固体电子学专业论文)跨时钟域信号同步技术研究.pdf_第5页
已阅读5页,还剩56页未读 继续免费阅读

(微电子学与固体电子学专业论文)跨时钟域信号同步技术研究.pdf.pdf 免费下载

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

文档简介

摘要 摘要 在现代a s i c 以及f p g a 设计中,在e d a 软件工具的帮助下,已经可以使 设计规模达到千万门级甚至更大的规模。然而对于在两个不同的时钟域之间正确 地传递数据,至今是软件工具无法自动完成的,设计人员必须人为地加入某种机 制,来保证这种数据传递的正确性,这就是本文要讨论的核心内容跨时钟域 信号的同步。本文系统地阐述了跨时钟域数据传递的机理,从其原理出发,研究 分析了数字电路中不同的同步机制的工作模式,并进行了模拟仿真,比较了它们 的优缺点。针对使用广泛的基于a r m 的嵌入式系统中,不同类型寄存器的操作之 间的同步,提出了一种新颖的同步机制,在确保功能的基础上,减小了同步逻辑 的规模;同时,在跨时钟域信号同步的验证技术并不成熟的背景下,提出了一套 验证流程。通过实际流片表明该设计和验证方法切实可行,并对同类型的设计与 验证有借鉴和指导意义。 关键词:数字电路集成电路跨时钟域亚稳态m t b f 同步电路 摘要 a b s t r a c t b yu s i n go ft h ee d at o o l s ,t h es c a l eo fm o d e r na s i co rf p g ad e s i g nc o u l db et e n m i l l i o ng a t e so rm o r e b u tt h ec l o c kd o m a i nc r o s s i n gi s s u e ( c d c ) s t i l lc a n tb e m a n a g e db yt o o l sa u t o m a t i c a l l y ,w h i c hi st h ek e yp o i n to ft h i st h e s i s i ti sb e g a nw i t h t h eo v e r v i e wo ft h i sc d c p r o b l e m ,d i s c u s s e dt h ea d v a n t a g ea n dd i s a d v a n t a g eo f e a c h k i n d o fs y n c h r o n i z a t i o nm e c h a n i s mb ys i m u l a t i o n e s p e c i a l l y ,f o rt h eo p e r a t i o n so f d i f f e r e n tr e g i s t e t si nt h es y s t e mb a s e do na r m ,an e ws y n c h r o n i z a t i o nm e t h o di s i m p l e m e n t e d i nt h i sp a p e r a tt h es a m et i m e ,an e wv e r i f i c a t i o nf l o wi sc r e a t e df o rt h e c d ci s s u e a l lo ft h e s em e t h o d sa n dd e s i g n sa r ep r o v e nb yt h es i l i c o n ,s o ,t h i st h e s i si s v e r yu s e f u lf o rs o l v i n gt h ec d cp r o b l e m s k e y w o r d :d i g i t a li c c l o c kd o m a i nc r o s s i n g m e t a s t a b i l i t ys y n c h r o n i z e r m e a nt i m eb e t w e e nf a i l u r e s ( m t b f ) 5 一 声明 西安电子科技大学 学位论文创新性声明 秉承学校严谨的学分和优良的科学道德,本人声明所呈交的论文是我个人在 导师指导下进行的研究工作及取得的研究成果。尽我所知,除了文中特别加以标 注和致谢中所罗列的内容以外,论文中不包含其他人已经发表或撰写过的研究成 果;也不包含为获得西安电子科技大学或其它教育机构的学位或证书而使用过的 材料。与我一同工作的同志对本研究所做的任何贡献均已在论文中做了明确的说 明并表示了谢意。 申请学位论 本人签名: 不实之处,本人承担一切的法律责任。 日期手型7 西安电子科技大学 关于论文使用授权的说明 本人完全了解西安电子科技大学有关保留和使用学位论文的规定,即:研究 生在校攻读学位期间论文工作的知识产权单位属西安电子科技大学。学校有权保 留送交论文的复印件,允许查阅和借阅论文;学校可以公布论文的全部或部分内 容,可以允许采用影印、缩印或其它复制手段保存论文。同时本人保证,毕业后 结合学位论文研究课题再攥写的文章一律署名单位为西安电子科技大学。 ( 保密的论文在解密后遵守此规定) 本学位论文 本人签名: 导师签名: 年解密后适 第一章绪论 第一章绪论 1 1 研究背景 9 在微电子技术高速发展的今天,a s i c 和f p g a 已经深入到我们生活的方方面 面,从仪器仪表,到网络通信,再到日用家电,我们都可以看到集成电路的身影。 面对越来越多不同种类的需求,集成电路本身的规模越来越大,功能也在越来越 复杂。在这样的环境背景下,现代的数字电路设计,基本都采用同步时序设计, 所有触发器都是在同一个时钟节拍下翻转,这样的设计方式带来的好处是显而易 见的,它不仅简化了设计本身,也给后端的综合、布局布线带来了极大的方便。 在这些e d a 工具的帮助下,可以轻松地实现千万门甚至更大规模的集成电路;同 时,由于功能的复杂性,现代集成电路内部已经不可能只使用单一的时钟,根据 功能的需要,不同时钟之间的频率和相位是有很大区别的,如果在这样两个时钟 域之间直接传递数据,将会发生诸多问题,发生亚稳态的传播,引起功能错误, 甚至是整个系统的崩溃。而对于现在大多数的综合工具而言,由于它们不能确定 触发器处于亚稳态的时间,因此,在判定这样的异步信号是否满足触发器的时序 要求时,就变得不可靠了。所以,我们必须采取某些机制来减轻跨时钟域信号给 整个系统带来的影响,我们把这一机制称为跨时钟域信号的同步技术,这也是本 文讨论的核心内容。 随着芯片制造工艺的不断进步,已经可以在同样的面积上,集成更多的晶体 管,这也就为单芯片解决方案提供了可能。因此基于a r m ( a d v a n c e dr i s cm a c h i n e s ) 的嵌入式单芯片系统,以它低成本、低功耗的优势,被广泛应用于通信、消费类 电子、汽车和家电等领域。这样的系统由一个或者多个a r m 核以及外围电路组成。 外围电路完成某种特定的功能,a r m 核作为中央处理器,负责组织、协调、控制 外围电路的工作,再加上运行在a r m 上的软件,最终形成一个完整的系统。系统 对某种功能的控制,是软件通过a r m 对某一外围电路的控制寄存器的读写,以及 外围电路本身对这些寄存器的操作来完成的。因为a r m 与外围电路工作在不同的 时钟域,如何实现不同时钟域控制信号对同一寄存器的操作,并保持它们的一致 性和协调性,就成为了设计中的难点。对于这类问题,以往的设计中,不是同步 逻辑的功能不够完备,就是用于同步的逻辑开销太大,增大了系统功耗。而本文 在总结这些方法的基础上,提出了一种新颖的同步机制,很好地实现了上述两个 方面的平衡,即在实现功能的基础上,精简了用于同步的逻辑,对同类设计有着 借鉴和指导的意义。 1 0 跨时钟域信号同步技术研究 1 2 研究现状 随着数字电路规模的不断扩大,跨时钟域信号的同步技术以及相应的验证技 术,越来越被关注。设计出一种有效的同步机制,并保证它的可靠性,是保证芯 片最终流片成功的必要手段,同时这也就意味着可以缩短芯片的研发周期,提高 产品的竞争力。 虽然,验证技术本身已经有了很大的发展,并且针对其他问题也有了较完善 的方法,但对于跨时钟域信号的验证技术,国际上依然没有很成熟的解决方法。 因为不能在r t l 级准确模拟触发器的亚稳态行为,也就意味着不能再现跨时钟域 传递数据时出现的种种问题,这就给验证带来了很大的难度。国外对这方面的研 究相对广泛,各大e d a 公司也相继在2 0 0 6 年前后推出了自己的跨时钟域同步验 证的工具,如m e n t o r 公司的0 一i n 、s y n o p s y s 公司的l c d a 以及a t r e n t a 公司的s p y g l a s s 等。虽然这些工具从一定程度上提高了跨时钟域同步的验证的自动化程度,但是 也都存在或多或少的局限,因此并没有在1 c 设计中被广泛采用。 而国内则缺少对跨时钟域信号同步的系统研究。只有零散的关于同步电路设 计的报道,而且缺少系统性,缺少对这些方法的总结和归纳,这就使得设计人员 在处理同步问题时由于缺少一些指导性的原则而变得盲目。针对基于a r m 的嵌入 式系统中不同类型寄存器操作之间的同步问题,更是鲜有报道。而对于验证问题, 国内则处于刚刚起步的阶段,几乎是一片空白。 1 3 本文研究内容和安排 本文基于上述背景和研究现状,在阐述了跨时钟域数据同步原理,深入分析 亚稳态问题的基础上,根据时钟域之间关系和信号宽度的不同,讨论和总结了各 种同步机制,分析了它们各自的优缺点。针对一个基于a r m 嵌入式系统中不同类 型寄存器操作之间的同步问题,提出了一种新颖的同步机制,之后阐述了在跨时 钟域数据同步问题上采用的验证方法,并提出了一个相对完备的验证流程。具体 内容如下: 第二章,阐述了数字电路跨时钟域传递数据同步的基本原理,分析了它可能 带来的问题,并根据时钟之间关系的不同,分析了产生这些问题的原因。 第三章,首先深入分析了引发各种同步问题的根本原因,即亚稳态的传播, 介绍了m t b f 的概念;然后根据时钟域之间关系和信号宽度的不同,讨论和总结 了数字电路中经常采用的同步机制;最后,针对一个基于a r m 嵌入式系统中不同 类型寄存器操作之间的同步问题,提出了解决的一般方法。 第四章,在讨论了一些基本验证方法的基础上,结合功能检查和静态验证的 方法,提出了一个较完备的针对跨时钟域数据传递同步问题的验证流程,并把它 第一章绪论 应用到基于a r m 嵌入式系统中不同类型寄存器操作之间的同步问题上。对于同类 问题,有一定借鉴意义。 第五章,总结与展望。 第二章跨时钟域同步机理 第二章跨时钟域同步机理 2 1 时钟域同步 一个完整的数字系统内部完全可以按照同步的方式来进行设计,但同时,这 个同步系统必须与外界进行通讯,才可能实现这个系统的部分或全部功能,而这 种通讯往往是异步的。当信号从一个时钟域传送到另一个时钟域时,出现在新时 钟域的信号是异步信号。这个异步的输入可以在相对于该系统时钟的任意时刻翻 转。以手机键盘的输入为例,假定手机内部通过一个统一的时钟来协调各种事件 及执行各种操作( 当然,实际手机内部有多个时钟) ,。同时我们用一个变量a 来表示 键盘被按下的事件: a = l 表示键盘被按下; a = o 表示键盘未被按下; 系统以一定频率的时钟来查询这个输入的事件,而按下键盘这一事件,与手 机内部系统之间完全独立的,也就是说,变量a 可能在任意时刻发生0 - - 1 的转 变。如果这个转变恰好发生在查询的时候( 输入a 的跳变恰好发生在时钟沿采样 的时候) ,那么,当这样的一个值进入系统内部后,a 到底是1 还是0 便是未知 的,是一个不确定的值。当把这个不确定的值引入系统内部后,会引起很多的问 题。例如,一个功能模块认为这个健已经被按下,而开始相应的操作:同时,另 一个模块倾向于认为a = o ,即这个健没有被按下,然后,开始对应的动作。这两种 截然相反的操作往往会发生竞争,引起系统冲突,甚至是系统的崩溃。 所以,从解决问题的角度出发,当一个异步信号进入同步环境前,必须判定 它是低电平还是高电平,只有这样,系统内部的各个部分之间才能够协调一致地 工作,而实现这种判定功能的电路,就称为同步电路,我们会在第三章中详细讨 论这类电路的各种形式。 另一方面,从寻找引起这一问题的原因出发,我们将会发现,其根源是因为 异步的信号可能会违反触发器的建立保持时间的要求,使寄存器的输出为一个不 确定的值,即触发器处于亚稳态。我们也会在第三章中详细分析引发亚稳态的各 种要素。而在接下来的小节,我们会对跨时钟域数据传递引发的问题,从不同的 角度,详细讨论。 1 4 _ 一 跨时钟域信号同步技术研究 一t hl 一t s u 一 图2 1 建立时间与保持时间 如图2 1 所示,建立时间t 锄是指,当时钟有效沿到来之前,数据必须稳定的 时间;而保持时间t 1 1 是指,数据必须在时钟有效沿之后必须稳定的时间。我们将 在接下来的章节中进行详细的讨论。 2 2 跨时钟域信号分析 在s o c 越来越复杂的今天,越来越多的功能被集成到芯片里,同时,数据也 更加频繁地在不同的时钟域之间传递。如图2 2 所示,当数据在不同时钟驱动的触 发器之间传递的时候,就会发生跨时钟域的问题。 e l k lc l k 2 图2 2 数据在不同时钟驱动的寄存器之间传递 2 2 1 跨时钟域信号带来的问题 一、亚稳态的传播: 第二章跨时钟域同步机理 旦 图2 3 亚稳态现象 如图2 3 所示,当输入di n 的变化距离e l k 2 的有效沿非常近的时候,就会违 反触发器的建立保持时间,导致输出do u t 产生振荡,并持续一段时间,所以当 e l k 2 的第二个有效沿来到的时候,d o u t 有可能已经稳定,也有可能继续震荡,因 此就会给系统带来以下的问题【l 】【2 】: 1 、不同的扇出会把不稳定的do u t 判定为不同的值,这样就使得系统进入了 一个未知的状态,导致某些功能失效。 2 、最终的输出稳定在高电平do u t l 或者稳定在低电平do u t 2 。但无论怎样都 可能造成至少一个周期的传播延时,导致时序问题。 由于违反了触发器的建立保持时间而导致的亚稳态传播问题,是所有跨时钟 域问题的核心,在第二章会对这一问题进行更深入的讨论。 二、数据丢失f 3 】 c i i n 厂 卜 卜1 卜 厂 h 厂 厂u l 门- 广u l 厂l n ,u 乙 d 腔hh h 厂 a o 小f i l 土一 ; : 圆, d 黼握王如 1 6 跨时钟域信号同步技术研究 当个新的数据产生的时候,如果不能够保持足够的时间,就有可能不能被 目的时钟域的时钟所捕获。如图2 4 所示:假设c l k l 的频率是c l k 2 频率的2 倍, 并且它们之间没有相位差,d i n 在c l k l 的上升沿产生,为序列“0 0 1 0 1 1 1 1 ”,注意 观察图2 4 ,输入序列的第三个值0 - - ) l 的变化,没有被c l k 2 捕获,这样就造成了 数据的丢失。 三、多b “数据的不连贯3 】 c l k l 厂 厂 厂 厂 厂 图2 5 多b i t 数据的不连贯 当一个新的数据在源时钟域产生的时候,由于在目的时钟域有可能出现亚稳 态,这时候就需要一个或者多个时钟周期,使其成为有效数据,这决定于目的时 钟域时钟有效沿到来的时间。考虑如下情形,当一个多b i t 信号跨时钟域传递时, 每一位都单独采用简单同步方法,那么就有可能有一些位,经过一个周期就稳定 了,而有一些位需要2 个或者更多的周期才能稳定,这样就造成了数据的不连贯, 即在一定的时间内,某些位是稳定的,而某些位不是。然而,在大部分数字设计 中这样的多b i t 数据都应当是同时有效的。当这样的情况发生时,必然会引起系统 的错误。例如,如图2 5 所示,“o o ”和“1 1 ”是d的两个由 产生的有效i n t o :1 c l k l 数据。di n t o :1 第一个1 专o 的变化被e l k 2 正确捕捉,所以do u t 1 :0 】由初始的“1 1 ” 变成“0 0 ”;接着,di n t o :1 的所有位都有一次0 专1 的变化,因为c l k 2 的有效沿距 离di n t o :1 的这次变化非常近,do u t o 】在第一个e l k 2 有效沿之后稳定,而d 】out1 则在第二个e l k 2 有效沿才稳定,这样就产生了一个中间值“0 1 ”,这是不希望发生 的。 由上述问题可以看出,跨时钟域问题很大一部分依赖于源时钟域时钟和目的 时钟域时钟之间的关系。根据时钟之间关系的不同,我们可以分为同步时钟域和 异步时钟域,我们会在下一个小节,根据时钟之间这样的关系分别对问题作深入 的讨论。 第二章跨时钟域同步机理 2 2 2 在不同类型的时钟域之间传递数据 由上一个小节的分析,我们认识到,两个时钟域之间的时钟有着怎样的关系, 直接决定着跨时钟域的数据传递。我们将以两个时钟是否同源,它们之间的频率 相位关系是否可以预测为出发点,分别讨论在同步时钟域和异步时钟域下的数据 传递。 。 一、同步时钟域 如果两个时钟域时钟的频率和频率、相位和相位之间是相关的,我们就称这 两个时钟域是同步时钟域【j j 。为了满足上述的要求,这两个时钟应该是同源时钟。 下面,我们根据相位与频率的具体关系,做以下分类,为了便于描述,我们把两 个时钟分别称为c l k l 和c l k 2 ,并进一步假设时钟c l k l 与时钟c l k 2 有相同的时钟偏 差: 1 、时钟c l k l 与时钟c l k 2 之间频率相同,相位差为0 2 、时钟c l k l 与时钟c l k 2 之间频率相同,有固定的相位差 3 、时钟c l k l 与时钟c l k 2 之间频率不同,有可变的相位差 我们分别对上述情况进行讨论: 1 、时钟c l k l 与时钟c l k 2 之间频率相同,相位差为0 c l k l d k 2 i 厂一 d n 。u ,ll 厂一 图2 5 频率与相位都没有差别的两个时钟域 因为c l k l 与c l k 2 从同一个源时钟产生,并且频率相位相同,所以我们可以认 为c l k l 与c l k 2 是同一个时钟,当数据在这样的两个时钟域之间传递的时候,唯一 的要求就是两个时钟域之间的组合逻辑满足建立保持时间,这样就不会出现上一 节描述的各种问题。 2 、时钟c l k l 与时钟c l k 2 之间频率相同,有固定的相位差 跨时钟域信号同步技术研究 时钟c l k l 和时钟c l k 2 之间频率相同、并且有着固定的相位差。这样的设计常 见于芯片的一些外部接口,例如,m m c s d 接口,u s b 接口等,c l k 2 常作为反馈 时钟输入。如图2 6 ,假定c l k l 与c l k 2 之间有固定的3 4 的相位差,这时,只要两 个时钟域之间的组合逻辑满足建立保持时间的要求,就可以正确传递数据。 c l k l i 厂 广 厂 厂 厂 厂 厂 厂 c i k 2 厂 阳厂 厂 厂 厂 厂 厂 3 ,4 t d _ i n l 厂1 一 一 i 广一 d _ o u t y 图2 6 两个时钟之间频率相同,有着固定的相位差 3 、时钟c l k l 与时钟e l k 2 之间频率不同,有可变的相位差 当时钟频率不同时,情况变得复杂起来,为了清楚地认识问题,可以进一步 把这一问题细化: c l k l 的频率大于e l k 2 的频率的,并且频率差是整数倍的。 c l k l r 厂 广 厂 广 广 厂 厂 厂 厂 一;t d i n i 厂r 一 _ 。_ _ _ - 。- _ _ _ _ _ _ - _ _ _ _ 。_ 一 :一 d o 还 i 图2 7 源时钟域频率是目的时钟域的整数倍 因为两个时钟之间的频率差是整数倍的,因此最小的可能相位差就为较快时 钟的一个周期。如图2 7 所示,假定e l k l 的周期是t ,频率是c l k 2 的3 倍,那么 对于c l k 2 而言,建立时间至少为t ,只要t 大于触发器的建立时间,就不会有亚 稳态发生。对于这种情况而言,唯一可能发生的是数据丢失,因此,数据应该至 少保持c l k 2 的两个周期,即c l k l 的6 个周期,这样,c l k 2 就可以正确的采集到数 据。 c l k 2 的频率大于c l k l 的频率的,并且频率差是整数倍的。 第二章跨时钟域同步机理 1 9 c l k l 厂 广 厂 厂一 c l k 2 厂 厂 厂 广 厂 厂 厂 厂 厂 厂 : : t d n ;厂r _ 一 d o u t 厂二一 i 图2 8 目的时钟域频率是源时钟的整数倍 两个时钟之间的可能的最小的相位差依然为t ,与上面情况不同的是,因为数 据是由较慢的时钟域向较快的时钟域传递,因此不会发生数据丢失的问题。只要t 大于触发器的建立时间,数据就可以正确传递。 c l k 的频率大于e l k 2 的频率的,并且频率差是非整数倍的。 c l k l 厂 厂 厂 厂 厂1 厂 厂 厂 : i d = ! ! 门 d :! 垡叭 图2 9 源时钟域频率是目的时钟域的非整数倍 当两个时钟的频率差不是整数倍的时候,意味着它们之间的最小相位差可以 足够的小,就有可能出现亚稳态的情况。如图2 9 所示,c k l _ 的频率是c l k 2 频率的 1 7 倍,它们之间的最小相位差已经使c t k 2 捕获数据时出现了亚稳态,并且c t k 2 的第一个有效沿也违反了触发器的建立一保持时间要求。同时,由于是由较快的时 钟域向较慢的时钟域传递数据,由于数据没有在源时钟域保持足够的时间,在c l k 2 时钟域也发生了数据丢失的情况。 要在这样的两个时钟域之间传递数据并且避免上述问题的出现,必须使数据 在源时钟域保持足够的时间,至少为目的时钟域时钟周期的两倍。 c l k 2 的频率大于c l l ( 1 的频率的,并且频率差是非整数倍的。 跨时钟域信号同步技术研究 c i ! 厂 广 厂 厂 厂 厂 d _ ! ! i _ ;r 卜一 d ! ! ! ! 卜弋 l f 一 d ! ! ! ;f 弋l f 一 如图2 1 0 ,同上一种情况类似,当c l k l 与e l k 2 的频率差不是整数倍的时候, 两个时钟之间的相位差就有可能很小,造成亚稳态的问题,为了在这种情况下正 确传递数据,也要求数据保持目的时钟域时钟的两个周期。 虽然我们对于同步时钟域之间数据传递的讨论只局限于单b i t 数据,对于多 b i t 数据,为了避免前面提到的数据不一致情况的出现,需要采用握手机制或者 f i f o ,但从理论意义上讲,在同步时钟域之间传递数据,因为我们对于两个时钟 之间的相位关系是可以预知的,所以,我们就可以知道目的时钟域的时钟有效沿 何时到达,只要使数据在源时钟域保持足够的时间,那么数据就可以在这样的两 个时钟域之间正确传递,并不需要任何其他的电路结构。而当数据在异步时钟域 之间传输的时候,必须用某种具有特殊功能的电路,来完成跨时钟域数据的传递, 我们把具有这种功能的电路成为同步电路或同步器。 二、异步时钟域 异步时钟域是指两个时钟域的时钟之间是不相关的,它们之间的相位关系是 不可以预知的。因此,前面讨论的诸如亚稳态、数据丢失、多b i t 数据不一致等问 题都会出现,并且这些问题都是不可预知的,因此我们必须用同步电路来完成数 据在这样两个时钟域之间的传递。对于大多数设计而言,这种情况是最常见的, 我们会在第二章讨论同步电路的各种形式以及一些其他同步机制。 2 3a r m 及t s m u 模块简介 2 3 1a r m 以及t s m u 模块功能简介 在了解了跨时钟域信号同步的基本原理,以及由此可能引发的问题之后,我 们把目光集中到一个具体问题基于a r m 的嵌入式系统中,不同类型寄存器操 作之间的同步问题。 a r m 1 】f 4 1 ( a d v a n c e dr i s cm a c h i n e s ) ,既可以认为是个公司的名字,也可 以认为是对一类微处理器的通称,还可以认为是一种技术的名字。1 9 9 1 年a r m 第二章跨时钟域同步机理 2 l 公司成立于英国剑桥,主要出售芯片设计技术的授权。目前,采用a r m 技术知识 产权( p ) 核的微处理器,即我们通常所说的a r m 微处理器,因为体积小、低功耗、 低成本、高性能的特点已遍及工业控制、消费类电子产品、通信系统、网络系统、 无线系统等各类产品市场,基于a r m 技术的微处理器应用约占据了3 2 位r i s c 微处理器7 5 以上的市场份额,a r m 技术正在逐步渗入到我们生活的各个方面。 a r m 公司是专门从事基于r i s c 技术芯片设计开发的公司,作为知识产权供应商, 本身不直接从事芯片生产,靠转让设计许可由合作公司生产各具特色的芯片,世 界各大半导体生产商从a r m 公司购买其设计的a r m 微处理器核,根据各自不同 的应用领域,加入适当的外围电路,从而形成自己的基于a r m 的微处理器芯片进 入市场。高级微控制总线结构( a m b a ) 于1 9 9 6 年被提出,并被a r m 处理器广 泛用作片上总线结构。最初的a m b a 总线包含a r m 系统总线( a s b ) 和a r m 外 设总线( a p b ) 。之后,a r m 公司提出了另一种总线设计,称为a r m 高性能总 线( a i - i b ) 。使用a m b a ,可在多个项目中重复使用同一设计,或从已作过测试 和验证的外设中作广泛的选择。这种即插即用的特性,提高了硬件开发者的设计 效率,并缩短了产品上市的时间。 t s m u 是t o u c hs c r e e na n dm e a s u r e m e n tu n i t 的全称,作为手机基带芯片的 一个重要组成模块,由名称我们可以知道,它的主要功能是对前端测量电路的控 制和测量数据的采集,包括对温度、电池电压、触摸屏的测量等,然后将测量的 数据通过a h b 总线返回给a r m ,如图2 1 1 。根据不同的测量任务,t s m u 共有 三种不同的工作模式,优先级高的测量请求可以打断优先级较低的测量任务。例 如,当测量某个温度时,a r m 首先向t s m u 发送请求,然后t s m u 把这样的请 求转换成控制信号发送给测量电路;当测量完成后,t s m u 收集测量的结果,然 后通过中断机制把数据再传送给a r m ;这期间如果有一个触摸屏的测量请求, 那么t s m u 就会优先完成这次测量,然后再继续上一次的温度测量。 ) a r m 、, t s m u, 测量电路 图2 1 1t s m u 模块的主要功能 t s m u 将测量电路返回的数据保存在数据寄存器中,a r m 通过a h b 总线将 这些保存的数据读走;同时a r m 通过对t s m u 控制寄存器的读写操作实现对测 量的控制,而t s m u 在某些情况下也可以对直接对这些控制寄存器进行操作,这 跨时钟域信号同步技术研究 样在a r m 时钟域和t s m u 时钟域之间就出现了不同类型寄存器以及它们之间不 同类型操作的同步问题。 2 3 2t s m u 模块新的设计要求 一、t s m u 时钟结构分析 如图2 1 2 所示,这是t s m u 的原有设计的时钟域结构,从图2 1 2 上我们可 以看出,t s m u 内部的时钟只有一个源时钟,即a h bb u sc l k 。a h bb u sc l k 经过c l c d i v i d e r 的分频,分别作为寄存器组模块、f i ? a ce 1 1 模块( 该模块产生f r a cd i v i d e r 的 使能信号) 、f r a cd i v i d e r 模块的输入时钟,然后时钟经过f r a ed i v i d e r 再一次分频 产生t s m uk e r n e l 的时钟,k e r n e lc l k 。值得一提的是,f r a cd i v i d e r 是一个可以对 输入时钟作非整数倍分频的时钟分频电路。而由c l cd i v i d e r 产生的时钟有一路会 作为前端测量电路的输入时钟,即图中的e l km e a so 。 由图2 1 2 我们可以看出,所有的t s m u 内部的时钟都是同源的,都是来自 a h bb u s 的总线时钟,a r m 读写和t s m u 工作的时钟是同源的,时钟域之间的 关系是同步的,因此,根据前两节的分析,我们知道,这样的时钟域之间的数据 传递不需要额外的同步电路,或者只需要简单的同步。 二、新的设计要求和时钟域结构改变 新的系统设计要求测量电路工作在恒定的2 6 m h z 。如果采用原有设计,因为 测量电路部分要求输入的时钟频率是恒定2 6 m h z ,它的源时钟是a h bb u sc l k ,而 出于某种需要,a h bb u s 上的时钟是要经常改变的,这就要求必须在这些时候更 改c l cd i v i d e r 或者c l kd i v i d e r 的设置,使得c l km e a so 的频率保持2 6 m h z 不变。 可是,时钟的切换是需要时间的,在这段时间内,测量电路就会处于一个不稳定 的状态;而当a h bb u se l k 低于2 6 m h z 的时候,是无法满足e l km e a so 为2 6 m h z 的要求的。另一个方面,由于t s m uk e m e l 和测量电路部分是使用同一个时钟, 由于测量电路的这一要求,所以t s m u 只能工作在2 6 m h z ,限制了它的应用范围。 为了解决上述问题,必须为测量电路与t s m u 核提供一个单独的时钟域,同 时,寄存器组模块依然与a h bb u s 使用同一个源时钟,以保证对寄存器的正确 读写。这样对t s m u 内部而言,就存在了两个时钟源,t s m uk e r n e l 域与b u s 域 之间的关系就是异步的了。新的t s m u 时钟域结构如图2 1 3 所示,虚线标出了两 个不同源的时钟域,两个时钟域的源时钟分别是a h bb u se l k 和a l tk e r n e le l k 。 a l t k e r n e l c l k 为一个恒定的2 6 m h z 时钟,它直接作为前端测量电路的输入,同时 也作为f r a ed i v i d e r 的输入时钟,进而产生t s m uk e r n e l 的时钟。这样即满足了前 端测量电路的恒定2 6 m h z 的时钟输入要求,同时t s m uk e r n e l 也可以工作在不同 的频率。 第二章跨时钟域同步机理 同时,这样也带来了新的问题:在t s m uk e r n e l 与设置寄存器组之间的数据 传递要跨越异步时钟域。如果没有额外的电路来完成这种传递,就会出现我们在 这一章开始所讨论的各种问题,所以同步电路和同步机制的设计将是我们探讨的 重点,我们会在下一章中从最简单的同步电路开始,首先讨论现代数字电路中经 常采用的一些同步技术,并加以系统总结、归纳。然后,再来具体分析t s m u 中 的各种不同类型的同步问题。 丝 跨时钟域信号同步技术研究 图2 1 2 原t s m u 设计的时钟结构图 第二章跨时钟域同步机理 图2 1 3 新t s m u 的时钟结构图 1 i;j 第三章跨时钟域同步设计 第三章跨时钟域同步设计 2 7 由前面一章的讨论,当信号在不同的时钟域之间传递的时候,会发生许多的 问题,针对时钟之间的不同关系,我们分别进行了详细的讨论。在诸多不同的问 题之中,最根本的问题是都是由于亚稳态带来的,我们会在这一章首先对触发器 亚稳态出现的根本原因和由此引发的问题作深入的讨论。然后,如在上一章中提 到的,对于异步时钟域之间的数据传递,必须由额外的、具有某种功能的电路来 完成,这种电路就称为同步电路。数字电路中的同步电路形式多种多样,我们将 在本章详细分析各种同步电路形式的优缺点。最后,针对基于a r m 嵌入式系统中 不同类型寄存器操作之间的同步问题,我们采用了握手机制并利用脉冲同步器同 步握手信号的方法,使同步机制不受时钟之间频率差异的影响,并最大限度地减 小了用于同步的逻辑规模。 3 1 亚稳态分析 如图3 1 ,当数据因为组合逻辑的延时,使得它与时钟的到达时间违反触发器 建立时间或者保持时间的要求时,触发器的输出就进入了种不可预测的状态, a 一 砒一 跨时钟域信号同步技术研究 输出有可能是1 ,也有可能是0 。我们把触发器这样的状态称为亚稳态,把这一 现象称为亚稳态现象。 触发器无法在某个规定时间段内达到一个可确认的状态。当一个触发器进入 亚稳态时,既无法预测该单元的输出电平,也无法预测何时输出才能稳定在某个 正确的电平上。在这个状态中,触发器输出一些中间级电平,或者可能处于振荡 状态,并且这种无用的输出电平可以沿信号通道上的各个触发器级联式传播下去, 造成亚稳态的传播,使系统发生一系列的错误,甚至引起系统的崩溃。 我们以传输门构成的触发器为例,深入分析亚稳态产生的原因,并讨论建立 时间与保持时间的意义。 d c l k g c l k 厶 图3 2 传输门构成的触发器 如图3 2 所示,是一个由传输门构成的触发器。当c l k 为低电平的时候,传输 门a 导通,传输门b 关断,主级的锁存器是透明的,输入d 被采样到节点q m 上, 输出q 保持不变;当e l k 为高电平的时候,传输门a 关断,传输门b 导通,q m 保持不变,并被采样到输出端q 。这样就构成了一个上升沿有效的触发器:在e l k 的上升沿输入数据d 被更新到输出q 上。 建立时间的意义在于,如果d a t a 没有在比传输门a 关断,传输门b 导通的时 刻足够早地到达,那么很有可能内部的反馈回路上的电压还没有达到足够使得i n v l 翻转的地步( 因为传输门有延时,传输门b 打开后原来的q 值将通过i n v 2 迫使 q m 保持原来的值) 。这样,在i n v l 的输入端就发生了竞争发生,q 的旧值将有 可能获胜,使q 不能够寄存住正确的d a t a 值,所以,建立时间决定了组合逻辑的 最小延时。 对于保持时间,因为c l o c k 到达时刻并不等同于l a t c h 的传输门a 完全关闭的 时刻。所以如果d a t a 没有在c l o c k 到达之后保持足够长的时间,那么很有可能在 传输门a 完全关闭之前d a t a 就已经变化了,并且引起了q m 的变化。如果这种变 化足够大、时间足够长的话,很有可能将反馈回路q m 电压从原本正确的低电压 q 第三章跨时钟域同步设计 拉到较高电平的电压。甚至如果这种错误足够剧烈,导致了i n v l 和i n v 2 组成的双 稳态回路发生了翻转,从而彻底改变了q 的正确值,就会导致输出不正确。由此 可见,保持时间决定了组合逻辑的最小延时。 在明确了建立时间、保持时间的意义之后,我们回到文章开头的的例子,当 键盘被按下时,即一个异步信号在进入系统之前,必须要首先判定它是高电平还 是低电平。然而,要建立一个理想的、总能做出合法应答的同步电路是不可能的【5 】。 一个同步电路需要一些时间来作出决定,并且其失效的概率可以随着等待时间的 增加以指数的方式减少。下面分析这种失效都和哪一些因素有关。 以图3 1 为例,当一个异步信号进入一个触发器的时候,因为输入信号是异步 的,有可能在任意时刻翻转,一旦违反触发器的建立时间或保持时间的要求,就 会导致输出可能处在一个不确定的状态。显然,这一概率与信号翻转的频率以及 时钟翻转的频率有很大的关系。 为了确定所要求的等待时间,我们建立了一个双稳态元件的数学模型,并利 用这一结果确定同步失效与等待时间的关系1 6 】【7 1 。 双稳态元件的瞬态响应可以模拟为: y p ) = v m s + ( 矿( o ) 一v m s ) c x p ( t r )( 3 1 ) 这里,v m s 是触发器的亚稳态电压,v ( o ) 是采样时钟关断之后的起始电压,f 是时间常数。 现在可以用这个模型来计算等待段时间t 之后,仍会引起出错或者电压仍 处于不确定区域的v ( o ) 值的范围。如果一个信号的值处于v i l 和v m 之间,那么这 个信号就称为是不确定的,即: v ( t ) ( 3 2 ) 把( 1 ) 式带入( 2 ) 中: v m s + ( y ( 0 ) 一v m s ) e x p ( t r ) ( 3 3 ) v m s + ( y ( o ) 一v m s ) e x p ( t r ) y 0( 3 4 ) 由上两式,可以得到: v m s 一( v m s 一) e x p ( 一t r ) v ( o ) v m s + ( 御一v m s ) e x p ( - t z ) ( 3 5 ) 公式( 3 5 ) 给出了一个非常重要的信息,引起同步出错的输入电压范围随等 待时间t 的增加呈指数关系缩小。如果把等待时间从2 t 增加到4 t ,则错误发生的 机率就会减小约7 4 倍。 同步失效概率显然与输入信号本身有关系。假设v i n 是一个周期波形,它发 生翻转的平均周期为t s i 哪! ,并且具有相同的上升与下降时间t 。同时假定波形在r 3 0 - 一 跨时钟域信号同步技术研究 不确定区域的斜率可以用一个线性函数来近似,如图所示。利用这样一个线性模 型,我们可以估计出v ( o ) 在不确定区间的概率。 7 ( v l h - v ll n s w i n g 气 v s w i n g , 、7 、, e i n i t - 堕警( 3 6 ) 1 s i g n a l v i h v i l 发生同步失效的机会取决于同步时钟的频率劢。采样事件越多,发生出错的 机会越大。不采用任何同步电路,出错的概率是: u 啦等 b 7 , 由公式( 3 5 ) 、公式( 3 7 ) 我们可以推导出,在等待一段时间之后,信号仍 然处于不确定区域的概率为: 嘣耻华= 竖警面t r ( 3 8 ) 因此,一个异步同步接1 :3 的稳定性由下列参数决定:信号的切换速率和上升 时间、采样时钟的频率、以及等待时间t 。 考虑以下的设计实例。采样时钟频率为2 0 0 m h z ,等待时间为5 n s ;输入信号 翻转的平均周期为5 0 n s ,f ,= 0 5 n s ,t = 5 0 p s v 1 h v i l 近似等于o 5 v 。带入公式( 3 8 ) , 求得出错概率为1 3 8 e 一9 个错误秒。n 。v n 。的倒数称为平均失效时间( m t b f ) ,它 等于2 3 年! 而如果没有使用同步器,m t b f 就仅为2 5 u s 。失效率对f 值极为敏感, 而r 的精确值并不很容易确定,因为不同芯片的r 值不尽相同。而且它还与温度有 关,因此,即使是同一个设计,失效概率也可以在一个很大的范围里波动。如果 第三章跨时钟域同步设计 最坏情形下的失效概率超过了一定的标准,则可以通过增加t 值来减小它。可以 通过串联一定数量的同步器来解决。这样整个的等待时间就是所有同步器t 。的和, 而增加同步器的代价使得系统的等待时间增加。由于同步出错的随机性,即使平 均失效时间非常大也不能完全阻止出错。因此,针对串联同步器的数量应当有所 限制。仍然以上一个设计为例,当等待时间加大到2 t 的时候,m t b f 约为6 4 0 年1 8 】,由此表明,两级触发器串联已经可以把失效率控制在一个可以接受的范围。 3 2 同步电路的分析与设计 从前面的讨论我们可以看出,由于异步信号可以在相对系统时钟的任意时刻 翻转,造成亚稳态的传播,以及由此引发各种系统问题。为了解决这些由异步输 入带来的种种问题,必须有这样一种电路,可以最大限度地减小这些异步输入带 来的影响,具有这种功能的电路就称为同步电路。由上一节的分析,我们知道, 最简单的同步电路就是两个串联的触发器,中间没有任何组合逻辑。为了使同步 工作能正常进行,从某个时钟域传来的信号应先通过原时钟域上的一个触发器, 然后不经过两个时钟域间的任何组合逻辑,直接进入同步器的第一个触发器中, 如图3 4 。这一要求非常重要,因为同步器的第一级触发器对组合逻辑所产生的毛 刺非常敏感。如果一个足够长的信号毛刺正好满足建立一保持时间的要求,则同步 器的第一级触发器会将其放行,给新时钟域的后续逻辑送出一个虚假的信号。一 个经同步后的信号在两个时钟周期以后就成为新时钟域中的有效信号。信号的延 迟是新时钟域中的一到两个时钟周期。所有的其他同步电路都是以这样最简单的 同步电路为基础实现的。下面我们根据不同的情况,分别讨论【9 】。 3 2 1 单b i t 信号的同步 一、源时钟域的时钟频率小于目的时钟域时钟频率 1 、电平同步器 d a t adi nd 2 dqdqdq e l ke l ke l k 图3 4 电平同步器 跨时钟域信号同步技术研究 如图3 4 电平同步器就是简单的两级触发器串连同步电路,当目的时钟域时 钟频率是源时钟域时钟频率的2 倍以上时,这样的同步器可以很好地工作:当目 的时钟域时钟频率大于源时钟域时钟频率,又小于它的2 倍时,信号的变化( 0 - ) 1 或者1 _ o ) 必须至少保持源时钟域的两个周期,否则有可能造成数据丢失。 下面分别是电平同步器的模型与仿真波形: v e r i l o g : a l w a y s ( p o s

温馨提示

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

最新文档

评论

0/150

提交评论