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

    关注

    1627

    文章

    21685

    浏览量

    602321
  • pll
    pll
    +关注

    关注

    6

    文章

    775

    浏览量

    135066
  • 时钟
    +关注

    关注

    10

    文章

    1724

    浏览量

    131399
  • 时序约束
    +关注

    关注

    1

    文章

    115

    浏览量

    13411
收藏 人收藏

    评论

    相关推荐

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

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

    4G模组PWM接口:技术要点

    今天我们讲解的是4G模组PWM接口的技术要点,以我常用的模组Air724UG为例分享出来。
    的头像 发表于 11-20 23:29 155次阅读
    4G模组PWM接口:技术<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 153次阅读

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

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

    深度解析FPGA中的时序约束

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

    启明智显Model3A芯片方案7寸高清触摸屏:开箱、设置与全攻略指南

    一、背景本指南将详细介绍启明智显的Model3A芯片方案下的7寸高清触摸屏ZX7D00CM21S的开箱步骤、基础设置以及应用。无论您是电子爱好者、开发者还是工程师,这份指南都能助您快速上手并
    的头像 发表于 07-01 16:09 1001次阅读
    启明智显Model3A芯片方案7寸高清触摸屏:开箱、设置与<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 703次阅读
    FPGA工程的<b class='flag-5'>时序</b><b class='flag-5'>约束</b>实践案例

    Xilinx FPGA的约束设置基础

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

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

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

    时序电路的分类 时序电路的基本单元电路有哪些

    时序电路是一种能够按照特定的顺序进行操作的电路。它以时钟信号为基准,根据输入信号的状态和过去的状态来确定输出信号的状态。时序电路广泛应用于计算机、通信系统、数字信号处理等领域。根据不同的分类标准
    的头像 发表于 02-06 11:25 2400次阅读

    FPGA物理约束之布局约束

    在进行布局约束前,通常会对现有设计进行设计实现(Implementation)编译。在完成第一次设计实现编译后,工程设计通常会不断更新迭代,此时对于设计中一些固定不变的逻辑,设计者希望它们的编译结果
    的头像 发表于 01-02 14:13 1432次阅读
    FPGA物理<b class='flag-5'>约束</b>之布局<b class='flag-5'>约束</b>

    【坚果派】JS开源库适配OpenHarmony系列——第一期

    由于OpenHarmony应用是基于ArkTS开发,而ArkTS是在保持TypeScript(简称TS)基础语法风格的基础上,对TS的动态类型特性施加更严格的约束,引入静态类型。因此在开发OpenHarmony三方库时,建议首选在成熟的JS/TS开源三方库上开发。
    的头像 发表于 12-26 10:48 1119次阅读
    【坚果派】JS开源库适配OpenHarmony系列——第一期<b class='flag-5'>实</b><b class='flag-5'>操</b>

    电源时序规格:电源导通时的时序工作

    电源时序规格:电源导通时的时序工作
    的头像 发表于 12-08 18:21 792次阅读
    电源<b class='flag-5'>时序</b>规格:电源导通时的<b class='flag-5'>时序</b>工作