精华内容
下载资源
问答
  • 1.何为同步时钟,何为异步时钟 当两个时钟间的相位是固定关系...因此可以将主时钟和与之对应的衍生时钟约束成同一个时钟组。 无法判定两个时钟间相位时,则可以称这两个时钟为异步时钟(asynchronous clocks)。两...

    1.何为同步时钟,何为异步时钟

            当两个时钟间的相位是固定关系的,则可以称这两个时钟为同步时钟(synchronous clock)。一般同源,如由同一个MMCM or PLL产生的两个时钟可以称为同步时钟。因此可以将主时钟和与之对应的衍生时钟约束成同一个时钟组。

            无法判定两个时钟间相位时,则可以称这两个时钟为异步时钟(asynchronous clocks)。两个来自不同晶振的时钟,一定是异步时钟。通常情况下设计中不同的主时钟肯定是异步时钟,因此可以将这两个主时钟及其衍生时钟约束成不同的时钟组

    2.如何划分clk grop

            两个有分频关系的同源时钟 可以认为是同步时钟域,也可以认为是异步时钟域 认为是异步时钟域之后放在不同的clk group,clk domian之间需要异步处理,但不需要分析静态时序;

            如果作为同步时钟域,可以做异步处理也可以不做异步处理,做异步处理之后相应的时序路径设为falsePath可以不去分析sta。不做异步需要下SDC并由后端保证时序(调相位,设multicycle等)。之所以能作为同步时钟域是因为无论整数分频还是分数分频,同源时钟的相位都是固定的在时序处理时就可以固定调相位。

            异步时钟只能划分到不同的group,异步时钟域之间的信号不做sta分析

     

    3.参考链接

    这样的问题怎么加约束啊

    【 Vivado 】时钟组(Clock Groups)

    展开全文
  • **什么是设置伪路径?**伪路径是指该路径存在,但该路径的电路功能不会发生或者无须时序约束。 创建伪路径的好处:可以减少工具运行优化时间,增强实现结果,避免在不需要进行...在异步时钟的位置右击选择设置伪路径即

    **什么是设置伪路径?**伪路径是指该路径存在,但该路径的电路功能不会发生或者无须时序约束。
    创建伪路径的好处:可以减少工具运行优化时间,增强实现结果,避免在不需要进行时序约束的地方花费较多时间。
    设置伪路径一般用在:①跨时钟域,②一但上电就被写入数据的寄存器,③异步复位或测试逻辑,④异步双端口RAM。总结:伪路径主要就是用在异步时钟的处理上。

    **注意的是:**伪路径的设置是单向的,如果两时钟之间存在相互的数据传输,则需要再反向设置一次伪路径。
    举例如何设置伪路径:
    在这里插入图片描述
    在异步时钟的位置右击选择设置伪路径即可。
    而关于异步复位的为路径设置直接代码,set_false_path -from [get_ports rst_pin]即可。

    设置异步时钟:当两个异步时钟之间有数据交互时需要设置异步时钟,
    例如:set_clock_groups -asynchronous -group [get_clocks clk_samp] -group [get_clocks clk2]

    展开全文
  • IC设计中经常会遇到多时钟域的情况,最...给出一个信号在不用时钟域下同步处理时序如下图,实际上这种处理只需要在异步时钟的情况下才需要,如果是同源时钟则不需要,用综合工具做好约束,DC会在综合时做好处理,优...

    IC设计中经常会遇到多时钟域的情况,最常见就是总线接口一个时钟,模块工作一个时钟(两个异步时钟),这时候数据通过总线到达模块内部在被模块工作时钟采样前需要做下同步处理,这样可以保证信号正确的被采样,不至于在时序仿真时寄存器出现亚稳态状况,给出一个信号在不用时钟域下同步处理时序如下图,实际上这种处理只需要在异步时钟的情况下才需要,如果是同源时钟则不需要,用综合工具做好约束,DC会在综合时做好处理,优化好时序。

    设计目的是将来自源时钟域sclk的start信号和数据data同步到目的时钟域dclk,注意到sclk和dclk是异步时钟,为了保证start信号能够被dclk正确采样,首先需要将start信号延长(data_avail_nxt),在源时钟域sclk下同步一级(data_avail),然后两级同步到目的时钟域dclk(sync_data_avail),这时候start信号已经可以被目的时钟域dclk正确采到,再将sync_data_avail在dclk下同步一级,输出其上升沿信号(sync_data_ed)给dclk使用。sync_data_avail可以作为dclk的ack告诉源时钟域sclk同步已完成,可以进行下一个数据的同步了,ack来自dclk,要过渡到sclk需要在sclk下同步两级,然后再采其边沿,作为同步完成握手信号给sclk使用,busy信号作为同步正在进行的标志,在sclk检测到start后开始,检测到finish后结束。

    功能框图如下:

     

    转载于:https://www.cnblogs.com/kxk_kxk/archive/2010/12/25/1916435.html

    展开全文
  • 今天的主题是异步电路的跨时钟域处理。首先需要强调的是,本文提到的异步电路,指的是由没有特定相位关系的时钟驱动的同步系统之间的交互。除此之外,还有一种比较小众的设计也叫异步电路设计,该设计的系统是没有...
    7104c411d82abf9ce90457f66b0db126.gif点击蓝字关注我们8143f07f6a42d1826fe6163edd05e8ac.gif大家好,我是L.L.,欢迎来到数字ic自修室。今天的主题是异步电路的跨时钟域处理。首先需要强调的是,本文提到的异步电路,指的是由没有特定相位关系的时钟驱动的同步系统之间的交互。除此之外,还有一种比较小众的设计也叫异步电路设计,该设计的系统是没有任何全局时钟驱动的,信号的传输都是基于握手完成。此类设计不在本文讨论范围之内,后续会有另外的文章介绍。8143f07f6a42d1826fe6163edd05e8ac.gif

    关于异步电路,是面试里被问的最多的部分,网上也有很多很多的总结文章。这里有两个原因。第一,这是一种比较成熟的通用设计手段,电路结构也比较经典。第二是因为这块设计在项目中真的很重要。

    那么为什么重要呢?从功能角度来说,比起同步系统中各种功能的设计可以通过eda验证保证,异步交互模块处理跨时钟域信号传输这个功能是没办法通过rtl仿真用例测试其正确性的。而在物理实现的时候,因为异步电路时钟没有固定相位关系,无法像同步电路一样通过时钟关系去约束路径走线,也需要被特别对待。这些特殊性决定了异步电路需要设计人员对其结构功能有一个更正确和完善的认识,这样才能在rtl阶段及时识别需求,做好review工作,并通过cdc检视设计的正确性,以及对后端物理实现人员提出合理的约束需求。当然有条件的还是需要做fpga原型验证和后仿,来增加设计的可靠性,因为cdc和代码review这些都仅仅是从设计本身的角度进行确认,只有fpga和eda后仿真可以提供一个真实运行结果的确认。

    这篇文章将分几个角度概括性地归纳总结异步电路跨时钟域一些比较重要的概念和处理方法,后续文章中将对不同的跨时钟域同步器结构再一一进行展开介绍。因为这些概念和处理方法已经被翻来覆去总结过无数次了,可能大家也都很熟悉了。

    1

    异步电路的界定

    异步电路不能根据时钟是否同源来界定,时钟之间没有确定的相位关系是唯一准则。比如同一个时钟源如果经过pll分出33MHZ和50MHZ 的两个时钟,他们的相位关系会时钟变化的变化,那么他们驱动的电路也属于异步电路。

    2

    跨时钟域处理不当的危害和解决方案

    1. 亚稳态

     异步系统交互时会出现亚稳态,如果直接使用亚稳态信号,或者因处理不当导致其传播,会使整个系统结果不可预期。合理的异步电路同步器设计可以有效降低亚稳态出现的概率,但其是不可能被完全消除的。而亚稳态出现的概率和器件工艺,时钟频率,信号频率和同步器结构都有关系。

    解决方案:

    1. 使用合适的同步器,包括但不限于:1bit多级打拍同步(电平信号,脉冲信号),多bit格雷码转换打拍同步,多bit Dmux同步,握手协议同步,异步FIFO同步。

    2. 若是打拍同步,需要根据工艺以及频率选择合适的打拍级数

    2. 毛刺

    异步系统交互时如果上游模块有信号毛刺,不当的处理会使其传播并被下游异步模块采样,可能会导致下游功能错误。同步系统内有setup检查保证毛刺在被采样前有足够的时间的消除,而异步电路只能靠设计保证毛刺不被传播和误采样。

    解决方案:

    1. 上游待同步信号寄存器输出过滤毛刺

    2. 待同步信号的输出寄存器和同步器之间不能存在任何组合逻辑

    3. 漏采、误采

    异步系统交互时如果处理不当,可能会造成下游对传播信号漏采样或者误采样。

    解决方案:

    1. 明确系统间的频率关系,采用合适的同步器

    2. 单bit待采集信号要进行位宽确认和拓展(快->慢),一般要保证信号宽度大于采集时钟加上一个margin(依据经验而定,来源是采集时钟域的setup,hold,skew,jitter等)

    3. 多bit信号不能直接打拍采样,通过格雷码或者握手,异步fifo等其他结构的同步器。

    4. 再汇集

    有相互关系的上游信号经过了异步处理之后到达另一个时钟域的时间是不可预期的,那么他们再次汇聚的时候会出现与预期功能不一致的错误。这又被称为再收敛(reconverge)错误。

    解决方案:

    1. 多个1bit信号待同步时,必须在原时钟域完成组合汇聚和寄存处理,不能分别同步到另一个时钟域再汇聚

    2. 同源信号复制跨时钟域时,需要先进行跨时钟域,再进行复制。

    5. 异步复位

    如果处理不当或者没有做好相应时序检查,复位功能会有问题。

    解决方案:

    1. 采用稳定的复位逻辑单元(普遍使用经典的异步复位同步释放结构)

    2. 做好recovery-removal检查

    3. 保证对接模块的异步复位不相互影响

    3

    异步电路跨时钟域的设计检查

    1. 明确设计规格,做好代码review

    2. 做好Clock-Domain-Crossing(CDC)检查

    3. 有条件的做好FPGA,EMU和后仿检查确认

    以上便是异步电路跨时钟域设计的一些总结,希望抛转引玉,得到更多有价值的经验谈。

    今天就到这里,欢迎大家继续关注我们后续文章。

    本文作者 | L.L.

    ● 欢迎转发,转载请注明出处,原创文章可后台联系我们开白。

    彩 蛋

    ▼ 扫码备注入群,数字IC自修室欢迎你!

    7ee2a2b8b333bda04a2193aeb50a1fef.png

    d95df0868b8e80e8eb767a466a46841b.png

    我就知道你“在看”b5f1b933dd8b951fdda8ce7186f77f50.gif
    展开全文
  • 在Vivado中通过set_clock_groups来约束不同的时钟...-asynchronous应用于异步时钟,如下图所示,CLKA和CLKB由两个外部独立的晶振提供,那么跨时钟域路径即REGA到REGB0之间的路径可采用如下约束:create_clock–name...
  • 只要满足建立时间,保持时间的约束,可以保证在时钟上升沿到来时,输入信号已经稳定,可以采样得到正确的值。但是如果模块需要使用输入信号的跳变沿(比如帧同步信号),千万不要直接这样哦。 always @ (posedge ...
  • Vivado中set_clock_groups时钟约束的使用

    万次阅读 2018-01-27 22:06:00
    一、命令格式 ... -asynchronous :顾名思义,时钟异步不相关的,时钟有完全不同的时钟源  -exclusive :时钟是互斥的,即时钟不会再同一时刻同时有效  实际上,这两个选项的效果是完全一样的。
  • 来自:https://blog.csdn.net/wordwarwordwar/article/details/79183663一、命令格式 set_clock_groups [-asynchronous]...二、选项说明 -asynchronous :顾名思义,时钟异步不相关的,时钟有完全不同的时钟源 ...
  • 上期内容:如何查看可综合C代码的中间结果单bit异步时钟域电路同步跨时钟域电路,由于时钟之间有明确的相位关系,可通过时序约束明确建立时间需求,保证电路正常工作。异步时钟域电路,由于发送时钟与接收时钟...
  • 以下想约束异步时钟的时钟组特性。注意事项:FCLK的名字在综合时不可见,在适配阶段才可见,所以对于约束文件的属性需要选择只在适配阶段有效,否则综合时报警告(感觉无伤大雅)。但PL中又有别的时钟,与FCLK是异步...
  • 此刻开始我们一起进步!...但是,针对于异步FIFO的约束问题,还是非常值得深究的。是否异步FIFO就是完全可以异步处理呢?接下来就跟大家一起分析一下。02 分类我们在实现异步FIFO时,比较常见的有两...
  • 以下想约束异步时钟的时钟组特性。 注意事项:FCLK的名字在综合时不可见,在适配阶段才可见,所以对于约束文件的属性需要选择只在适配阶段有效,否则综合时报警告(感觉无伤大雅)。 但PL中又有别的时钟,与FCLK...
  • 数字设计中的时钟约束 </div> ps:可以转载,转载请标明出处:http://www.cnblogs.com/IClearner/   最近做完了synopsys的DC workshop,涉及到时钟的建模/约束,这里就来聊聊数字中的时钟(与建模)吧...
  • Vivado时钟分组约束的三类应用

    千次阅读 2018-01-27 22:12:21
    在Vivado中通过set_clock_groups来约束不同的时钟组,它...-asynchronous应用于异步时钟,如下图所示,CLKA和CLKB由两个外部独立的晶振提供,那么跨时钟域路径即REGA到REGB0之间的路径可采用如下约束: create_cl
  • 时钟复位与时序约束

    2018-01-15 09:50:08
    讲解同步时钟复位以及异步复位的技术,图示给出约束中需要注意满足的一些时间关系。
  • 涉及到时钟的建模/约束,这里就来聊聊数字中的时钟(与建模)吧。主要内容如下所示:  ·同步电路与异步电路;  ·时钟/时钟树的属性:偏移(skew)与时钟的抖动(jitter)、延时(latency)、转换(transition)...
  • 芯片设计中的时钟约束

    千次阅读 2019-11-19 11:09:49
    1、同步电路与异步电路  首先来谈谈同步电路与异步电路。那么首先就要知道什么是同步电路、什么是异步电路?  对于同步时序电路,不同的文章有不同... ·所有寄存器都接收同一个时钟电路;  ·若有环路,则环...
  • 来自:http://xilinx.eetrend.com/blog/9564在Vivado中通过set_clock_groups来约束不同的时钟组,它有三个...-asynchronous应用于异步时钟,如下图所示,CLKA和CLKB由两个外部独立的晶振提供,那么跨时钟域路径即RE...
  • 之前组内讨论时发现,每回PT工具报出来的STA报告都会有很多异步时钟的path出现violation,这些path都做过CDC同步,因此在function上没有问题,有问题的是对于报出的violation该怎么样设置STA约束。以前的做法是,...
  • 如果设计中有异步时钟,就需要用命令把异步时钟分组并定义出来。 1.一般来说,由不同时钟源(晶振)产生的,时钟之间无法保证对应关系的时钟,必然属于异步时钟; 2.有同一个时钟源并且由同一个PLL产生的,不同分频...
  • 7 FPGA时序约束实战篇之梳理时钟

    千次阅读 2020-01-29 12:40:40
    为了引入异步时钟域,我们在此程序上由增加了另一个时钟–clkin2,该时钟产生脉冲信号pulse,samp_gen中在pulse为高时才产生信号。 下面我们来一步一步进行时序约束。 1. 梳理时钟树   我们首先要做的就是梳理...
  • DC综合约束012_异步FIFO中的格雷码设置max_delay 1、异步fifo中格雷码约束 为了保证异步fifo的功能和性能保证,需要在综合约束文件sdc中,约束异步FIFO格雷码的最大延时。约束如图所示:从格雷码寄存器的时钟端口-...
  • 本文是对《How do I reset my FPGA?》的翻译在 FPGA 设计中,...全局复位引脚与任何其它输入引脚类似,对 FPGA 来说往往是异步的。设计人员可以使用这个信号在 FPGA 内部对自己的设计进行异步或者同步复位。不过在一...
  • 为了保证Vivado优化到关键路径,我们必须要理解时钟之间是如何相互作用,也就是同步和异步时钟之间是如何联系。 同步时钟是彼此联系的时钟。例如,由MMCM(混合时钟管理单元)或PLL 生成的两个相同周期的时钟
  • 异步复位信号rst怎么加约束

    千次阅读 2019-05-21 10:07:17
    设置false path从所有的reset信号端口到所有的时钟端口,还有其它的reset的信号,如果你有几个reset信号的话! RTL代码综合时要根据经验值预设的,recovery和removal的值,跑PT的时候先检查这些满足希望达到的值...

空空如也

空空如也

1 2 3 4 5 6
收藏数 107
精华内容 42
关键字:

异步时钟约束