一、  这两条约束语句都是针对板级延时而言的。

语句中必须的有是,时钟与port.

二、   set_input_delay

用于数据输入端口,调节数据输入与时钟输入到来的相位关系。

当FPGA外部送入FPGA内部寄存器数据时,会有两个时钟launch clock 与latch clock,前者负责将数据从外部寄存器中送出,后者要在setup 与hold都满足的条件下,将数据锁入FPGA内部寄存器。在这个过程中,如果launch clock已经将数据送出,并到达FPGA内部寄存器端口,而上一次的数据的hold时间还不足,就会冲掉前面这个数据,导致latch clock 锁存数据错误!方法就是用set_input_delay加在数据到达时间(data_arrival)上加延时,让数据推迟到达,让latch clock有足够的时间(一般为hold time)对数据锁存。

例: set_input_delay -clock { clk_in } -add_delay 1.200 [get_ports {data_in}]

图中input delay(data arrival)将数据到达时间延时1.2ns.

set_output_delay

用于数据输出端口,调节数据输出与时钟输出的相位关系。

当FPGA内部送出数据给外部器件的时,也应该有两个时钟launch clock 与latch clock,前者负责将数据从内部寄存器中送出,后者要在setup 与hold都满足的条件下,将数据锁入外部寄存器。在这个过程中,就是要保证在时钟到来时数据准备好,并让时钟有足够的时间将数据打入外部寄存器中。但如果latch clock已经到来,由于板级延时等,数据未能如时到达,那latch clock没有足够的setup 时间对数据采样,导致采到的数据就是错误的!而解决方法就是用set_output_delay加在数据到达时间(data_arrival)上加延时(负值),或者说对latch clock 加延时(正值),表现为数据提前到达,或认为latch clock推迟到达,而其实质就是以时钟为参考,对数据进行的操作,让latch clock 有足够的时间(一般为setup time)对数据锁存。

例:set_output_delay -clock { clk_in } -add_delay 2.000 [get_ports data_out]

图中output delay(data requared)向前推2.0ns

三、  在设置约束与分析时序过程中对launch clock 和latch clock 的选择和port的选择要注意以下问题:

set_input_delay :在用的设置约束过程中,launch clock 应当是外部器件的数据发送时钟,如果FPGA内部并无相关时钟,就设置一个虚拟时钟作为launch clock ;latch clock 应当是FPGA内部寄存器时钟,当然应为FPGA内部时钟;在时序分析约束过程中,port应当至少选取To Node.

set_output_delay :在用的设置约束过程中,launch clock 应当是FPGA内部的数据发送时钟,应当为FPGA内部时钟;latch clock 应当是FPGA外部器件数据锁存时钟,如果这个时钟FPGA内部并无相关时钟,就设置一个虚拟时钟作为latch clock ;在时序分析约束过程中,port应当至少选取From Node.

关于set_output_delay与set_input_delay概念与用法的更多相关文章

  1. (转载)OC学习篇之---协议的概念和用法

    在前一篇文章中我们介绍了OC中类的延展,这一篇文章我们在来看一下OC中协议的概念以及用法,协议也是OC中的一个重点,Foundation框架以及我们后面在写代码都会用到. OC中的协议就是相当于Jav ...

  2. OC中协议的概念以及用法

    OC中协议的概念以及用法,协议也是OC中的一个重点,Foundation框架以及我们后面在写代码都会用到. OC中的协议就是相当于Java中的接口(抽象类),只不过OC中的名字更形象点,因为我们在学习 ...

  3. scrapy之基础概念与用法

    scrapy之基础概念与用法 框架 所谓的框架就是一个项目的半成品.也可以说成是一个已经被集成了各种功能(高性能异步下载.队列.分布式.解析.持久化等)的具有很强通用性的项目模板. 安装 Linux: ...

  4. Android中Cursor类的概念和用法[转]

    首页 > 程序开发 > 移动开发 > Android > 正文   Android中Cursor类的概念和用法 2011-09-07      0个评论       收藏    ...

  5. Python yield 的基本概念和用法

    之前解析MQTT协议时,需要做一个等分字节流的操作,其中用到了yield关键字,如下: def get_var_length(hstring): m = 1 v = 0 for element in ...

  6. (4.5)DBCC的概念与用法(DBCC TRACEON、DBCC IND、DBCC PAGE)

    转自:http://www.cnblogs.com/huangxincheng/p/4249248.html DBCC的概念与用法 一:DBCC 1:什么是DBCC 我不是教学老师,我也说不到没有任何 ...

  7. OC学习篇之---协议的概念和用法

    这一篇文章我们在来看一下OC中协议的概念以及用法,协议也是OC中的一个重点,Foundation框架以及我们后面在写代码都会用到. OC中的协议就是相当于Java中的接口(抽象类),只不过OC中的名字 ...

  8. JAVA中数组的基本概念与用法

    JAVA中数组的基本概念与用法 1. 数组的定义与特点 数组的一种引用数据类型 数组中可以同时存放多个数据,但是数据的类型必须统一 数组的长度在开始时就需要确定,在程序运行期间是不可改变的 虽然可以使 ...

  9. 了解PHP中Stream(流)的概念与用法(转)

    Stream是PHP开发里最容易被忽视的函数系列(SPL系列,Stream系列,pack函数,封装协议)之一,但其是个很有用也很重要的函数.Stream可以翻译为“流”,在Java里,流是一个很重要的 ...

随机推荐

  1. xml文件中的${}

    看到了${}这样的表达式,脑海里面第一印象是不是我们jsp中的EL表达式?! 哈哈... 不过,这个真不是EL表达式,Spring提供了自己的EL表达式,可是它的格式是#{} so.... ${key ...

  2. spring 的 切片Aspect 最常用记录方法执行时间

    /** * */ package com.icil.esolution.aspect; import java.util.Date; import org.aspectj.lang.Proceedin ...

  3. TCP/IP三次握手与四次挥手

    三次握手: TCP(Transmission Control Protocol) 传输控制协议 TCP是主机对主机层的传输控制协议,提供可靠的连接服务,采用三次握手确认建立一个连接 位码即tcp标志位 ...

  4. CSS样式学习-1

    一.分类 ①内联,写在标签中,写法是style="样式属性".优先级最高. 优点:控制精确.缺点:代码重用性差,范围小. 例如: <div style="font- ...

  5. jsfl 常用自定义方法

    //创建文件夹 function creatFile(fileURl) { if (FLfile.createFolder(fileURl)) { //alert("创建成功 "+ ...

  6. BBS-文章详情页、点赞功能

    文章详情页--布局中header和左边区域不变--用到继承 home_site和article_detail只是布局 中心区域 只是右侧不同-----用到继承原理 -------- url # 文章详 ...

  7. APP-8.1-百度语音应用

    1.百度语音登录地址 http://yuyin.baidu.com/ 2.控制台创建应用 3.生成签名 3.1Postman软件应用 APP-8.2-Postman应用 3.2Postman执行 UR ...

  8. ABAP-数据引用

    *&---------------------------------------------------------------------* *& Report ZRICO_TES ...

  9. JAVA 泛型的参数的传递示意图

    泛型的两种参数传递方式

  10. 16.2 profile 显示或者隐藏页面 修改密码

    我们auth在clent端有更加强大的功能 显示或者隐藏component 或者 我们可以阻止或者允许某个用户访问url