




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
千里之行,始于足下。第2页/共2页精品文档推荐跨时钟域信号同步解决方案跨时钟域信号同步的IP解决方案
作者:RickKelly,Synopsys研发经理
2009年1月
为了确保拥有多个异步时钟域的系统级芯片(Soc)可以可靠运行,设计人员必须使这些跨越了多个域的时钟和数据信号保持同步。虽然这并别属于新提出的要求,但随着多时钟域的越来越常见和复杂化,使得这一要求具备了新的重要意义。大规模集成加上对性能的严格要求以及频率调节都导致在许多别同频率下发生了非常多时钟域跨越现象-就像一场数字化的―完美风暴‖。
跨时钟域(CDC)咨询题会以许多种形式浮现,其评估难度相当高。幸好,SynopsysDesignWare库产品提供了许多卓越的CDC解决方案,这些方案应用简便,设计人员只需掌握在何时以及何处应用它们即可。
本文解释了在时钟和数据信号从一具时钟域跨越到另一具时钟域时所发生的许多类型的同步咨询题。在任何事情下,本文所包含的咨询题都涉及到相互异步的时钟域。随着每一具咨询题的提出,本文将概述一具或多个DesignWare解决方案。这些主题和解决方案包括:
?基本同步—DW_sync
?暂时事件同步—DW_pulse_sync,DW_pulseack_sync
?简单数据传输同步—DW_data_sync,DW_data_sync_na,DW_data_sync_1c
?数据流同步—DW_fifo_s2_sf,DW_fifo_2c_df,DW_stream_sync
?复位排序—DW_reset_sync
?相关时钟系统数据同步—DW_data_qsync_hl,DW_data_qsync_lh
基本同步咨询题
当来自一具时钟系统的信号将用作另一具与其别同步的时钟系统的输入时,就需要对信号举行同步以达成。而别举行同步就无法达成时序收敛。图1所示为采纳一具单寄存器来同步至目的时钟域的异步输入。
伴随这种办法会浮现的一具咨询题是,当一具触发器的数据输入处于逻辑0至逻辑1之间的过渡过程当中时,发给那个触发器时钟信号时有也许产生亚稳态现象。亚稳态现象也有也许发生在触发器的建立时刻或保持时刻浮现违反现象时。解决亚稳态事件使其达至逻辑1或逻辑0所要求的时刻量取决于建立时刻或保持时刻被违反的严峻程度(图2)。
ClocktoQdelay时钟至Q延迟
FFMinimumspecs触发器最小规格
图2解决亚稳态事件所用时刻
当亚稳态事件持续时刻长至脚以妨碍到下一具逻辑时期时,同步器就发生了故障。故障间平均时刻(MTBF)通常计算如下:
其中:
fclk是采样时钟频率
fdata是数据变化频率
tres是解决亚稳态所允许占用的时刻
T0和T1是与具体触发器相关的常数(下文将进一步叙述)
通常,由于在综合时会尝试在时序可以满脚的条件下缩减门电路数以节约占用面积,因此设计人员无法操纵至下一时期间的时刻预算。为了保持稳定一致的解决用时,设计人员能够采纳一具2个触发器组成的序列。然而,这种传统解决方案确信会增加时延。
在采纳2个触发器的解决方案,时钟树就以减去触发器FF1的时钟至Q延时后的时钟周期以及FF2的建立时刻要求为基础。
关于有着相对较高数据传输速率的高速应用来讲,即使两级同步器也有也许无法获得脚够的MTBF,特殊是在FPGA实现方案中。假如加入第3级,则惟独在第1级在亚稳态保持了脚够长的时刻,导致侵占了FF2的建立时刻的事情下,第2级才有也许发生亚稳态事件(图3)。
图33级同步器
SampeMTBFtest…MTBF测试电路示例
ErrorCounter错误计数器
采纳这一办法,MTBF可计算为:
T0和T1常数与所选用的具体触发器相关,并有也许从库供应商处获得。库供应商会采纳如图4所示的电路来测定这些常数。错误计数器用于测量在输入时钟处于某一特定组合的输入频率下的MTBF。经过在别同频率比率下让此电路运行,就能够测定T0和T1的数值。
图4用于测定触发器常数的电路
参见以下资料,能够了解更多有关亚稳态和MTBF计算的信息:
?―确保亚稳态不可能破坏您的数字设计方案‖,作者:DeboraGrosse,Unisys,EDN,
1994http:///archives/1994/062394/13df2.htm
?―数字系统亚稳态特性‖,作者:Kleeman&Cantoni,IEEETransactionsonComputers,ol.C-36,No.1,Jan.,1987
?Google:MTBF亚稳态同步
另一具基本同步咨询题涉及到扫描测试。扫描链经常采纳保持锁存以确保在时钟域之间实现正确的扫描切换。假如在扫描测试排序时,让最终一具扫描输入循环后面直截了当跟一具捕获循环,且让两者的时钟均由测试时钟来驱动,则有也许无法正确捕获到跨越时钟域的功能信号(图5)。在源侧域之间插入一具锁存器可以提供1/2时钟周期的延迟,确保了扫描测试期间的正确捕获操作,从而解决了那个咨询题。在别处于扫描模式时,可由一具复用器将那个锁存器旁路,实现正常功能运行。另一种解决方案是在较小型的时钟域之间插入一具负边沿触发器。
图5a–扫描测试中别受操纵的偏移有也许导致跨域捕获发生违反
图5b–在域之间复用一具锁存器能够确保1/2时钟周期的保持
图5c–一具负边沿D触发器也可保持1/2时钟周期的保持
图5跨时钟域扫描测试咨询题
关于基本同步来讲,设计人员能够使用DesignWare的DW_sync组件,此组件有以下参数:
?宽度
?f_sync_type:级数
?tst_mode:0=>无保持,1=>锁存,2=>负边沿触发器
?verif_en(下文讨论;别妨碍综合)
在以f_sync_type参数指定了级数后,将获得如图6所示的配置方式之一。
图6采纳DW_sync组件时也许的级数
同步暂时事件
有点时刻,您需要在一具时钟域内设置逻辑电路以告知另一具异步时钟域内的逻辑电路,有某一特定事件差不多发生。一种办法是采纳如图7所示的方案,其中经过门选复位来清空源域内的脉冲。
图7a–较差的设计方案
图7b–较好但仍存在门选复位
图7c–更好的设计方案,但仍别是最佳方案
图7另一具时钟域内事件的通知逻辑
在使用一具高电平有效的脉冲作为跨时钟域事件的信号时,那个脉冲的宽度必须脚以确保采样操作的完成,而且必须在脉冲之间存在明显的无信号时刻。为了幸免采纳脉冲拉伸机制,您能够使用别归零(NRZ)信号发生方式,而别要使用归零(RZ)信号发生方式。图8所示为clk_d域是怎么在后一种类型的信号下捕获变化的,这是一种在许多状况下难于采纳的办法。
Eventinclk_s:clk_s内的事件
Returnto…:Clk_d内捕获的归零信号
Capturedin…:在clk-d内捕获的信号
图8NRZ信号发生方式的优点
为了简化时钟域之间的脉冲传递,可采纳DW_pulse_sync双时钟脉冲同步器(图9)。标为―clk_s‖的虚线框内的逻辑电路运行在clk_s(源)时钟域下,而标为―clk_d‖的虚线框内的逻辑电路运行在clk_d(目的)时钟域内。在域之间采纳NRZ信号能够实现更高的事件处理流量,而且由于无需反馈,所要求的逻辑电路也较少。
Register…:能够经过parameter,reg_event在器件外配置寄存器
NRZ…:跨域的NRZ信号
Multiple…:多寄存器同步器
History…:用于检测变化的历史寄存器
图9DW_pulse_sync双时钟脉冲同步器
Multiple…:多寄存器同步器
Multiple…:多寄存器同步器
Busystate…:忙碌状态
NRZfeedbackack_delay=1:NRZ反馈ack_delay=1:
Multiple…:多寄存器同步器
Multiple…:多寄存器同步器
Busystate…:忙碌状态
NRZfeedbackack_delay=1:NRZ反馈ack_delay=1:
图10加了确认的DW_pulseack_sync脉冲同步器
假如需要反馈,则能够采纳DW_pulseack_sync,这是一种带有确认的脉冲同步器。如图10所示,那个IP产品提供了一具NRZ反馈信号,可以比无确认版本提供更高的事件处理流量。DW_pulseack_sync还提供了可配置的标志寄存器和反馈延时。
同步数据总线
在从一具时钟域跨越至另一具时钟域时,在目的时钟对接近过渡状态的总线举行采样时,数据总线上有也许浮现瞬时虚假数值(图11)。例如,一条从11011001变为01011010的8位总线上有3个位发生了改变。在所涉及的偏移存在时序上别确定性的事情下,就有会看到8个也许浮现的数值:theinitialvalue(11011001),thefinalvalue(01011010)andsixpossibleintermediatevalues(11011000,11011011,11011010,01011001,01011000and01011011).
Source…:源总线
Destinationclk:目的时钟
1st…:第1个同步寄存器
2nd…:第2个同步寄存器
Intermediatevalue:过渡数值
Intermediatevalue:过渡数值
图11瞬时总线数值
一种在同步数据总线时幸免别想要的过渡数值的办法是,采纳一具带有确认的暂时事件同步器。这种逻辑能够采纳以下次序对跨越时钟边界的数据举行同步交换:保持数据,发送―请同意‖,发回―已同意‖,释放数据寄存器。DW_pulseack_sync组件可以
发送必要的―请同意‖和―已同意‖事件。
而一种带确认信号的数据总线同步器DW_data_sync能更好地完成此项任务。此IP消除了过渡虚拟数据,而且您能够对其举行配置,提供暂时性的数据存储能力(图12)。
Optional…:可选用的暂时数据寄存器
Handshake…:同步交换逻辑
Send…:发送操纵
图12带确认的DW_data_sync总线同步器
确认延迟咨询题
在源时钟比目的时钟快得并别多(或全然相同)时,提供一具确认信号的同步器也许会引发时延咨询题。假如在应用当中时延具有关键性的意义,则应思考采纳一种―提早‖确认方式,即经过设置参数ack_delay=0来举行配置。
假如源时钟比目的时钟快出非常多,则能够同步确认信号,而且数据能够在别到目的时钟1个周期内的时刻内改变。在时延并非关键性咨询题时,最好采纳默认的ack_delay=1设置。假如没有使用延迟,则在本地注释块内记录此项附加讲明算是一种非常好的处理方式。
以下是使用ack_delay=0的通用规则[1]:
?clk_d的周期别应当超过clk_s*的周期(r_sync_type–0.25)
?clk_s的频率别应当超过clk_d*的频率(f_sync_type–0.25)
?例如,在f_sync_type=r_sync_type=2,Fclk_d=200MHz时
—MaxFclk_s=Fclk_d*(2–0.25)
—MaxFclk_s=200MHz*1.75=350MHz
假如确保目的时钟速率超过了(Fclk_s*(f_sync_type+1.25))[2],则能够使用更简单的信号同步体系。在目的时钟较快的事情下,能够对―请同意‖事件举行同步,并在别到源域1个时钟周期的时刻内捕获数据。所以,也就别需要发回―已同意‖事件了。在需要最大程度地减少时延和/或别必要的逻辑电路时,例如,在对一具实时时钟寄存器举行更新并将其内容发送到一具高速逻辑区块时,这种办法就较为有用。
为了实现这一办法,能够采纳DesignWare的别带确认的数据总线同步器DW_data_sync_na(图13)。此IP提供了比双向数据同步更高的数据吞吐量以及更少的逻辑电路,但请牢记时钟频率要求[2]:Fclk_d≥Fclk_s*(f_sync_type+1.25).
Event…:事件同步逻辑电路
图13别带ac确认信号的DW_data_sync_na总线同步器
总线同步的特别事情
假如在任一时间,一条总线上只会有一具位发生改变(也算是格雷码格雷码过渡),则简单的多寄存器同步绝对不可能引发过渡虚假数据。而在接近采样时钟时有一具位发生改变时,第一具捕获此位的寄存器有也许进入亚稳态,但那个位将会转向新数值或旧有数值。
在诸如跨时钟域监测计数器的应用当中,格雷码总线就较为有用。计数器数值的格雷码允许您使用较简单的同步技巧来在持续别断的监测下达成更低的时延。
总线同步的另一种特别事情涉及到一具您没有拜访权的源域clk_s。例如,您有也许要面对一具来自于没有提供源时钟的外界源的进入芯片内的相对较慢的总线。由于电路板布线时延有也许导致位与位间的时序偏移超过单个时钟周期,多寄存器同步就有也许遇到超过一具时钟周期以上的过渡虚假数值。在这种事情下,您能够使用―历史寄存器‖来检测数据所发生的变化,并决定何时将数据传递给芯片核心。
Lastvalue:上一次的数值
Newvalue:新数值
Control…:操纵状态机
Counter:计数器
Highcount:高位计数
图14DW_data_sync_1c单时钟过滤数据总线同步器
针对这些事情,DesignWare提供了单时钟过滤数据总线同步器DW_data_sync_1c(图14)。此同步器能够消除存在高位间时序偏移特性的数据过渡中的过渡数值。
数据传输与数据流
在跨时钟域传输数据时,请牢记数据传输与数据流之间的差不。在数据传输当中,在典型事情下不可能长时刻维持背靠背(back-to-back)式的数据发送。数据同步设计可作为一具示例,例如采纳DW_data_sync的设计方案。
而另一方面,数据流允许在设备提供的数据存储能力的限制范围内实现背靠背式的数据发送,例如采纳FIFO。DesignWareLibrary内的双时钟FIFO依靠于双端口RAM的使用(图15)。源域内的推送逻辑电路负责将数据写入到RAM,而目的域内的弹出逻辑电路负责将数据从RAM读取。
Pushlogic:推送逻辑电路
Poplogic:弹出逻辑电路
FIFOController:FIFO操纵器
Pushinterface:推送接口
Popinterface:弹出接口
图15配合双端口RAM的双时钟FIFO
此设计采纳了DesignWare组件DW_ffoctl_s2_sf和DW_ffo_s
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 二零二五年度LED电子显示屏研发与市场推广服务协议
- 二零二五年度技术开发合同解除协议书
- 2025年度长租公寓集资协议
- 2025年度足疗中心员工劳动合同模板
- 2025年度高效节水型土地大棚租赁服务协议
- 二零二五年度厂房租赁合同解除与产业升级改造协议
- 防渗漏管理策划
- 调度运行员培训
- 《大学生心理健康》课件 主题8 学习使用时间 拿回人生主动权
- 集合与函数的概念说课
- 劳务派遣劳务外包项目方案投标文件(技术方案)
- 2024年苏州市职业大学单招职业适应性测试题库完整版
- ZYJ7道岔故障处理方法
- 煤矿用80开关(QBZ80、120、200)
- 《并购专题》PPT课件.ppt
- 建筑工程材料见证取样、送检单
- 大一高数试题及答案(共16页)
- IPC-A-610E培训教材(完整版)
- (完整word版)自然拼读单词表最新(精华版)
- 吉林大学地球科学学院09版培养方案.doc(2010.11.30)
- 顶管施工安全控制要点
评论
0/150
提交评论