创建基本时钟周期约束。(验证我们的设计能否在期望的频率上运行)

(学习记录,晚一点会做实验传上来的。)

时钟基本概念:https://blog.csdn.net/wordwarwordwar/article/details/78259208

时序约束的基本概念:https://blog.csdn.net/zz_Caleb/article/details/84453792

  1. 约束是如何构成的

    1. 时序约束
    2. 物理约束
    3. 当前的约束是用在哪个过程中
      1. 通常情况下,时序约束是在综合和实现的时候都会用到,物理约束一般是在实现的时候会被用到。
      2. 如果我们有多个约束文件,我们一定需要一个target文件,用于保存最新额约束。方法是左键选择
  2. 时钟描述
    1. 基本要素

      1. 时钟周期
        1. Period=10
      2. 占空比
        1. Waveform={0,5} //0指上升沿,5指下降沿,单位是ns不用谢
      3. 相位
    2. 主时钟(primary clock)这是我们首先要确定的。
      1. 实际上指的是板子上的晶振。
      2. (sysclk是package pin上的管脚)
      3. 对于GTH Transceivers http://www.bubuko.com/infodetail-2087865.html
  3. 生成时钟(Generated clock)
    1. 用户自定义的生成时钟

      1. 通过进行定义。
      2. 通常用户定义的时钟,是通过RTL代码描述的时钟。
      3. 举例如下:
        1. 二分频时钟源
        2. 先要定义primary clock source point
        3. 再确定生成时钟的位置(蓝色)
            1. –source:用get_ports指定
            2. –name:生成时钟的名字
            3. –divide_by 2:生成时钟的位置
          1. 第二种方式是我们使用get_pin
            1. –source:rega的时钟端口
          2. 第三种方式
            1. 编号从1开始,clkin的第一个上升沿对准clkdiv2的第一个边沿。Clkdiv2的下降沿对应clkin的第三个边沿。clkdiv2的第二个上升沿对应clkin的第五个沿。
    2. 自动推断出来的时钟(我们不需要进行约束,只需要对primary time进行约束即可)
      1. 我们着重注意-source属性
      2. 典型应用:时钟进来以后通过MMCM或者PLL生成不同的时钟。通常我们会调用MMCM的这个Ip包。
      3. 生成时钟的名字,就是与clkout连接的net上的名字(cpiclk)。
      4. 当我们使用Clocking wizard ip核的时候,我们可以对port 进行rename。
      5. vivado下创建基本时序周期约束的更多相关文章

        1. Vivado Design Suite用户指南之约束的使用第二部分(约束方法论)

          Constraints Methodology(约束方法论) 关于约束方法论 设计约束定义了编译流程必须满足的要求,以使设计在板上起作用. 并非所有步骤都使用所有约束在编译流程中. 例如,物理约束仅在 ...

        2. Tcl与Design Compiler (六)——基本的时序路径约束

          本文属于原创手打(有参考文献),如果有错,欢迎留言更正:此外,转载请标明出处 http://www.cnblogs.com/IClearner/  ,作者:IC_learner 时序约束可以很复杂,这 ...

        3. Android下创建一个输入法

          输入法是一种可以让用户输入文字的控件.Android提供了一套可扩展的输入法框架,使得应用程序可以让用户选择各种类型的输入法,比如基于触屏的键盘输入或者基于语音.当安装了特定输入法之后,用户即可在系统 ...

        4. 微软Azure 经典模式下创建内部负载均衡(ILB)

          微软Azure 经典模式下创建内部负载均衡(ILB) 使用之前一定要注意自己的Azure的模式,老版的为cloud service模式,新版为ARM模式(资源组模式) 本文适用于cloud servi ...

        5. 无法在“EntityFramework”已存在的情况下创建影像复制该文件的解决方案

          问题产生的原因:你项目正在生成中你就打开浏览器预览了,导致这个问题解决方案:右击重新生成项目,等生成后再打开 “/”应用程序中的服务器错误. 无法在“EntityFramework”已存在的情况下创建 ...

        6. Linux:Ubuntu16.04下创建Wifi热点

          Linux:Ubuntu16.04下创建Wifi热点 说明: 1.Ubuntu16.04里面可以直接创建热点,而不用像以前的版本,还要其他辅助工具. 2.本篇文章转载自编程人生 具体步骤如下: 1.  ...

        7. 在Mac下创建ASP.NET Core Web API

          在Mac下创建ASP.NET Core Web API 这系列文章是参考了.NET Core文档和源码,可能有人要问,直接看官方的英文文档不就可以了吗,为什么还要写这些文章呢? 原因如下: 官方文档涉 ...

        8. 解决Oracle在scott用户下创建视图(VIEW)权限不足的方法

          问题描述:在scott用户下创建视图的时候,报错:权限不足.(其他用户以此类推)解决方法: 以dba用户登录 sqlplus / as sysdba 赋予scott用户创建VIEW的权限 grant  ...

        9. windows环境下创建 .文件夹

          一.windows环境下创建 .文件夹 1.新建一个文件夹 2.重命名为.properties.(名字前后都加点) 二.windows环境下创建 .文件 1.上面的方法对文件同样适用 2.运行CMD, ...

        随机推荐

        1. ListView的DrawSubItem时间添加边框,字体变粗问题

          procedure TFrmrdp.ListView1AdvancedCustomDrawSubItem(Sender: TCustomListView; Item: TListItem; SubIt ...

        2. Linux学习《第五章 用户身份与文件权限》

        3. 死循环(endless loop)

          死循环 死循环就是一个无法结束的循环.(endless loop / infinite loop) 出现死循环是因为没有设置好结束条件,循环的结束条件很重要,要充分考虑各种边界情况. 以上一篇随笔中的 ...

        4. oracle11g更改字符集

          一.查看服务器字符集编码三种方式:1)select userenv('language') from dual; -- 推荐2)select * from V$NLS_PARAMETERS;3)sel ...

        5. border-radius 在 浏览器开发者工具移动端里是有效的,在真机是无效的。

          border-radius 在 浏览器开发者工具移动端里是有效的,在真机是无效的,怎么解决? 答案是 border-radius:20px !important 加上!important 就好了.

        6. 数据结构必做题参考:实验一T1-20,实验2 T1

          实验一T1-10 #include <bits/stdc++.h> using namespace std; ; struct Book { string isbn; string nam ...

        7. archlinux下安装mysql

          mysql的安装 这里安装的是mariadb一个mysql的开源版本,实际使用体验没有差别 1. 安装Maria DB sudo pacman -S mariadb 2. 配置目录 sudo mari ...

        8. 基础语法-选择结构switch

          基础语法-选择结构switch 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.Switch语句特点 switch语句选择的类型在jdk1.6只支持四种:byte,short,i ...

        9. MyBatis的初始化过程。

          对于任何框架而言,在使用前都要进行一系列的初始化,MyBatis也不例外.本章将通过以下几点详细介绍MyBatis的初始化过程. 1.MyBatis的初始化做了什么 2. MyBatis基于XML配置 ...

        10. JS高级学习笔记(6)- 事件循环

          参考文章:深入理解JS引擎的执行机制        JavaScript 异步.栈.事件循环.任务队列 我的笔记:ES系列之Promise async 和 await Event Loop 前提 js ...