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

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

3天内不再提示

FPGA学习-IO延迟的约束方法

FPGA设计论坛 来源:未知 2023-01-01 11:50 次阅读
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

为了对设计外部的时序情况进行精确建模,设计者必须设定输入和输出端口的时序信息。Vivado只能识别出FPGA器件范围内的时序,因此必须使用set_input_delay和set_output_delay命令来设置FPGA范围外的延迟值。两者在含义、约束命令等方面有很多地方是相似的,只不过一个是输入,一个是输出,本文还是分开对两者进行讲述;

输入延迟

set_input_delay命令设定FPGA的输入端口上相对于上游芯片接口时钟边沿的输入路径延迟(不包括FPGA输入端口到第一个触发器数据输入端的延时);输入延迟既指数据从外部芯片经过板级传输到FPGA输入管脚间的相位差,也指相对参考板级时钟间的相位差;输入延迟值可以是正的,也可以是负的,由时钟和数据在FPGA接口处的相对相位决定;

约束时的相对时钟可以是一个设计时钟,也可以是一个虚拟时钟;输入延迟命令的选项包括:

-min和-max:-min设定的值用于最小延迟分析(保持时间、移除时间);-max设定的值用于最大延迟分析(建立时间、恢复时间);如果约束命令中没有使用这两个选项,输入延迟值会同时应用于min和max;

-clock_fall:用于指定由相对时钟的下降沿启动的时序路径上的输入延迟约束;如果没有这个选项,Vivado只假定使用相对时钟的上升沿;

-add_delay:该选项通常用于约束与多个时钟沿相关的输入端口(比如DDR接口),而且必须已经存在一个最大或最小输入延迟约束,设计者使用该命令为同一端口设置其它相对时钟沿的最大或最小输入延迟约束;

输入延迟约束只能应用于输入端口或双向端口(不包括时钟输入端口),不能用于设计内部的管脚,下面给出几个使用输入延迟约束的典型例子:

1.示例一

create_clock -name sysClk -period 10 [get_ports CLK0]

set_input_delay -clock sysClk 2 [get_ports DIN]

定义一个主时钟sysClk作为输入延迟的相对时钟,设定的值同时作为最小值(min)分析和最大值(max)分析;

2.示例二

create_clock -name clk_port_virt -period 10

set_input_delay -clock clk_port_virt 2 [get_ports DIN]

该例子约束目的与上例相同,只是相对时钟换为一个虚拟时钟;使用虚拟时钟的好处是可以在不改变内部设计时钟的情况下,设定任意的抖动和延迟 ;

3.示例三

create_clock -name sysClk -period 10 [get_ports CLK0]

set_input_delay -clock sysClk -max 4 [get_ports DIN]

set_input_delay -clock sysClk -min 1 [get_ports DIN]

该例中最小值分析和最大值分析采用不同的输入延迟值;

4.示例四

create_clock -name sysClk -period 10 [get_ports CLK0]

set_input_delay -clock sysClk 4 [get_ports DIN]

set_output_delay -clock sysClk 1 [get_ports DOUT]

如果两个I/O端口之间仅有组合逻辑路径,没有任何时序单元,必须相对于虚拟时钟为I/O端口定义输入与输出延迟。上例中DIN和DOUT之间的组合逻辑路径约束为5ns(10-1-4);

5.示例五

create_clock -name clk_ddr -period 6 [get_ports DDR_CLK_IN]

set_input_delay -clock clk_ddr -max 2.1 [get_ports DDR_IN]

set_input_delay -clock clk_ddr -max 1.9 [get_ports DDR_IN] -clock_fall -add_delay

set_input_delay -clock clk_ddr -min 0.9 [get_ports DDR_IN]

set_input_delay -clock clk_ddr -min 1.1 [get_ports DDR_IN] -clock_fall -add_delay

这里相对时钟为DDR的时钟,最小值分析和最大值分析采用不同的输入延迟值;约束的一端是器件外部时钟的上升沿和下降沿启动的数据,另一端是器件内部同时对上升沿和下降沿敏感的触发器的输入数据;

输出延迟

set_output_delay命令设定数据从FPGA输出端口上(都是相对于数据源的时钟来说)到下一级芯片输入端口的输出路径延迟;输出延迟既指数据从FPGA的输出管脚通过板级传输到另一个器件间的相位差,也指相对参考板级时钟间的相位差;输出延迟值同样也可以是正的或负的,由时钟和数据在FPGA器件外的相对相位决定;

约束时的相对时钟可以是一个设计时钟,也可以是一个虚拟时钟;输出延迟命令的选项基本与输入延迟约束相同,还是陈列如下:

同样,输出延迟约束只能应用于输出端口或双向端口,不能用于设计内部的管脚;下面给出几个使用输出延迟约束的典型例子:

-min和-max:-min设定的值用于最小延迟分析(保持时间、移除时间);-max设定的值用于最大延迟分析(建立时间、恢复时间);如果约束命令中没有使用这两个选项,输入延迟值会同时应用于min和max;

-clock_fall:用于指定由相对时钟的下降沿捕获的时序路径上的输出延迟约束;如果没有这个选项,Vivado只假定使用相对时钟的上升沿;

-add_delay:该选项通常用于约束与多个时钟沿相关的输出端口(比如DDR接口同时使用上升沿和下降沿,或者输出端口与几个使用不同时钟的器件相连),而且必须已经存在一个最大或最小输入延迟约束,设计者使用该命令为同一端口设置其它相对时钟沿的最大或最小输入延迟约束;

1.示例一

create_clock -name sysClk -period 10 [get_ports CLK0]

set_output_delay -clock sysClk 6 [get_ports DOUT]

定义一个主时钟sysClk作为输出延迟的相对时钟,设定的值同时作为最小值(min)分析和最大值(max)分析;

2.示例二

create_clock -name clk_port_virt -period 10

set_output_delay -clock clk_port_virt 6 [get_ports DOUT]

该例子约束目的与上例相同,只是相对时钟换为一个虚拟时钟;使用虚拟时钟的好处是可以在不改变内部设计时钟的情况下,设定任意的抖动和延迟;

3.示例三

create_clock -name clk_ddr -period 6 [get_ports DDR_CLK_IN]

set_output_delay -clock clk_ddr -max 2.1 [get_ports DDR_OUT]

set_output_delay -clock clk_ddr -max 1.9 [get_ports DDR_OUT] -clock_fall -add_delay

set_output_delay -clock clk_ddr -min 0.9 [get_ports DDR_OUT]

set_output_delay -clock clk_ddr -min 1.1 [get_ports DDR_OUT] -clock_fall -add_delay

这里相对时钟为DDR的时钟,最小值分析和最大值分析采用不同的输出延迟值;约束的一端是器件外部时钟的上升沿和下降沿启动的数据,另一端是器件内部同时对上升沿和下降沿敏感的触发器的输出数据 ;




精彩推荐



至芯科技12年不忘初心、再度起航12月17日北京中心FPGA工程师就业班开课、线上线下多维教学、欢迎咨询!
AXI DMA收发数据过程和时序关系
Xilinx FPGA中的基础逻辑单元
扫码加微信邀请您加入FPGA学习交流群




欢迎加入至芯科技FPGA微信学习交流群,这里有一群优秀的FPGA工程师、学生、老师、这里FPGA技术交流学习氛围浓厚、相互分享、相互帮助、叫上小伙伴一起加入吧!






原文标题:FPGA学习-IO延迟的约束方法

文章出处:【微信公众号:FPGA设计论坛】欢迎添加关注!文章转载请注明出处。

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

    关注

    1655

    文章

    22288

    浏览量

    630340

原文标题:FPGA学习-IO延迟的约束方法

文章出处:【微信号:gh_9d70b445f494,微信公众号:FPGA设计论坛】欢迎添加关注!文章转载请注明出处。

收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    开源RISC-V处理器(蜂鸟E203)学习(二)修改FPGA综合环境(移植到自己的Xilinx FPGA板卡)

    ,所以我喜欢折腾,因为折腾迫使我不断去解决问题,在解决问题的过程中会思考很多细节,而且印象更加深刻。当然这是我个人的学习方法。 如果手上有Xilinx的 FPGA板卡,可以一起学习一下怎么将e203
    发表于 10-31 08:46

    在MCU200t板子上蜂鸟E203核的io口的控制方法

    ://www.nucleisys.com/upload/files/fpga/doc/Nuclei_MCU200T.pdf 根据原理图即可控制对应io。 而io口的配置函数
    发表于 10-31 07:17

    蜂鸟e203移植fpga上如何修改约束文件

    第一步:我们先导入官方网站中蜂鸟e203的代码提供的e203添加进去,并加入ddr200T中的 src.文件中的system.v文件并加入约束文件(constrs文件夹之中
    发表于 10-24 07:18

    FPGA中数据延迟方案介绍

    本质上就是对数据进行多级寄存器缓存,延迟时间以clk的一个周期为单位,消耗的就是寄存器。比较适合延迟固定周期以及延迟周期比较短的情况。
    的头像 发表于 10-15 10:23 399次阅读
    <b class='flag-5'>FPGA</b>中数据<b class='flag-5'>延迟</b>方案介绍

    FPGA在机器学习中的具体应用

    随着机器学习和人工智能技术的迅猛发展,传统的中央处理单元(CPU)和图形处理单元(GPU)已经无法满足高效处理大规模数据和复杂模型的需求。FPGA(现场可编程门阵列)作为一种灵活且高效的硬件加速平台
    的头像 发表于 07-16 15:34 2636次阅读

    互连层RC延迟的降低方法

    随着集成电路技术节点的不断减小以及互连布线密度的急剧增加,互连系统中电阻、电容带来的 RC耦合寄生效应迅速增长,影响了器件的速度。图2.3比较了不同技术节点下门信号延迟(gate delay)和互连
    的头像 发表于 05-23 10:43 1067次阅读
    互连层RC<b class='flag-5'>延迟</b>的降低<b class='flag-5'>方法</b>

    PCB Layout 约束管理,助力优化设计

    本文重点PCBlayout约束管理在设计中的重要性Layout约束有助避免一些设计问题设计中可以使用的不同约束在PCB设计规则和约束管理方面,许多设计师试图采用“一刀切”的
    的头像 发表于 05-16 13:02 834次阅读
    PCB Layout <b class='flag-5'>约束</b>管理,助力优化设计

    FPGA时序约束之设置时钟组

    Vivado中时序分析工具默认会分析设计中所有时钟相关的时序路径,除非时序约束中设置了时钟组或false路径。使用set_clock_groups命令可以使时序分析工具不分析时钟组中时钟的时序路径,使用set_false_path约束则会双向忽略时钟间的时序路径
    的头像 发表于 04-23 09:50 972次阅读
    <b class='flag-5'>FPGA</b>时序<b class='flag-5'>约束</b>之设置时钟组

    进群免费领FPGA学习资料!数字信号处理、傅里叶变换与FPGA开发等

    进群免费领FPGA学习资料啦!小编整理了数字信号处理、傅里叶变换与FPGA开发等FPGA必看资料,需要的小伙伴可以加小助手(微信:elecfans123)或进 QQ 群:9135011
    发表于 04-07 16:41

    一文详解Vivado时序约束

    Vivado的时序约束是保存在xdc文件中,添加或创建设计的工程源文件后,需要创建xdc文件设置时序约束。时序约束文件可以直接创建或添加已存在的约束文件,创建
    的头像 发表于 03-24 09:44 4390次阅读
    一文详解Vivado时序<b class='flag-5'>约束</b>

    有没有对appsfpga_io模块输入端功能时序的控制的资料?

    由于项目中需要在fpga中进行一些关键运算,原来的V5改为K7,通讯接口也有USB2该为10Gmac,在研究原来的VHDL代码后我们认为对于DMD控制部分只要用appsfpga_io模块可以满足
    发表于 02-27 07:02

    【国产FPGA入学必备】国产FPGA权威设计指南+配套FPGA图像视频教程

    ,小眼睛科技推出40期紫光同创FPGA图像视频教程,涵盖紫光同创工具的使用方法、基于紫光同创FPGA图像处理技巧、高速通信案例、时序约束及收敛方法
    发表于 02-20 15:08

    【国产FPGA必备教程】——紫光同创FPGA图像视频教程,适用于小眼睛FPGA盘古全系列开发板

    案例、时序约束及收敛方法等,教程内容丰富,从入门到应用提高,覆盖紫光同创FPGA开发全流程,教程适用于小眼睛科技盘古系列、泰坦系列全开发套件。目前,小眼睛科技基于FPGA赛事配套紫光同
    发表于 02-19 15:44

    xilinx FPGA IOB约束使用以及注意事项

    采用了IOB约束,那么就可以保证从IO到达寄存器或者从寄存器到达IO之间的走线延迟最短,同时由于IO的位置是固定的,即存在于
    的头像 发表于 01-16 11:02 1494次阅读
    xilinx <b class='flag-5'>FPGA</b> IOB<b class='flag-5'>约束</b>使用以及注意事项

    传统机器学习方法和应用指导

    用于开发生物学数据的机器学习方法。尽管深度学习(一般指神经网络算法)是一个强大的工具,目前也非常流行,但它的应用领域仍然有限。与深度学习相比,传统方法在给定问题上的开发和测试速度更快。
    的头像 发表于 12-30 09:16 1982次阅读
    传统机器<b class='flag-5'>学习方法</b>和应用指导