首页 > 赛迪观察 > 正文

基于FPGA的跨时钟域分析验证流程的研究

来源:军工处  作者:张宇晨  投稿时间:2017-12-27

  1、引言
 

  FPGA(Field-ProgrammableGateArray),即现场可编程门阵列,它是在PAL、GAL、CPLD等可编程器件的基础上进一步发展的产物。它是作为专用集成电路(ASIC)领域中的一种半定制电路而出现的,既解决了定制电路的不足,又克服了原有可编程器件门电路数有限的缺点。
 

  随着FPGA规模产品规模越来越大,模块化的设计思路逐渐暴露出一个问题:跨时钟域问题。设计者有时候需要将处于两个不同时钟域的系统对接组合成一个新的大系统,由于不同时钟域驱动时钟频率不一致,因此会产生跨时钟域问题。本文简要介绍跨时钟域问题分析方法以及解决措施
 

  2、跨时钟域
 

  芯片设计复杂度越来越高,同时需要高性能和低功耗。设计师们正越来越多地依靠先进的多时钟技术和IP集成,以解决他们的time-to-market的问题。任意设计只要满足以下两条即认为是异步的,但异步不代表一定存在跨时钟域问题,需要具体分析
 

  1.工作在不同的时钟频率上。,如图2-1所示:
 

预览区
 图2-1异步驱动时钟
 

  2.工作在同一驱动时钟上但寄存器见相位不同,也可能会存在跨时钟域问题,如图2-2所示
 

预览区
 图2-2驱动时钟频率相同相位不同

 

  3、跨时钟域分析流程
 

  3.1跨时钟域会引发的问题
 

  跨时钟域会引起亚稳态和不可靠数据传输等问题,因此解决跨时钟域问题的产生实质就是避免和解决亚稳态问题和不可靠数据传输等问题
 

  3.1.1亚稳态
 

  亚稳态是指触发器无法在某个规定时间段内达到一个可确认的状态。当一个触发器进入亚稳态时,既无法预测该单元的输出电平,也无法预测何时输出才能稳定在某个正确的电平上。在这个稳定期间,触发器输出一些中间级电平,或者可能处于振荡状态,并且这种无用的输出电平可以沿信号通道上的各个触发器级联式传播下去。例如:从A时钟域出来的信号A直接进入B时钟域,从图可以看出,如果A信号在B时钟的上升沿发生变化,便会出现不定态.


预览区 
图3-1亚稳态示意图
 

  对任何一种触发器,在时钟触发沿前后的一个小时间窗口内,输入信号必须稳定。这一时间窗口是多种因素的函数,包括触发器设计、实现技术、运行环境以及无缓冲输出上的负载等。输入信号陡峭的边沿可以将此窗口减至最小。随着时钟频率的升高,会出现更多有问题的时间窗口,而随着数据频率的提升,这种窗口的命中概率则会增加。
 

  3.1.2不可靠传输数据
 

  多比特信号联合组成某个含义(如地址信号)的穿越,如果简单的按照单比特信号穿越方法各bit打两拍单独穿越,则会造成各个bit穿越时间不一致,则会造成另一个时钟域里面有一些被前一个时钟沿采到了,有些被后面的采到了,造成中间态无意义的数据,这个数据就是不可靠的数据。
 

  3.2跨时钟域分析测试方法
 

  BluePearl是一款静态时序分析工具,我们通过BluePearl工具进行跨时钟域问题的分析。BluePearl界面如图3-2所示:


预览区 
图3-2 BluePealr整体图
 

  新建工程将被测代码添加到软件中,选择器件类型后点击运行检查按钮。选择器件类型是根据工程代码决定的,不同的开发环境在做跨时钟域分析式选择不同的器件类型。运行检查结果如图3-3所示


预览区 
图3-3检查
 

  点击“Clock Domain Crossing Viewer”查看设计实现中可能存在的跨时钟域问题。如图3-2所示。
 

预览区
 图3-2工具检查出的跨时钟域问题
 

  选择“synchron Type”选项中选择“Unsynchronized”选项即可查看整个工程存在的跨时钟域问题。软件分析出的“Unsynchronized”不完全是问题,因此需要人工进行分析。
 

  时钟不光可以作为寄存器的驱动,还可以作为寄存器输入数据,因此当检测到的跨时钟域问题中包含时钟作为数据输入的,该跨时钟域就不能算作跨时钟域问题。如图3-3、3-4所示:


预览区 
图3-3 跨时钟域问题分析实例

预览区
 图3-4 跨时钟域问题分析实例
 

  如图3-4所示IBUFG输出有两条分叉,一条时钟是红线clk40m作为输出并没有驱动任意一个寄存器,而另外一条80m频率时钟却驱动了ini_checky部分寄存器,因此判定软件检测出的跨时钟域问题不是问题。
 

  当数据传输满足跨时钟域景点模型时,即可判定存在跨时钟域问题。如图3-5所示,ip1_inst与ip2_inst分别是由clk和clk2驱动的,clk和clk2工作频率不一致,因此图3-5中的电路就存在跨时钟域问题。


预览区 
图3-5 跨时钟域问题
 

  3.3跨时钟域问题解决办法
 

  解决跨时钟域问题可以通过在设计过程中添加异步FIFO、握手协议或者电平同步器进行解决。
 

  1)异步FIFO
 

  在现代的集成电路芯片中,随着设计规模的不断扩大,一个系统中往往含有数个时钟。多时钟域带来的一个问题就是,如何设计异步时钟之间的接口电路。异步FIFO(FirstInFirstOut)是解决这个问题一种简便、快捷的解决方案之一。

共2页 |< 首页 < 上一页 1 2 下一页 > 尾页 >|

【上一篇】: 来,了解下数据跨境流动管理    【下一篇】: 智能制造呼吁提升制造业基础能力和水平

  中国电子信息产业发展研究院(赛迪集团)是直属于国家工业和信息化部的一类科研事业单位。成立二十多年来,一直致力于面向政府、面向企业、面向社会提供研究咨询、评测认证、媒体传播与技术研发等专业服务。形成了政府决策与软科学研究、传媒与网络服务、咨询与外包服务……[详细]

赛迪专家更多

孙会峰:算力即权力

2018年3月22日,主题为“人工智能开启数字经济..

辛鹏骏:今年通信设备市场究竟怎么样

日前一则新闻引起业界关注。行业领头羊华为公司下调2..

赛迪机构

咨询业 媒体业 评测业 信息技术服务业 会展培训业 其他(分支机构)