首页 > 其他分享 >FPGA时序入门(新手必看)

FPGA时序入门(新手必看)

时间:2022-12-07 20:31:08浏览次数:42  
标签:同步 必看 FPGA 时序 约束 输入 时钟

1. FPGA时序的基本概念

FPGA器件的需求取决于系统和上下游(upstream and downstrem)设备。我们的设计需要和其他的devices进行数据的交互,其他的devices可能是FPGA外部的芯片,可能是FPGA内部的硬核。

FPGA时序入门(新手必看)_寄存器

对于FPGA design来说,必须要关注在指定要求下,它能否正常工作。这个正常工作包括同步时序电路的工作频率,以及输入输出设备的时序要求。在FPGA design内部,都是同步时序电路,各处的延时等都能够估计出来,但是FPGA内部并不知道外部的设备的时序关系。所以,TIming constraints包括输入路径(Input paths )
寄存器-寄存器路径(Register-to-register paths )
输出路径(Output paths )
例外(Path specific excepTIons )这正好对应了上图中三个部分,Path specific excepTIons 暂时不提。
Input paths对应的是OFFSET IN约束,即输入数据和时钟之间的相位关系。针对不同的数据输入方式(系统同步和源同步,SDR和DDR)有不同的分析结果。
Register-to-register paths 对应的是整个FPGA design的工作时钟。如果只有一个时钟,那么只需要指定输入的频率即可。如果有多个时钟,这些时钟是通过DCM,MMCM,PLL生成的,那么显然ISE知道这些时钟之间的频率、相位关系,所以也不需要我们指定。如果这些不同的时钟是通过不同的引脚输入的,ISE不知道其相位关系,所以指定其中一个为主时钟,需要指定其间的相位关系。
Output paths对应的是OFFSET OUT 约束,和OFFSET IN约束很类似,不过方向相反。

2.输入时序约束


The input TIming constraints cover the data path from the external pin or pad of the package of the FPGA device to the internal synchronous element or register that captures that data.
输入时序约束控制外部引脚到内部模块的路径。采用OFFSET IN来指出输入时序约束。也就是说OFFSET IN定义了时钟沿河被采集数据的关系(相位)。这里我们关心两类不同的输入方式,系统同步输入和源同步输入。(对于SDR和DDR,即单数据速率和双数据速率而言,区别只在于一个时钟周期的采样次数,不做说明)System Synchronous inputs
系统同步输入,指由同一时钟传输和捕获数据,如下图所示。

FPGA时序入门(新手必看)_时序约束_02

上图可以看出,FPGA和输入源设备是同源的,共用一个系统时钟。这一个系统时钟在源设备触发输出数据,同时还作为FPGA的时钟接收输入的数据。因此源设备只需要提供输入的数据就可以了。
Source synchronous inputs
源同步如下图所示(这里是DDR,同时在上升沿和下降沿采样)

FPGA时序入门(新手必看)_时序约束_03

源同步和系统同步的最大区别在于源设备(Source Device)在输出数据的同时,输出了一路和数据同步的时钟。FPGA采用这一路时钟来进行数据的采样。
这两种输入方式看起来有很大的差别,但是OFFSET IN约束的写法是一致的,后文将详细明。3.寄存器-寄存器的时序约束

寄存器-寄存器的约束,在同步时序电路中,就是周期的约束。对于完全采用一个时钟的电路而言,对这一个clk指定周期约束即可。但是如果采用了多个时钟,那么情况就复杂了。多个时钟中的“多个”,可能由DCM等倍/分频得到,也有可能FPGA外部就引入了两个时钟信号,还有可能是其他情况。这里Xilinx将其分成了以下几类自动相关同步时钟域
手动相关同步时钟域
异步时钟域
自动相关同步时钟域(DLL,DCM,PLL,MMCM)
因为它是自动的,从字面意思上看就是自动分析。当我们例化了一个DCM,DCM的输入输出信号之间的关系就已近确定了,譬如频率关系和相位关系。当指定了DCM输入时钟的频率和相关信息之后,再去指定输出的相对关系就有画蛇添足的感觉了,因为这些关系以及在生成DCM的时候确定了。对于PLL,MMCM来说也是一样的。
手动相关同步时钟域
对应上文的“自动”,这里的“手动”指需要人为指定时钟之间的关系。在什么情况下,ISE套件无法知道时钟之间的关系?如果两组时钟都是由FPGA外部引入的,那么它们之间的相位关系是未知的,需要认为指定。时钟之间的相位关系都是相对的,因此这个过程需要指定一个主时钟,之后定义其他时钟和主时钟之间的相对相位关系。
NET “PrimaryClock” TNM_NET = “TNM_Primary”;
NET “RelatedClock” TNM_NET = “TNM_Related”;
TIMESPEC “TS_primary” = PERIOD “TNM_Primary” PeriodValue HIGH HighValue%;
TIMESPEC TS_related” = PERIOD “TNM_Related” TS_Primary_relation PHASE value;
异步时钟域
xilinx无法分析,具体咨询明德扬资深老师
4.输出时序约束

输出就是输入的逆,因此分析的过程是类似的,分类也是类似的。针对时钟的不同,有系统同步和源同步两种。此处不再详细说明。
系统同步SDR

FPGA时序入门(新手必看)_时序约束_04

源同步DDR(一般来说不给约束就可以)

FPGA时序入门(新手必看)_数据_05


5. 综上所述:

时序收敛的目的是让FPGA design 按预设的逻辑正常的工作。为了使其正常工作,需要考虑至少三处:FPGA内部的寄存器-寄存器时序要求,FPGA输入数据的时序要求,FPGA输出信号的要求。


标签:同步,必看,FPGA,时序,约束,输入,时钟
From: https://blog.51cto.com/u_14636286/5919808

相关文章

  • 明德扬专业定制FPGA开发板
    *产品定制提供软硬件定制服务:FPGA板卡定制;核心板模块定制;FMC等子板模块定制;FPGA全栈设计服务:FPGA系统设计从高速硬件或HDL固件,从技术参数和实现到原型和量产;信号测量......
  • Xilinx FPGA的4G通信网数据分析系统的设计
    XilinxFPGA的4G通信网数据分析系统的设计https://wenku.baidu.com/view/8200e4106bd97f192279e910.html?_wkts_=1670372707464&bdQuery=Xilinx4g+lte......
  • 【杂记】04:FPGA
    【如何才算学会了FPGA?】https://www.bilibili.com/video/BV1KP411M7CU如何才算是学会了?独立、不参考书本代码的情况下,完成所有实例,才算是入门FPGA。学FPGA需要有电路基础,模......
  • 基于Xilinx FPGA的以太网接口的链接状态获取方法
    链接状态:pg138-axi-ethernet.pdf  《AXI1G/2.5GEthernetSubsystemv7.2》Figure2-38:PCSPMATEMACStatusRegister(0x0000_0030)比特位:PhyLinkStatuspg051-tri-......
  • 学习FPGA,就业范围有哪些方面?
    部分FPGA学习爱好者在转入这一行业之前,都会发出这么一个疑问,学习FPGA,就业如何,就业的范围和前景如何?有没更具体一点的分享和讲述?其实,想要一个更具体的岗位描述,有个简单快捷的......
  • 2_ZYBO FPGA 按键控制蜂鸣器 key_beep=>key_led
    问题与思路使用按键控制蜂鸣器发声。初始状态为蜂鸣器鸣叫,按下开关后蜂鸣器停止鸣叫,再次按下开关,蜂鸣器重新鸣叫按键抖动:按键消抖:系统框图:消抖方式输入key的按......
  • 《DFZU2EG_4EV MPSoc之FPGA开发指南》第七章 Verilog HDL语法
    VerilogHDL语法​VerilogHDL(HardwareDescriptionLanguage)是在用途最广泛的C语言的基础上发展起来的一种硬件描述语言,具有灵活性高、易学易用等特点。VerilogHDL可以在......
  • TDengine3.0:解决高基数问题的时序数据库设计思路
    小T导读:数据集的高基数(High-Cardinality)问题一直困扰着诸多主流的时序数据库(TimeSeriesDatabase,TSDB)产品。一些数据库管理系统,在基数较低时表现良好;但是随着基数的增......
  • 005爬虫之获取电影天堂必看热片电影的下载地址
    今天还是继续用正则表达式提取电影天堂电影的下载地址,这里有一点不同的是需要先获取主页面的源代码,然后通过解析主页源代码再获取子页面的源代码,最后通过解析子页面的源代......
  • 基于时序数据库的全员检测系统设计
    前不久在分享中有人介绍了一个范畴论框架,提到了新旧词monad,异步访问QPS过万,还曾布置了一个检测系统的作业。天下武功,唯快不破,不局限于某个模式。我觉得设计的最大瓶颈不......