FPGA设计存在的4类时序路径

命令set_multicycle_path常用来约束放松路径的约束。通常情况下,这种路径具有一个典型的特征:数据多个周期翻转一次,如下图所示。因此,我们把这种路径称为多周期路径(fpga设计中更多的是单周期路径,每个周期数据均翻转)。
一般情况下,多周期路径约束的对象都是fpga内部路径,路径所包含的逻辑单元也都是fpga内部单元如触发器、bram或dsp等。但有时在片间接口使用set_input_delay和set_output_delay约束时,也会用到set_multicycle_path。这里我们就来讨论这种情形。
我们先从系统级角度看一下fpga设计存在的4类时序路径,如下图所示。这4类路径包括:上游芯片到fpga管脚(用set_input_delay约束)、fpga内部路径(用create_clock约束)、fpga管脚到下游芯片(用set_output_delay约束)和fpga管脚到fpga管脚(用set_max_delay约束)。就前三条路径而言,如果把上游芯片、fpga芯片和下游芯片作为一个整体看待,我们就会发现这三条路径本质上是一类路径,起点单元和终点单元都是触发器。只是触发器可能在fpga外部而已。正因此,凡是适合于fpga内部路径的多周期路径约束情形也适合于接口多周期路径约束情形。同时,也能看出vivado的这种系统级的时序分析引擎对接口时序约束极为便利。
情形1:数据每多个时钟周期翻转一次
如下图所示时序波形,数据每两个时钟周期翻转一次。
如果数据是由上游芯片发送给fpga,那么就需要用set_input_delay结合set_multicycle_path一起对接口路径进行约束,如下图所示。这里最后两行使用了set_multicycle_path,一个针对建立时间,一个针对保持时间。
如果数据是从fpga发送给下游芯片,那么就需要用set_output_delay结合set_multicycle_path一起对接口路径进行约束,如下图所示。
情形2:捕获时钟和发送时钟同频但有相差
如下图所示,发起时钟和捕获时钟同频但不同相。默认情况下,vivado会选择两个时钟最为接近的边沿作为发起沿和捕获沿,如图中的蓝色箭头所示。显然,这种情况下,时序约束过紧且不符实际。这就要通过set_multicycle_path告诉工具真正的捕获沿是在2号标记处。
如果该路径存在于fpga输入接口处,那么可以采用set_input_delay结合set_multicycle_path一起约束,如下图所示。
如果该路径存在于fpga输出接口处的源同步设计,那么可以采用set_output_delay结合set_multicycle_path一起约束,如下图所示。


算法问题汇总
SRAM存算一体芯片的研究现状和发展趋势
安防行业将主导未来的无人驾驶
苹果换成了华为P30Pro,用了2个星期后,无奈又换回苹果!
IC Insights预测,2022年MCU销售额将达到239亿美元
FPGA设计存在的4类时序路径
瑞科慧联网关远程管理系统WisDM,让物联网开发更轻松
基于直接数字频率合成(DDS)的频谱分析仪设计
智能土壤检测仪介绍
立足全场景特点,打造一体化智慧食堂全链解决方案
新汉推出U PoE接口的视频监控产品
随着AI技术的发展,下一波人工智能将会更加强大
“聪明”的智能药盒定时提醒吃药 并直接显示该吃多少
大疆机甲大师RoboMasterS1评测 可操作性和可扩展性极强
无线通信协议将助力智能家居的应用落地
为什么在电网中使用多个变压器连接在一起形成变电站?
乐视手机业务停摆,印度市场被波及,进入战略调整阶段
如何使用最简单的POS设备
大数据技术应用于医疗领域的积极意义
小米8采用全屏指纹识别与AI拍照功能,支持无线充电