0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

如何解决芯片在正常工作状态下经常出现的亚稳态问题?

FPGA之家 来源:FPGA之家 作者:FPGA之家 2020-10-22 18:00 次阅读
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

本文是一篇详细介绍ISSCC2020会议上一篇有关亚稳态解决方案的文章,该技术也使得FPGA在较高频率下的时序收敛成为了可能。亚稳态问题是芯片设计和FPGA设计中常见的问题,随着FPGA的发展,时序问题已经成为一个越来越难的挑战。单bit线网和逻辑通路扇出在巨大的芯片上扩散,而布线资源有限,这使得传统的时序收敛成为一场噩梦。在同步设计上实现时序收敛的传统技术一个接一个地碰壁,未能实现规模化。

Xilinx和Achronix在其新一代FPGA中解决了这一问题,在传统的逻辑和布线结构的基础上增加了片上网络(NoC)。NoC本质上改变了游戏规则,因为整个芯片不再需要在一个巨大的神奇汇流中实现时序收敛。现在,更小的同步块可以通过NoC传递数据,减轻了传统布线结构的负担,并将原来巨大的设计自动化工具问题分解成更小的、可管理的块。在进行NoC布线的两家供应商中,Xilinx和Achronix中,Achronix声称通过其二维跨芯片AXI实现了最快的NoC。NoC中的每一行或每一列都实现为两个工作在2 Ghz的256位单向AXI通道,同时在每个方向上提供512 Gbps数据流量。Speedster的NoC总共有197个端点,产生27 Tbps的聚合带宽,比FPGA的传统按位布线资源少了很多。

本文从一篇芯片设计顶会(ISSCC2020)文章中设计的一款解决低电压亚稳态问题的同步器作为着眼点,试图还原NoC架构引入FPGA芯片后对FPGA的时序收敛起到积极作用的全过程。报告视频非常精彩,深入浅出,环环相扣,娓娓道来。欢迎大家留言讨论。

昨天刚结束的ICAC2020线上会议,高峰期在线人数高达1.6万人,笔者有幸抽空听了半个下午,其中完整的听完了本文中所提到的亚稳态相关的一个会议。该报告是由上海交通大学的何卫锋博士做的,有关ICAC2020的详细信息请搜索微信“ICAC Workshop”详细了解。

报告相关文章的信息: Chuxiong Lin, Weifeng He, Yanan Sun, Zhigang Mao, Bingxi Pei, Mingoo Seok, “A Near-Threshold-Voltage Network-on-Chip with a Metastability Error Detection and Correction Technique for Supporting a Quad-Voltage/Frequency-Domain Ultra-Low-Power System-on-a-Chip,” IEEE International Solid-State Circuits Conference (ISSCC), 2020. 完整报告视频如下(25分钟):

随着物联网机器人无人机、可穿戴/植入设备等低功耗便携式设备越来越普及,超低功耗SoC芯片技术也面临着越来越大的挑战。为了降低这些SoC芯片的功耗,人们提出了如上图所示的各种技术。其中,近阈值低电压技术就是其中最受关注的一种。在超低电压下,可以很大程度的降低芯片的功耗,但随之带来了可靠性降低的代价。在上述SoC芯片中,往往具有多个电压频率域。由于超低电压下工艺等因素带来的任意两个时钟之间相位关系的不确定性,导致芯片在正常工作状态下经常会出现亚稳态问题。 什么是亚稳态?

当一个信号从Tx时钟域传递到Rx时钟域时,因为Tx_clk和Rx_clk时钟信号相位的不确定性,就有可能会造成数据信号D的上升沿会落在Rx_clk时钟上升沿的变化范围内,如果D信号的翻转(上升沿或下降沿)和Rx_clk的上升沿(采样沿)靠的足够近的时候,就会造成了采样出来的信号Q会出现非0非1的中间状态,如果信号Q这种非0非1的状态持续时间超过了Rx_clk的时钟周期,我们就称Q信号的这种非0非1的状态是亚稳态。

传统解决亚稳态的方法是采用上图中“打两拍”同步器的方法。这种方法可以有效的降低出现亚稳态的几率,但不能完全避免出现亚稳态的情况。随着电压的降低,亚稳态出现的几率越来越大。而传统的同步器无法解决上图中同步器的输入端出现亚稳态的情况,因此文章就提出了一种能够解决同步器输入端出现亚稳态情况的方案。 芯片中跨时钟域信号的解决方法就是加同步器,一个同步器不行,那就再加一个。 亚稳态窗口

以接收时钟沿为基准,以接收端时钟Tclk的频率作为将数据从亚稳态到稳定状态的一个分辨时间。当数据D的翻转在上图中黄色的亚稳态的窗口之内时,意味着同步器是无法在一个时钟周期内将D信号从亚稳态恢复为稳定状态。而对应的黄色区域的这个窗口,就称为是亚稳态窗口。 作者采用蒙特卡洛仿真了一下在65nm工艺下,电压从1.5V降低到0.4V的过程中,亚稳态问题出现的几率增大了11倍。

作者提出了上图中双采样的比较电路,可通过调整Rx_clk和Rx_clkd中间的相位差Wi,分成了五种情况来说明是否出现了亚稳态的情况。进而对如何控制亚稳态的出现进行评估和分析。 如果出现了亚稳态,可以要求发送端再重传一次信号,但无法从根本上解决亚稳态问题,亚稳态问题还是会过一段时间后再次出现。为了从根本上解决出现亚稳态的问题,定义了下图中两次亚稳态出现的时间间隔TTM。降低电路中出现亚稳态出现的概率,就相当于是增大TTM的值。

为了增大TTM的值,可以考虑采样时钟上升沿与被采样数据翻转沿的相位偏差,根据这个偏差可以将电路出现亚稳态的概率分类为Class-A和Class-B,还得到一个这两种状态下相位偏差的阈值。这样整个问题就转换为想办法当相位偏差处在Class-B的时候,想办法将其相位偏差转换到Class-A状态。

因此,解决办法就是在同步器电路中添加移相器。始终保证采样时钟上升沿与被采样数据翻转沿的相位偏差处在Class-A的状态。作者设计了一个叫MEDAC的同步器单元,可以自动检测到是否即将出现亚稳态并实时对相位偏差进行调整。工作原理如下:当电路通过计数器TTM Timer发现该计数器的值小于了上图中的TTM阈值时,Phase selector模块就会驱动Phase shifter去调整Rx_clkd信号与Tx_data之间的相位偏差,使其相移偏差从Class-B状态转换到Class-A状态。从而降低了电路出现亚稳态的风险。

把MEDAC同步器单元应用于异步FIFO中。

再把该异步FIFO应用于一款四个Router的NOC芯片中。

NoC芯片的结构和芯片图如下:

在测试了4G个数据包后,得到了很好的测试结果。在1V电压下,亚稳态出现的概率下降了几十倍,在0.4V电压下,亚稳态出现的概率下降几千倍。很好的解决了亚稳态问题。

原文标题:带有同步器的NoC结构是解决FPGA高速时序收敛的关键原因吗?

文章出处:【微信公众号:FPGA之家】欢迎添加关注!文章转载请注明出处。

责任编辑:haq

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • FPGA
    +关注

    关注

    1665

    文章

    22587

    浏览量

    641145
  • 芯片
    +关注

    关注

    463

    文章

    54704

    浏览量

    471366
  • 电路
    +关注

    关注

    173

    文章

    6094

    浏览量

    179196

原文标题:带有同步器的NoC结构是解决FPGA高速时序收敛的关键原因吗?

文章出处:【微信号:zhuyandz,微信公众号:FPGA之家】欢迎添加关注!文章转载请注明出处。

收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    LTM8055两路并联模式,输出异常

    0.62V,正常的板子VIOUTMON引脚电压0.43V。出现问题的板子VIOUTMON引脚电压偏高;2.空载状态下正常板子的功耗5.8W,异常板子功耗6.4W,
    发表于 05-26 17:42

    ADN4650输入不稳态时,输出信号宽度800ns 分析一机理

    偶尔出现800ns脉冲展宽的信号 请帮忙分析一ADN4650为什么会出现输入不稳态,输出信号展宽800ns的情况,帮分析一机理
    发表于 05-21 06:36

    连接状态正常,相位差依然存在

    ——当“通路”掩盖了“节奏错位” 你将多台DisplayPort显示器、音频接口或采集设备接入主机。 系统识别顺利,驱动加载成功,画面显示、声音播放、数据流稳定——连接状态正常,一切看似完美
    的头像 发表于 04-16 17:00 420次阅读

    PMOS管在关闭状态下Vgs和Vds过压损坏分析

    PMOS通常用在高端开关、源极接电源、栅极驱动电压相对源极为负,且工作在关闭状态下电压应力最大,容易导致Vgs过压(栅源击穿)、Vds(漏源击穿)。以下分别分析两者被击穿的原因:核心状态:关闭
    的头像 发表于 04-15 15:41 284次阅读
    PMOS管在关闭<b class='flag-5'>状态下</b>Vgs和Vds过压损坏分析

    高温工作寿命测试的失效机制与结果判断

    高温工作寿命测试(High Temperature Operating Life,简称HTOL)是评估芯片长期可靠性的核心测试方法。该测试通过模拟芯片在高温、高压等极端环境的持续
    的头像 发表于 04-14 09:19 1017次阅读
    高温<b class='flag-5'>工作</b>寿命测试的失效机制与结果判断

    深度解析医疗设备安全防护策略

    为什么IEC 60601标准不仅关注医疗设备在正常工作状态下的表现,还关注其在单一故障状态下的行为?
    的头像 发表于 04-09 09:50 9144次阅读
    深度解析医疗设备安全防护策略

    霍尔芯片在玩具车中的应用

    霍尔芯片在玩具车里的 4 大核心用途  1. 遥控车 / 四驱车:电机换向、测速(最常见) 玩具车的直流有刷电机里,经常内置线性霍尔 / 霍尔开关: • 检测电机转子磁极位置 • 实现电子换向
    的头像 发表于 03-08 11:48 1229次阅读
    霍尔<b class='flag-5'>芯片在</b>玩具车中的应用

    如何判断一次消谐器是否工作正常

    判断一次消谐器是否正常,其实就看它有没有“扛住”系统电压、及时“泄放”谐振能量,同时自己保持“健康”状态。核心方法是‌外观检查、电气参数测试和运行状态观察‌三管齐
    的头像 发表于 01-22 10:27 435次阅读
    如何判断一次消谐器是否<b class='flag-5'>工作</b><b class='flag-5'>正常</b>?

    深度休眠状态下外部所有的IO都可以唤醒MCU吗?

    深度休眠状态下,外部所有的IO都可以唤醒MCU吗?
    发表于 12-04 06:00

    KT6368A蓝牙芯片在广播间隙导致的电源抖动引起mcu被唤醒说明

    客户咨询KT6368A 蓝牙芯片在1.5s 广播间隔的低功耗模式,每 1.5s 出现一次电源 “打嗝” 现象是否正常,文档说明该现象因芯片
    的头像 发表于 11-26 20:55 836次阅读
    KT6368A蓝牙<b class='flag-5'>芯片在</b>广播间隙导致的电源抖动引起mcu被唤醒说明

    霍尔芯片在智能马桶中的应用

    霍尔芯片在智能马桶中主要承担非接触式检测与控制功能,核心应用集中在水流、翻盖、座圈和冲洗等关键模块,是实现 “智能感应” 和 “精准控制” 的核心元器件之一。 其工作原理基于霍尔效应:当电流垂直于外
    的头像 发表于 10-20 16:06 1370次阅读

    高温振动传感器在600°C环境下工作时,输出信号出现周期性噪声干扰,可能的原因有哪些?如何解决?

    高温振动传感器在600°C环境下工作时,输出信号出现周期性噪声干扰,可能的原因有哪些?如何解决?
    的头像 发表于 08-05 10:13 1246次阅读
    高温振动传感器在600°C环境下<b class='flag-5'>工作</b>时,输出信号<b class='flag-5'>出现</b>周期性噪声干扰,可能的原因有哪些?如<b class='flag-5'>何解</b>决?

    VG814 通过DM平台 远程维护LAN口链接的摄像头,经常无法访问,请问什么原因?

    设备:VG814 通过DM平台 远程维护LAN口链接的摄像头,经常无法访问,请问什么原因?应该如何排查?经常出现:.ngrok.iot.inhand.com.cn:83 not found请问这个和浏览器、连接方式、有关系吗?请帮忙给出建议。
    发表于 08-05 06:48

    Cyw20719B2的SPI经常不能正常工作,是什么原因导致的?

    cyw20719b2的SPI1工作于slave模式,外设发送的数据经常不能被cyw20719b2的SPI1正常接收。现象如下: 1)cyw20719b2启动后,如果SPI1第一次接收的数据正常
    发表于 07-08 06:34

    【案例2.36】芯片启动异常的故障分析

    【案例2.36】芯片启动异常的故障分析在某产品的调试中发现,板上核心处理芯片在每次启动后的表现不同,偶尔会出现无法启动的故障。经过几百次反复上下电测试发现,在大多数情况
    的头像 发表于 06-26 08:24 1373次阅读
    【案例2.36】<b class='flag-5'>芯片</b>启动异常的故障分析