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

时钟基本概念: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. ?: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端口对应的时钟即可。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值