vivado路径最大时钟约束_【vivado约束学习二】 IO延时约束

2023-10-26

【vivado约束学习二】 IO延时约束

1 I/O延迟约束介绍

要在设计中精确建模外部时序,必须为输入和输出端口提供时序信息。Xilinx Vivado集成设计环境(IDE)仅在FPGA边界内识别时序,因此必须使用以下命令指定超出这些边界的延迟值:
1,set_input_delay
2,set_output_delay

2 输入延迟(Input Delay)

set_input_delay命令指定输入端口上相对于设计接口处时钟边沿的输入路径延迟。
在考虑应用板时,输入延迟表示以下各项之间的相位差:
A.数据从外部芯片通过电路板传播到FPGA的输入封装引脚。
B.相关的板上参考时钟
输入延迟值可以是正的或负的,这取决于设备接口处的时钟和数据相对相位。
虽然-clock选项在Synopsys设计约束(SDC)标准中是可选的,但它是Vivado IDE所必需的。相对时钟可以是设计时钟或虚拟时钟。
使用set_input_delay命令选项
例1:此示例定义了相对于先前定义的sysClk的输入延迟,用于最小和最大分析。

> create_clock -name sysClk -period 10 [get_ports CLK0] 
> set_input_delay -clock sysClk 2 [get_ports DIN]

例2:此示例定义相对于先前定义的虚拟时钟的输入延迟。

> create_clock -name clk_port_virt -period 10 
> set_input_delay -clock clk_port_virt 2 [get_ports DIN]

例3:此示例为min分析和最大分析相对于sysClk的定义了不同的输入延迟值。

> 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:要限制I / O端口之间的纯组合路径,必须在I / O端口上相对于先前定义的虚拟时钟定义输入和输出延迟。以下示例在端口DIN和DOUT之间的组合路径上设置5 ns(10 ns - 4 ns - 1 ns)约束:

> 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]

例5:此示例指定相对于DDR时钟的输入延迟值。

> 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

3 输出延迟(Output Delay)
set_output_delay命令指定输出端口相对于设计接口处的时钟边沿的输出路径延迟。
在考虑开发板时,此延迟表示以下两者之间的相位差:
A.数据从FPGA的输出封装引脚传播,通过电路板传输到另一个器件
B. 相对参考板时钟。
输出延迟值可以是正数或负数,具体取决于FPGA外部的时钟和数据相对相位。
使用set_output_delay命令选项:
例1:此示例定义了相对于先前定义的sysClk的输出延迟,用于最小和最大分析。

> create_clock -name sysClk -period 10 [get_ports CLK0]
> set_output_delay -clock sysClk 6 [get_ports DOUT]

例2:此示例定义相对于先前定义的虚拟时钟的输出延迟。

> create_clock -name clk_port_virt -period 10
> set_output_delay -clock clk_port_virt 6 [get_ports DOUT]

例3:此示例指定相对于DDR时钟的输出延迟值,其具有用于min(hold)和max(setup)分析的不同值。

> 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

往期推荐

【Vivado约束学习一】 时钟约束

更多精彩推荐,请关注我们

34de0b29b104e8c0d6320737cb4783f0.png
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

vivado路径最大时钟约束_【vivado约束学习二】 IO延时约束 的相关文章

  • IC SPEC相关数据

    恢复内容开始 静态电流 静态电流是指没有信号输入时的电流 也就是器件本身在不受外部因素影响下的本身消耗电流 纹波电压的害处 1 容易在用设备中产生不期望的谐波 而谐波会产生较多的危害 2 降低了电源的效率 3 较强的纹波会造成 浪涌电压或电
  • c++中string类与字符串数组

    strlen及用 给c 字符串数组赋值 strlen 很笨 它会在遇到 0之前一直找下去 所以在cstr2中没有 0的时候 它会一直找下去 而那些地方还没有被初始化过 所以就是乱的 而且strlen计算出的字符串数组长度是不包含 0的那部分
  • elasticsearch中mapping中的可设置的属性

    mappings 在index 库 下创建时使用 下面可以有多个mapping 以下数据结构主要针对每个mapping进行说明 一级属性 二级属性 三级属性 说明 dynamic 新增字段自动模式 true 表示自动识别新字段并创建索引 f
  • 动态爬虫(ajax)-爬取bilibili热门视频信息

    文章目录 前言 一 页面分析 二 编写爬虫 1 引入库 2 发出请求 2 1生成请求头 2 2发出请求并获取响应 3 解析响应的内容 4 保存提取的信息到本地 5 康康主函数 三 运行结果 前言 使用python爬虫爬取bilibli每日热
  • VS2019利用Developer Command Prompt for VS 2019查看对象模型中的Class

    本文利用Developer Command Prompt for VS 2019工具 快速查看对象模型中类的结构 便于大家迅速了解衍生类和基类的关系 文章目录 一 打开开发人员命令提示工具 二 使用步骤 1 确定cpp文件位置 1 1 查找
  • chatGPT侧边栏历史记录消失解决方法

    从昨天3月8日开始 很多程序员发现自己的chatGPT打开后左侧侧边栏历史记录消失了 自己辛辛苦苦测试的Prompt都没有了 折腾了很久都不行 不得不重新写Prompt 解决方法 其实很简单 就是退出账号登录 然后重新登录账号再刷新就恢复了
  • QT界面UI文件不读取问题

    QT的C 项目有一段时间没有打开 重新打开时发现部分ui界面不知道为什么无法在QT Creator中用designer编辑器打开了 问题如下图 1 双击该ui界面不会自动跳转到界面编辑器了 2 可以随意更改ui界面的代码内容了 正常的ui界
  • C/C++使用Windows的API实现共享内存以及同步

    目录 共享内存 事件 Event 实现思路 创建方 服务端 连接方 进程同步 windows的API CreateFileMapping MapViewOfFile CreateEvent WaitForSingleObject Creat
  • 复习js笔记

    JS w3cschool官网 1000多本编程教程免费学 在日常中遇到的js函数 forms document forms name for in 循环 let x name lai age 18 city nanyang var y fo
  • 深度学习:激活函数的比较和优缺点,sigmoid,tanh,relu

    1 什么是激活函数 2 为什么要用 3 都有什么激活函数 4 sigmoid Relu softmax 1 什么是激活函数 如下图 在神经元中 输入的 inputs 通过加权 求和后 还被作用了一个函数 这个函数就是激活函数 Activat
  • Vue

    一 vue router的实现原理 路由的概念来源于服务端 服务端中的路由描述的是URL和处理函数之间的映射关系 web前端单页应用SPA single page application 中 路由描述的是URL和UI之前的映射关系 这种映射
  • 华为机试题24-合唱队

    描述 N 位同学站成一排 音乐老师要请最少的同学出列 使得剩下的 K 位同学排成合唱队形 设K位同学从左到右依次编号为 1 2 K 他们的身高分别为T1 T2 TK 若存在i 1 i K 使得T1
  • 万字解读区块链游戏行业:洞察游戏的未来

    撰文 Mason Nystrom Jerry Sun Messari 分析师 编辑 南风 基于区块链的游戏领域正在快速扩张 这得益于 NFT 和游戏内货币的崛起 该领域的增长可以被视为数十年来游戏行业盈利策略和商业模式不断迭代的延续 在过去
  • VB--生成DLL的步骤

    1 找到工程栏下 当前工程 选中它 2 右键工程 属性 3 生成页签 改下版本号 以便区分 4 选择横的菜单栏 文件 生成 dll 文件 OVER
  • 驱动开发 linux内核GPIO子系统、及其新版API的概念和使用,linux内核定时器

    1 GPIO子系统 概述 每一个芯片厂商生产出芯片后会给linux提供一个当前芯片中gpio外设的驱动 我们只需要调用对应的厂商驱动就可以完成硬件的控制 而linux内核源码中的gpio厂商驱动有很多 linux内核个会对厂商驱动做一些封装
  • 【HIve】java.lang.NoSuchFieldError: HIVE_STATS_JDBC_TIMEOUT

    1 概述 xception in thread main java lang NoSuchFieldError HIVE STATS JDBC TIMEOUT at org apache spark sql hive HiveUtils h
  • 如何拥有个人的Github技术博客

    题图 87testing com 前不久用wordpress搭建了一个博客 用起来感觉不是太好用 并且数据库经常会发生异常挂掉 没找到解决方案 看到有不少人使用的hexo github方式搭建属于自己的博客 于是 我也做了一些尝试 将搭建的
  • 什么是Sui Kiosk,它可以做什么,如何赋能创作者?

    创作者和IP持有者需要一些工具帮助他们在区块链上实现其商业模式 Sui Kiosk作为Sui上的一种原语可以满足这种需求 为创作者提供动态选项 使他们能够在任何交易场景中设置完成交易的条件 本文将向您介绍为什么要在SuiFrens中使用Su

随机推荐