CDC同步器设计方案:为什么使用异步路径?

随着现代ASIC中时钟域的增加,时钟域交叉(CDC)变得无处不在,必不可少且必不可少。当然,时间安排总是一个问题。高时钟速度和信号路径中的延迟会导致信号到达不希望的时刻,从而导致亚稳性。本文的部分重点介绍设计中异步域的必要性以及随之而来的挑战。由于工程师无法避免异步信号,因此本文介绍了如何减轻CDC引起的问题。它还涵盖了MTBF在设计中选择同步器的用法。

第二部分介绍了同步器的时序方面,以及由于同步器不同元素之间的路径约束不当而可能如何影响此功能。当今的SoC使用各种同步技术,但是您必须了解其在适当情况下的用法。我们将讨论这些技术,并说明在给定情况下不使用apt同步器的后果。第三,我们将涵盖设计中CDC同步器的验证方面以及设计中同步器所有方面的方法论。为什么使用异步路径?

现代芯片中越来越多的逻辑使得异步路径必不可少。在同步设计中,在所有触发器上都保持相同的时钟偏斜使时序变得困难。使用全局同步时钟会在较短的路径上引入时序开销,而使用更快的时钟则不会发生这种情况。结果:降低了整体性能。此外,由时钟路径延迟引起的过程电压-温度(PVT)变化终会导致不均匀的偏斜,从而使路径有效地异步并引起亚稳定性问题。尽管工程师在同步设计中使用时钟门控单元来降低功耗,但异步域的功耗甚至更低。

异步路径有一个有用的目的,但是会带来风险。可以对以不同频率工作的两个触发器之间的传播时间进行定时,但是时钟的异步特性不会在数据切换和时钟沿之间提供确定的关系。为了正确的触发器操作,源(触发器D)上的数据应在其设置和保持窗口之外很好地切换。这就是为什么。亚稳态的伤害考虑一下图1a中的图表,这是一个正边沿触发翻牌的内部图片。为了理解亚稳态,假设触发器处于复位状态。1. CLK = 0,D = 1:路径DABC和PQR处于活动状态。D处的值锁存在C处(状态如图1b所示)

)2. CLK = 1,D = 1,路径CAB和PQ处于活动状态。C处的锁存值反映在Q处(状态如图1c所示)。建立时间:当D处的值从0变为1时,信号从D到达节点C需要一定的时间。同时,如果CLK切换,它将锁存一个中间值节点C。因此,C被卡住,并且该亚稳值出现在Q处。通过此路径传播所需的时间是建立时间。为了避免亚稳态,D处的数据必须在设置窗口(T s)之外进行很好的更改。

保持时间:假设D在CLK从0切换到1的过程中切换。由于在CLK切换之后,节点A从节点D断开,因此A可以捕获在Q处可见的中间值。因此,CLK从0切换到1的时间。是保持时间。

图1(a)边沿触发触发器的内部框图显示了反相器和传输门。(b)当CLK = 0时,

活动路径为绿色。(c)当CLK = 1时,活动路径为绿色。

消除亚稳定性

在两种情况下,当CLK从0切换到1时,亚稳态值都会卡在节点A(设置)或节点C(保持)上。这会导致亚稳态值在个锁存器(ABC)周围循环,然后尝试将其自身解析为稳定值。在图1b和图1c的情况下,固定值在带有两个交叉耦合逆变器的闭环(双稳态元件)中移动。通过小信号模型分析,两个节点之间的电压差显示出指数行为。它确定的值取决于节点A或C的中间值,但是在称为亚稳态解析时间的确定时间后,电压差接近晶体管阈值电压(V TH)

由同步时间常数(τ)确定。如果亚稳不能在半个周期内解决,则当CLK从1切换到0时,亚稳值甚至可能在第二个锁存器(PQR)中循环,此亚稳值不得进一步传播。幸运的是,两个背对背触发器(2 Dff)可以防止出现此问题。如果在个触发器(即元触发器)的时钟周期内稳定到稳定值,则第二个触发器将不会捕获不稳定值(同步触发器)。但是,我们如何确保亚稳态值将在一个时钟周期内稳定下来?考虑确定亚稳态解决时间的因素。

其中V TH 是阈值电压和δ V我 是在卡住值(电压差V小号 )到亚稳态电压(V中号 )中,如图图2,其示出传输的双稳态逆变器回路的特性。

图2 双稳态逆变器的传输特性包括滞留电压(V S )和亚稳态电压(V M )。

差异(V M )可能导致V OUT 下降到阈值电压(V TH )之间。

同步时间常数(τ)决定了亚稳分辨率。它取决于逆变器的RC特性增益(A)。τ值越小,从亚稳值到阈值电压的过渡斜率越大。这样可以缩短解析时间。因此,低阈值电压单元(LVT)通常代替meta flop,因为LVT的τ值远小于高阈值电压单元(HVT)和标准阈值电压单元(SVT)的τ值,从而减少了解决时间。亚稳电压也成为问题的原因。根据公式,如果V M 为0,则滞留电压(V MS)等于亚稳电压(V M)。发生这种情况时,理论上将需要无限的时间来解决。这本质上永远不会发生吗?即使被卡住的电压恰好在电源电压和地之间的中间点(V M ),由于诸如热噪声之类的随机过程,它终还是会发生变化。由于数学公式无法提供解决时间,因此您需要一种概率方法。概率方法发生亚稳态的概率为(T W / T)× F D,其中T W 是设置保持窗口,T 是时间段,F D是数据引脚切换的频率。因此,概率(输入MS)= T W × F C × F D。 由于分辨时间遵循指数行为,因此在给定时间t分解亚稳态的概率 由e – t /τ给出。因此,故障概率或故障发生率为T W × F C × F D ×e – t /τ。因此,平均无故障时间(MBTF)= 1 / Rate(failure)

为了提高同步器的可靠性,我们化了MTBF。我们根据预期产品寿命选择MTBF值。因为我们希望亚稳态到一个周期的持续时间,内解决吨 在电子吨/τ 小于一个时钟周期或同步时段(RES )和τ是技术依赖。因此,将MTBF设置为10 3 年的数量级,我们可以计算出同步器在MTBF时间段内无故障运行的频率。注意:通常将MTBF设置为比单个同步器期望的高几个数量级。考虑到a,SOC可能包含多达1000个数量级的许多同步器,因此总体MTBF降低了相同数量级。

选择同步器触发器

对于同步器,由于时钟周期短,可能会导致亚稳态无法解决。解决方法:使用两个元触发器。第二个翻牌提供了更多时间来解决亚稳性。因此,可以基于设计的频率要求来选择要使用的同步器触发器的数量。随着频率的增加,同步触发器的数量也可以根据等式1进行增加。例如,如果t的值 根据上式计算得出的值大于工作频率的时间段,则元触发器的数量也必须增加。请记住,增加触发器数量也会在同步关键数据路径时引入延迟,终导致数据速率降低。因此,您必须进行权衡。

图3 2 Dff同步器使用两个触发器来消除亚稳态条件。

了解时序要求

在图4a中,在第二周期的同步触发器处正确捕获了DIN处的数据(没有亚稳态)。源脉冲的长度足以使目标触发器捕获它。现在,看看一些不幸的计时条件。在图4b中,DIN处的数据脉冲太短,无法捕获目标域。因此,在同步时没有捕获任何值。在图4c中,DIN处的数据太短,并且会在元触发器(TW)的设置保持时间窗口内转换。结果,元触发器变为亚稳态,但由于它在一个周期的持续时间内解析,因此它不会传播到同步触发器。但是,元触发器可以解析为值0或1。这种情况可能导致错误的数据传播。如果数据在另一个时钟周期内保持稳定,则不会发生这些不幸的情况。就是这样。

在图4c中,如果源数据(DIN)对于目的地时钟的至少三个边缘是稳定的,则在第二或第三周期中有效地使数据同步。因此,要使这种同步技术正常工作,需要一个时钟周期加上在src(DIN)数据上的建立和保持时间的时序要求。如果数据从较慢的时钟域传递到较快的域,以使较慢时钟与较快时钟的时间段之比为1.5,则没有严格的时序要求。来自较慢时钟域的数据将始终在较快时钟处进行采样。

图4(a)在DIN处正确采样的数据。(b)缺少DIN的数据。

(c)DIN上的数据太短,无法传播正确的值。(d)在DIN处正确采样的数据。

对于从较快的时钟传递到较慢的时钟的信号,其中DIN可能是如图4b所示的脉冲信号,并且在目标时钟的1.5个周期内不稳定,我们可以使用基于确认的同步器。这种技术可以拉伸源数据并在目标域捕获它。目的地信号被确认回到源域,以确保在目的地正确捕获。元触发器和同步触发器之间的时序我们已经看到源触发器处的异步信号时序如何影响同步器中的数据传播。现在,元触发器和同步触发器之间是否有时序要求?如果将元触发器和同步触发器放置得相距很远(图5a),以至于传播延迟(TDELAY)超过时钟周期,亚稳值可能会传播到同步触发器,如波形所示(图5b)。因此,应将它们放置得足够近,以使SyncD的值在下一个时钟沿稳定下来。拖鞋之间应该有多少距离?我们应确保在元触发器和同步触发器之间验证保持检查,以避免它们之间的馈通。

图5(a)放置Meta和Sync触发器,使T DELAY 相距很远,从而导致(b)Sync触发器处的亚稳态传播。

要仔细实施这些限制而不必检查每个同步器,请使用已经放置好位置的硬单元替换这些结构。同样,较小的τ值可提供更好的亚稳分辨率。这些硬块中的触发器被LVT单元所取代,后者具有更好的能力在短的时间内解决亚稳态。您应该在寄存器传输级别(RTL)中使用标准的分层块。源触发器与元触发器之间的时序到目前为止,我们已经讨论了源数据输入(DIN)处的时序要求(三个边缘数据要求)以及元触发器与同步触发器之间的时序约束。但是,在源触发器和目标触发器之间是否存在约束。如果源触发器和目标触发器分开放置,会发生什么情况?

如果单个数据位由两个Dff同步,则源和目标之间的传播时间会增加,并且在两个或三个周期后将捕获目标处的采样数据。取决于设计,这可能会或可能不会对功能产生影响。在总线同步和重新收敛路径的情况下,很大程度上观察到了它的影响。如图6a所示,灰色总线的源触发器放置不均匀。这导致每个源触发器到其各自的元触发器的传播延迟不同。因此,数据到达元触发器(MetaD)输入所花费的时间是不同的(图6b)。同步的数据不正确,可能会导致设计中的功能错误。因此,除了约束从元触发器到源触发器的路径之外,还必须约束从源触发器到元触发器的定时路径。(Din到MetaD)。但是,这种约束的定量价值是多少?通常,从源到元触发器的路径受sdc命令– set_max_delay或set_multicycle_path约束。set_max_delay-从[Din] –到[MetaD] 1 * RX_Clk_period

图6(a)在这种设计中,总线中的源触发器与元触发器的距离不同。由于源触发器与元触发器之间的传播延迟不同,这导致(b)在目标处采样的值不正确。

从Din到MetaD的所有路径都将具有相同的偏斜,从而导致正确的数据传播。我们将路径限制为一个RX_clk_period的延迟。理想情况下,选择两个时钟周期中较小者的延迟,但是对于非关键数据,我们可以放宽路径。同步功能相关的信号假设我们要同步一组具有功能相关性的信号,并且该相关性需要保持在同步时钟域,那么使用两触发器同步器被证明是错误的(图8)。

图8 Din0和Din1之间的关系在目标域中不同。

对于具有功能依赖性的此类多位信号,例如-状态机,计数器,相移总线信号,不建议使用2 Dff。为了同步多位总线,我们可以使用下面将要讨论的基于使能的同步器。但是,如果这些信号在同步端具有松弛以失去其依赖性,即它们是不相关的,则可以使用2个Dff结构进行同步。然而,为了正确采样,这些信号必须满足目标时钟周期的1.5倍的约束。同步多位数据工程师经常使用基于使能的同步器(图9)来同步多位总线,其中它们之间存在功能依赖性。同步使能信号(RX_enable)使总线同步。

图9 基于启用的同步器:一种用于多位总线信号的同步技术。

使用这些结构会增加严格的时序要求。当RX_enable到达目标域时,TX_data必须稳定,以确保成功进行数据传播。违反时序可能会导致RX_data触发器出现亚稳态。在这种情况下,我们需要限制从TX_data到RX_data的异步路径,以防止这些触发器在芯片中分开放置。如果不受限制,尽管RTL设计人员必须在假设理想延迟的情况下确保了功能时序要求,但综合工具可能会出现错误行为,并将其视为“无关紧要”或“错误”的路径。我们可以使用以下sdc命令:

set_max_delay-从[TX_data] –到[RX_data](2 + 1)RX_clk_period

在此,使用的延迟为(2 + 1)×Rx_clk_period。RX_enable信号为两个周期,src(TX_enable)与使能同步器的MetaD之间的延迟为一个周期。是什么杀死了同步器?组合逻辑容易出现故障。因此,如果组合锥中的信号可以同时切换,则在同步器的路径中使用组合逻辑会受到限制,因为毛刺会传播到目标域,从而导致功能错误。通常,启用信号(图10a中所示的信号A)在同步器之前通过与门与异步源信号(TX_data)进行门控。但是,考虑到使能信号的行为,应谨慎使用此类结构。当源数据切换时,它应该是稳定的,以防止任何毛刺传输。但是建议避免在同步器之前使用组合逻辑,因为我们永远不知道在数据路径上会引入多少延迟合成,从而导致违反我们的使能信号时序假设。让我们看一个示例,组合逻辑如何导致错误的值传输。

图10(a)异步路径处的组合逻辑。(b)组合逻辑分解为不同的路径,从而在异步路径上造成故障。

在图10b中,组合逻辑可以将数据路径拆分为单独的路径。综合不能保证两条路径之间具有相等的数据平衡。两个信号的不同到达时间可能导致毛刺传播,甚至导致同步触发器变为亚稳态。防止这种结构发生毛刺传播的方法是在合成过程中保留“与”门。对于整个SOC而言,这通常是一项艰巨的任务。这就是为什么我们不使用组合门来防止这种情况的原因。CDC中的形式验证方面

随着设计复杂性CDC的增加,遇到CDC问题的可能性也随之增加。验证已成为CDC分析的重要方面,广泛使用的验证技术是基于断言的验证。一些工程师在仿真环境中使用这些断言,而另一些工程师在形式验证中使用它们。形式验证方法更全面地描述了我们的CDC结构成功率,因为它涵盖了模拟可能会在其测试模式中遗漏的所有其他情况。我们使用这些断言来验证CDC结构是否适合其各自的场景。例如:

2 Dff结构要求在目标时钟周期的1.5倍周期内保持稳定的源数据,从而在接收时钟域进行正确的采样。

在基于启用的同步器中,当rx_enable置为有效时,源数据不应更改。

在重新收敛Tx信号的情况下,可能存在三种情况:

信号可以用灰色编码。在这种情况下,assertion属性应仅检查前一个值(Gray属性)中的一位。

信号可能很热。在这种情况下,属性应确保在给定的时间,总线中只有一位为高,即,总线中只有一个网在传输数据。在此处执行1.5倍周期的2 Dff稳定性检查。我们需要确保在目标域对信号进行了正确的采样。

信号是无关的,即,即使源信号同时切换,也不会在目标域产生任何功能上的影响。在这种情况下,不需要断言来检查总线相关性。但是,必须对总线的各个信号进行2 Dff的稳定性检查。

我们将上述方法基于形式断言。一个正式的验证引擎将被唤起,它将测试所有可能的情况以找出可能的失败情况。因此,对于复杂的设计,可能有必要通过提供假设来解释对工具的信号的功能行为,从而限制主要输入。但是过度约束设计可能会导致出现虚假情况。例如,如果将2 Dff的源输入约束为稳定,则断言之前的情况可能永远不会发生。因此,应非常小心地应用设计约束。CDC同步器中的强制策略

与CDC验证策略有关的另一个验证方面是在IP验证套件中对CDC结构进行建模。在仿真中,该工具不考虑设置或保持违规,除非在门级仿真(GLS)的情况下。一切都是功能验证的理想选择。工程师提出了一种新颖的方法来仿真仿真中的同步器行为,该方法可在源触发器发生任何变化时,在元触发器中随机插入0或1个周期的延迟,以模仿亚稳性情况。

该延迟模拟了触发器已进入亚稳态的状态(延迟1个周期)或未达到亚稳态(延迟0个周期),这是触发器的物理设计的特征。此逻辑已合并到标准CDC设计结构本身中,RTL设计人员可以使用这些标准结构在其设计中放置同步器。这种方法的使用使IP设计人员确信,即使引入了亚稳定性,也不会妨碍设计的功能。

作为门级仿真(GLS)的常规做法,我们将触发器的建立和保持时间设置为零。在建立/保持时间违反的情况下,我们将关闭计时检查以防止x从元触发器上传播。因此,在异步边界处,GLS仿真可以复制功能验证。但是为了详尽地验证时序,我们可以通过定义相对于时钟周期的合适的建立和保持窗口,来修改上述模型,以检查在元触发器上是否发生建立和保持违规。如果数据在设置窗口或保持窗口内切换,我们可以在元触发器上引入0或1个周期的随机延迟。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mfbz.cn/a/764964.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

pandas数据分析(5)

pandas使用Numpy的np.nan代表缺失数据,显示为NaN。NaN是浮点数标准中地Not-a-Number。对于时间戳,则使用pd.NaT,而文本使用的是None。 首先构造一组数据: 使用None或者np.nan来表示缺失的值: 清理DataFrame时&#xf…

【关于C/C++中的scanf不能使用问题】

方法1:scanf_s 方法2:看见后面的日志了吗 CRT……?在第一行加上#define 日志 方法3:#pragma warning(disable:4996) 4996是我们的报错序号

PDF压缩工具选哪个?6款免费PDF压缩工具分享

PDF文件已经成为一种常见的文档格式。然而,PDF文件的体积有时可能非常庞大,尤其是在包含大量图像或复杂格式的情况下。选择一个高效的PDF压缩工具就显得尤为重要。小编今天给大家整理了2024年6款市面上反响不错的PDF压缩文件工具。轻松帮助你找到最适合自…

广州外贸建站模板

Yamal外贸独立站wordpress主题 绿色的亚马尔Yamal外贸独立站wordpress模板,适用于外贸公司建独立站的wordpress主题。 https://www.jianzhanpress.com/?p7066 赛斯科Sesko-W外贸建站WP主题 适合机械设备生产厂家出海做外贸官网的wordpress主题,红橙色…

【区块链+基础设施】银联云区块链服务 | FISCO BCOS应用案例

为了顺应区块链基础设施化的发展趋势,中国银联推出了银联云区块链服务——UPBaaS,为金融行业采用区块链 技术提出了解决方案,微众银行为平台提供 FISCO BCOS 区块链开源技术支持。通过银联云区块链服务,用户可 以用可视化的方式创…

安卓应用开发学习:通过腾讯地图SDK实现定位功能

一、引言 这几天有些忙,耽误了写日志,但我的学习始终没有落下,有空我就会研究《 Android App 开发进阶与项目实战》一书中定位导航方面的内容。在我的手机上先后实现了“获取经纬度及地理位置描述信息”和“获取导航卫星信息”功能后&#x…

java基于ssm+vue 病人跟踪治疗信息管理系统

1病人功能模块 病人登录进入病人跟踪治疗信息管理系统可以查看首页、个人中心、病例采集管理、预约管理、医生管理、上传核酸检测报告管理、上传行动轨迹管理、病人治疗状况管理等内容。 病例采集管理,在病例采集管理页面可以查看账号、姓名、住院号、入院时间、病…

git 禁止dev合并到任何其他分支

创建 pre-merge-commit 钩子 导航到 Git 仓库的钩子目录: cd /path/to/your/repo/.git/hooks创建或编辑 pre-merge-commit 钩子: 也可以通过指令创建 nano pre-merge-commit在钩子文件中添加以下代码: #!/bin/sh# 获取当前分支名称 curr…

成人职场商务英语学习柯桥外语学校|邮件中的“备注”用英语怎么说?

在英语中,"备注"通常可以翻译为"Notes" 或 "Remarks"。 这两个词在邮件中都很常用。例如: 1. Notes Notes: 是最通用和最常见的表达,可以用在各种情况下,例如: 提供有关电子邮件内容的附加信息 列…

hive中cast()函数

CAST函数用于将某种数据类型的表达式显式转换为另一种数据类型。CAST()函数的参数是一个表达式,它包括用AS关键字分隔的源值和目标数据类型。 语法:CAST (expression AS data_type) expression:任何有效的SQServer表达式。 AS:用…

软降工程学系统实现

一、程序编码 程序编码是设计的继续,将软件设计的结果翻译成用某种程序设计语言描述的源代码。 程序编码涉及到方法、工具和过程。 程序设计风格和程序设计语言的特性会深刻地影响软件的质量和可维护性。 要求源程序具有良好的结构性和设计风格。 程序设计风格…

2024.7.2作业

1. 梳理笔记(原创&#xff01;&#xff01;&#xff01;) 2.解析代码&#xff1a;分析每一步变量的取值 #include <stdio.h> int main(int argc, char *argv[]) { int a 10; //a10 int b a--; //b10 int c a b 2; //a9 b10 c21 int d (b--…

VisualRules组件功能介绍-计算表格(二)

本章内容 1、计算表格数据回写数据库 2、计算表格数据更新 3、计算表格数据汇总 4、计算表格数据追加 一、计算表格数据回写数据库 计算表格数据回写数据库表。采用遍历计算表格逐条插入数据库表。在具体操作过程可以采用向导方式操作。 先在数据库表中创建tb_user_new表。…

Java语法系列 小白入门参考资料 方法

方法的概念及使用 方法概念 方法出现的原因 在编程中&#xff0c;某段功能的代码可能频繁使用到&#xff0c;如果在每个位置都重新实现一遍&#xff0c;会&#xff1a; 1. 使程序变得繁琐 2. 开发效率低下&#xff0c;做了大量重复性的工作 3. 不利于维护&#xff0c;需要…

Load Tensor to local Nvidia GPU

0. 安装Nvidia驱动 ubuntu24.04的安装非常简单&#xff0c;在安装界面&#xff0c;选择为"图形化和其他硬件安装驱动"&#xff0c;重启后即有原版Nvidia驱动(如图Nvidia X xxx) 1.确定电脑上是否有NvidiaGPU且安装好Nvidia驱动 import torch print(torch.version…

DSSAT作物模建模实践方法

随着数字农业和智慧农业的发展&#xff0c;基于过程的作物生长模型&#xff08;Process-based Crop Growth Simulation Model&#xff09;在模拟作物对气候变化的响应与适应、农田管理优化、作物品种和株型筛选、农业碳中和、农田固碳减排等领域扮演着越来越重要的作用。Decisi…

BMA580 运动传感器

型号简介 BMA580是博世&#xff08;bosch-sensortec&#xff09;的一款先进的、超小型加速度传感器。具有独特的骨传导语音活动检测功能和先进的功率模式功能&#xff0c;是世界上最小的加速度传感器&#xff08;1.2 x 0.8 x 0.55 mm&#xff09;。它专为紧凑型设备&#xff08…

[C++]——同步异步日志系统(1)

同步异步日志系统 一、项⽬介绍二、开发环境三、核心技术四、环境搭建五、日志系统介绍5.1 为什么需要日志系统5.2 日志系统技术实现5.2.1 同步写日志5.2.2 异步写日志 日志系统&#xff1a; 日志&#xff1a;程序在运行过程中&#xff0c;用来记录程序运行状态信息。 作用&…

OpenSSH远程代码执行漏洞 (CVE-2024-6387)

1. 前言 OpenSSH是一套基于安全外壳&#xff08;SSH&#xff09;协议的安全网络实用程序&#xff0c;它提供强大的加密功能以确保隐私和安全的文件传输&#xff0c;使其成为远程服务器管理和安全数据通信的必备工具。 OpenSSH 自 1995 年问世近 20 年来&#xff0c;首次出现了…

基于STM32的卫星GPS路径记录仪

目录 引言环境准备卫星GPS路径记录仪基础代码实现&#xff1a;实现卫星GPS路径记录仪 4.1 数据采集模块4.2 数据处理与分析4.3 存储系统实现4.4 用户界面与数据可视化应用场景&#xff1a;路径记录与分析问题解决方案与优化收尾与总结 1. 引言 卫星GPS路径记录仪通过使用STM…