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

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

3天内不再提示

时序约束实操

XL FPGA威廉希尔官方网站 交流 来源:XL FPGA威廉希尔官方网站 交流 作者:XL FPGA威廉希尔官方网站 交流 2024-04-28 18:36 次阅读

易灵思提供了相关时序约束的PPT,内容非常全面,但是我们还是发现很多客户在使用Efinity时,时序约束存在很多问题。

添加约束

添加约束的目的是为了告诉FPGA你的设计指标及运行情况。在上面的生成约束之后,在Resultàxx.sdc中提供约束参考(请注意该文件不能直接添加到工程中,需要热复制到别的指定目录或者新建自己的SDC文件添加到工程)。

c5883582-0365-11ef-b759-92fbcf53809c.png

编译完成之后可以查看时序报告,也可以通过routingàxx.timing.rpt来查看路径详细延时信息,如果想查看更可以通过指令来打印或者通过print_critical_path来控制打印的路径数量 。

时钟约束

(1)通过IO输入的gclk。

如下图,因为时钟是通过外部IO输入的,所以FPGA并不知道这个时钟频率是多少。打开.pt.sdc可以看到提供相关约束参考。

c5a60440-0365-11ef-b759-92fbcf53809c.png

我们只需要补充相关的时钟周期即可以使用。

c5dc2ec6-0365-11ef-b759-92fbcf53809c.png

比如,我们要约束adc_clk_in为100M:

create_clock-period10.000[get_ports{adc_clk_in}]

(2)PLL的输出的时钟约束。

因为PLL的输入输出频率都是设置好的,所以软件可以检测到。如下图,输入输出时钟频率都是30MHz.

c5ef31ec-0365-11ef-b759-92fbcf53809c.png

在pt.sdc文件中会提供相应的约束 。

create_clock -period 33.3333 pll_inst1_CLKOUT0

在时钟约束完成之后,可以查看Routing -->.timing.rpt文件中所有的时钟是否都进行了完整的约束 。

c6117f9a-0365-11ef-b759-92fbcf53809c.png

IO约束

首先我们要了解易灵思的架构是core和interface分开的,相对于core,interface内部的GPIO,LVDS,JTAG及其它都是外设。所以所有针对于input_delay和outpu_delay的约束都是针对于interface的。至于FPGA对于我们平时理解的外设,比如FPGA外部连接一片AD/DA,这种是没有办法约束的。

c63cd6e0-0365-11ef-b759-92fbcf53809c.png

在pt.sdc文件中可以看到关于set_input_delay和set_output_delay的约束。可以看到有些约束是已经屏蔽,那是因为添加的IO没有打开寄存器。

c6646bba-0365-11ef-b759-92fbcf53809c.png

如下图,易灵思建议把所有IO都添加上IO寄存器

c6823da2-0365-11ef-b759-92fbcf53809c.png

有的客户会有疑问,clock的PIN Name是什么?其实就是与core内连接的寄存器用什么时钟,interface中就用什么时钟。

c699bf86-0365-11ef-b759-92fbcf53809c.png

(3)跨时钟域约束

在保证程序上对跨时钟域做了处理之后,约束上要对跨时钟进行约束 。跨时钟约束的语法是set_clock_groups或者set_false_path,关于用于网上很多,可以自行查找。

set_clock_groups -asynchronous -group {jtag_inst1_TCK jtag_inst1_DRCK}

在所有时钟约束完成之后要保证时序报告的slack都为正值。

c6b776c0-0365-11ef-b759-92fbcf53809c.png

编译完成之后可以查看时序报告,也可以通过routingàxx.timing.rpt来查看路径详细延时信息

如果时序上还有违例,在result--> Routing-->timing.rpt文件中查看具体的路径。根据路径来解决具体的时序问题。

c6d31506-0365-11ef-b759-92fbcf53809c.png

如果想查看更可以通过指令来打印或者通过print_critical_path来控制打印的路径数量 。

c6f496cc-0365-11ef-b759-92fbcf53809c.png

也可以通过report_timing来报告具体的时序路径及数量。

c71631ba-0365-11ef-b759-92fbcf53809c.png

先打开Tcl CommandConsole,如果Show/Hide Tcl commandConsole是灰色的,要先点击Load Place and Route Data加载布局和布线的数据。

c7318776-0365-11ef-b759-92fbcf53809c.png

打开Tcl commandconsolel,使用report_timing命令来查看需要的路径。

c7515286-0365-11ef-b759-92fbcf53809c.png

具体report_timing的用法,请参考EfinityTiming Closure UserGuide.pdf。

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

    关注

    1614

    文章

    21432

    浏览量

    596622
  • pll
    pll
    +关注

    关注

    6

    文章

    751

    浏览量

    134721
  • 时钟
    +关注

    关注

    10

    文章

    1510

    浏览量

    130634
  • 时序约束
    +关注

    关注

    1

    文章

    113

    浏览量

    13372
收藏 人收藏

    评论

    相关推荐

    Xilinx FPGA编程技巧之常用时序约束详解

    今天给大侠带来Xilinx FPGA编程技巧之常用时序约束详解,话不多说,上货。 基本的约束方法 为了保证成功的设计,所有路径的时序要求必须能够让执行工具获取。最普遍的三种路径以及
    发表于 05-06 15:51

    FPGA工程的时序约束实践案例

    详细的原时钟时序、数据路径时序、目标时钟时序的各延迟数据如下图所示。值得注意的是数据路径信息,其中包括Tco延迟和布线延迟,各级累加之后得到总的延迟时间。
    发表于 04-29 10:39 296次阅读
    FPGA工程的<b class='flag-5'>时序</b><b class='flag-5'>约束</b>实践案例

    Xilinx FPGA编程技巧之常用时序约束详解

    今天给大侠带来Xilinx FPGA编程技巧之常用时序约束详解,话不多说,上货。 基本的约束方法为了保证成功的设计,所有路径的时序要求必须能够让执行工具获取。最普遍的三种路径以及
    发表于 04-12 17:39

    FPGA时序约束--基础理论篇

    FPGA开发过程中,离不开时序约束,那么时序约束是什么?简单点说,FPGA芯片中的逻辑电路,从输入到输出所需要的时间,这个时间必须在设定的时钟周期内完成,更详细一点,即需要满足建立和保
    发表于 11-15 17:41

    PCB设计如何在中规范的布局

    作为PCB设计的重点,布局是布线的基础,一个完美的布局开端,直接使得布线工作量事半功倍。 本次就来说一下如何在真实的当中规范的布局。 对于Altium Designer软件,相比于其他软件,它
    的头像 发表于 11-06 15:24 399次阅读
    PCB设计如何在<b class='flag-5'>实</b><b class='flag-5'>操</b>中规范的布局

    如何在FPGA设计环境中加入时序约束

    在给FPGA做逻辑综合和布局布线时,需要在工具中设定时序约束。通常,在FPGA设计工具中都FPGA中包含有4种路径:从输入端口到寄存器,从寄存器到寄存器,从寄存器到输出,从输入到输出的纯组合逻辑
    的头像 发表于 10-12 12:00 1040次阅读
    如何在FPGA设计环境中加入<b class='flag-5'>时序</b><b class='flag-5'>约束</b>?

    用STM32Cube.AI部署ONNX模型示例:风扇堵塞检测

    用STM32Cube.AI 部署ONNX 模型示例:风扇堵塞检测
    的头像 发表于 09-28 16:25 2107次阅读
    用STM32Cube.AI部署ONNX模型<b class='flag-5'>实</b><b class='flag-5'>操</b>示例:风扇堵塞检测

    FPGA的约束设计和时序分析

    FPGA/CPLD的综合、实现过程中指导逻辑的映射和布局布线。下面主要总结一下Xilinx FPGA时序约束设计和分析。
    发表于 09-21 07:45

    #FPGA学习 MDY进阶专题系列(10)时序约束(设计能力)

    fpga时序约束
    明德扬助教小易老师
    发布于 :2023年09月12日 08:02:22

    FPGA时钟周期约束讲解

    时钟周期约束是用于对时钟周期的约束,属于时序约束中最重要的约束之一。
    发表于 08-14 18:25 667次阅读

    FPGA I/O口时序约束讲解

    前面讲解了时序约束的理论知识FPGA时序约束理论篇,本章讲解时序约束实际使用。
    发表于 08-14 18:22 1155次阅读
    FPGA I/O口<b class='flag-5'>时序</b><b class='flag-5'>约束</b>讲解

    FPGA时序约束时序路径和时序模型

    时序路径作为时序约束时序分析的物理连接关系,可分为片间路径和片内路径。
    发表于 08-14 17:50 604次阅读
    FPGA<b class='flag-5'>时序</b><b class='flag-5'>约束</b>之<b class='flag-5'>时序</b>路径和<b class='flag-5'>时序</b>模型

    FPGA时序约束之建立时间和保持时间

    FPGA中时序约束是设计的关键点之一,准确的时钟约束有利于代码功能的完整呈现。进行时序约束,让软件布局布线后的电路能够满足使用的要求。
    发表于 08-14 17:49 1090次阅读
    FPGA<b class='flag-5'>时序</b><b class='flag-5'>约束</b>之建立时间和保持时间

    请问时序约束文件SDC支持哪些约束

    时序约束文件SDC支持哪些约束
    发表于 08-11 09:27

    fpga时序分析案例 调试FPGA经验总结

    可能无法满足时序要求。 跨时钟域信号的约束写法 问题一: 没有对设计进行全面的约束导致综合结果异常,比如没有设置异步时钟分组,综合器对异步时钟路径进行静态时序分析导致误报
    的头像 发表于 08-01 09:18 1328次阅读
    fpga<b class='flag-5'>时序</b>分析案例 调试FPGA经验总结