(FPGA时序约束)set_multicycle_path详解

本文详细解释了Vivado工具中的set_multicycle_path功能,用于在FPGA设计中调整多周期时序路径的分析要求,以优化资源利用并确保时序收敛。作者通过实例说明了如何在不同时钟域和相位条件下正确使用此功能。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

 1.定义

        和set_max_delay/set_min_delay一样属于时序例外的一种。

        时序例外在之前的文章中讲过,如果不去约束的话,可能会造成时序资源的浪费,不因该分析的分析了,不应该优化的优化了,不应该这么严格去分析的也这么严格的去分析了,跑这样的程序浪费电脑资源,同样也会增加运行时间。

        时序例外有几种:

        (1)set_false_path:直接设置不分析

        (2)set_max_delay/set_min_delay:直接覆盖默认requirement

        (3)set_case_analysis:设置pin或port为常数或特定跳变沿,相当于设置palse_path

        (4)set_multicycle_path:相对于源时钟或者目的时钟去调整requirement

        针对set_multicycle_path,其定义为:根据源时钟或目的时钟,通过修改路径requirement倍数,改变路径requirement,来放松该路径的setup或hold分析要求,以满足时序收敛。

        这里再解释一下什么是requirement,vivado工具默认进行的是单周期的时序分析,一般一条时序路径默认对应了一个requirement,是根据时钟周期来确定的,也就是一般情况下setup的requirement是一个时钟周期(默认单周期分析,当前时钟launch,下个时钟周期capture),hold的requirement就是0;

2.语法及说明

        set_multicycle_path <path_multiplier> [-setup|-hold] [-start|-end] [-from <start_point>] [-to <endpoint>] [-through <pins|cells|nets>]

        其中:

        [-setup|-hold]表明是调整建立时间的还是保持时间的;

        [-start|-end]表明是相对于源时钟还是相对于目的时钟来调

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值