vivado下建立基本时序周期约束

建立基本时钟周期约束。(验证咱们的设计可否在指望的频率上运行)html

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

 

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

时序约束的基本概念: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. 🔗:https://blog.csdn.net/u011327754/article/details/79780999
  4. Report_clocks命令
      1. Propagated:表面时钟的特性,波形抖动,会日后传播。
      2. Generated:生成时钟。
  5. 时钟分组(clock Group)
    1. 时钟分类(一般vivado认为时钟都是相关的,因此若是咱们实际项目中有时钟来自于两个不一样的晶振,咱们须要时钟约束告诉fpga时钟是不相关的。)
      1. 同步时钟
        1. 使用creat_clock进行时钟约束。
      2. 异步时钟
        1. 咱们要告诉这两个源时钟源是没有关系的。
      3. Unexpandable clocks
        1. 由于launch edge和capture edge的时钟不一样步,因此在咱们作setup分析的时候,创建于两的值会有两个。(如图红色虚线)他最终会使用较短的时间做为创建时的requerament(及最小公倍数)。
        2. 可是若是这个最小公倍数不存在或者很难找到(好比clk0=5.125ns clk1=6.666ns)那么 Path requirement between two clocks are not reasonable。
        3. 须要经过方法进行约束
      4. Exclusive clock group
        1. 由于多路选择器的存在,Clk0和clk1不可能同时工做。
  6. 特性
    1. 全部的时钟都是默认相关的
    2. 对于异步时钟咱们能够经过set_clock_group建立时钟组,可是咱们须要很好的设计保证可靠性。
  7. 约束时钟频率
    1. 若是咱们的设计是差分时钟,咱们只用去约束p端口对应的时钟便可。
相关文章
相关标签/搜索