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
    +关注

    关注

    1638

    文章

    21852

    浏览量

    609155
  • pll
    pll
    +关注

    关注

    6

    文章

    785

    浏览量

    135603
  • 时钟
    +关注

    关注

    11

    文章

    1761

    浏览量

    132273
  • 时序约束
    +关注

    关注

    1

    文章

    115

    浏览量

    13502
收藏 人收藏

    相关推荐

    气密性测试仪使用方法技巧:提高测试准确性的秘诀

    要掌握一些技巧。1.测试前的准备气密性测试仪测试前,务必确保被测物体表面干净、无油污和杂质。这些污物可能会影响测试结果,导致误判。同时,检查测试工装是否与被测物体
    的头像 发表于 03-17 14:35 90次阅读
    气密性测试仪使用方法<b class='flag-5'>实</b><b class='flag-5'>操</b>技巧:提高测试准确性的秘诀

    北京迅为iTOP-RK3568开发板OpenHarmony系统南向驱动开发-HDF驱动配置LED

    北京迅为iTOP-RK3568开发板OpenHarmony系统南向驱动开发-HDF驱动配置LED
    的头像 发表于 03-14 14:41 209次阅读
    北京迅为iTOP-RK3568开发板OpenHarmony系统南向驱动开发<b class='flag-5'>实</b><b class='flag-5'>操</b>-HDF驱动配置LED

    新手必看!SMA 插头 PCB 原理图连接指南

    通过以上详细的步骤和注意事项,新手朋友们就能顺利完成 SMA 插头与 PCB 原理图的连接操作。在实际操作中,要多动手练习,每次操作后及时总结经验教训,不断提升自己的操作技能。希望这篇指南能成为大家电子工程学习道路上的得力助手,帮助大家攻克 SMA 插头连接这一难关
    的头像 发表于 02-07 10:43 553次阅读
    新手必看!SMA 插头 PCB 原理图连接<b class='flag-5'>实</b><b class='flag-5'>操</b>指南

    hyper v for win10,hyper v for win10的流程,hyper-v批量管理工具的使用指南

    。批量管理虚拟机能够实现对在线预订平台的快速部署和灵活调整,提高平台的稳定性和响应速度,提升游客的预订体验。接下来和大家一起探索hypervforwin10的流程。    hypervforwin10的
    的头像 发表于 02-05 11:07 177次阅读
    hyper v for win10,hyper v for win10的<b class='flag-5'>实</b><b class='flag-5'>操</b>流程,hyper-v批量管理工具的使用指南

    hyper 网卡,hyper 网卡的流程,hyper-v批量管理工具的使用指南

    行业对高效配送的需求。批量管理虚拟机能够实现对物流业务系统的快速部署和灵活调整,提高配送调度的效率,降低运营成本,提升物流服务质量。接下来和大家一起探索hyper网卡的流程。    hyper网卡的
    的头像 发表于 02-05 10:29 230次阅读
    hyper 网卡,hyper 网卡的<b class='flag-5'>实</b><b class='flag-5'>操</b>流程,hyper-v批量管理工具的使用指南

    termius 中文,termius 中文的步骤,linux服务器远程连接的实用教程

    知识付费平台多元,课程资源服务器知识宝藏。用户远程购买学习,讲师持续更新内容。求知之路永不止步,智慧财富借远程共享双赢,推动知识经济前行。本文将和大家一起探索termius中文的步骤以及
    的头像 发表于 12-18 13:43 420次阅读
    termius 中文,termius 中文的<b class='flag-5'>实</b><b class='flag-5'>操</b>步骤,linux服务器远程连接的实用教程

    时序约束一主时钟与生成时钟

    的输出,对于Ultrascale和Ultrascale+系列的器件,定时器会自动地接入到GT的输出。 1.2 约束设置格式 主时钟约束使用命令create_clock进行创建,进入Timing
    的头像 发表于 11-29 11:03 860次阅读
    <b class='flag-5'>时序</b><b class='flag-5'>约束</b>一主时钟与生成时钟

    常用时序约束使用说明-v1

    为了防止约束失败,我们在Tcl输入框中验证,没有告警或者错误说明约束的写法是正确的set_max_delay 5.00 -from [get_cells key2_detect_inst/state
    的头像 发表于 11-01 11:06 360次阅读

    文档】在智能硬件的大模型语音交互流程中接入RAG知识库

    就不讲太多了,这里用CSK6大模型开发板接入自建的空调产品手册知识库演示接入过程,只要对照文档步骤就可以完成操作。操作过程中遇到问题,也可以参考后半部分的排错流程来定位和解决问题。
    发表于 09-29 17:12

    深度解析FPGA中的时序约束

    建立时间和保持时间是FPGA时序约束中两个最基本的概念,同样在芯片电路时序分析中也存在。
    的头像 发表于 08-06 11:40 1017次阅读
    深度解析FPGA中的<b class='flag-5'>时序</b><b class='flag-5'>约束</b>

    FPGA 高级设计:时序分析和收敛

    Static Timing Analysis,简称 STA。它可以简单的定义为:设计者提出一些特定的时序要求(或者说是添加特定的时序约束),套用特定的时序模型,针对特定的电路进行分析。
    发表于 06-17 17:07

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

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

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

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

    Xilinx FPGA的约束设置基础

    LOC约束是FPGA设计中最基本的布局约束和综合约束,能够定义基本设计单元在FPGA芯片中的位置,可实现绝对定位、范围定位以及区域定位。
    发表于 04-26 17:05 1542次阅读
    Xilinx FPGA的<b class='flag-5'>约束</b>设置基础

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

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