0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

详细介绍下与时钟相关的命令

数字后端IC芯片设计 2018-01-27 09:18 次阅读

上次介绍了sdc的基本概念,那接下来几期,我们来讲解一些比较常用的sdc命令。虽然sdc大大小小有上百条命令,但实际常用的其实就那么10几条。今天我们来介绍下与时钟相关的命令。主要有以下命令:

create_clock

create_generated_clock

set_clock_uncertainty

set_clock_groups

任何sdc首先定义的都是时钟,对于一个同步电路而言,缓存器和缓存器之间的路径延迟时间必须小于一个Clock 周期(Period),也就是说,当我们确认了Clock 规格,所有缓存器间的路径的Timing Constraint 就会自动给定了。Clock规格主要包含Waveform、Uncertainty和Clock group的定义。我们把它们称为时钟的三要素,当然创建任何时钟都要检查一下这三者有没有正确定义。

create_clock

主要定义一个Clock的source源端、周期、占空比(时钟高电平与周期的比例)及信号上升沿及下降沿的时间点。

来看一个最简单的例子:

详细介绍下与时钟相关的命令

这个时钟描述成sdc语句就是:

create_clock -name SYSCLK -period 20 \

-waveform {0 5} [get_ports2 SCLK]

waveform后面跟上升沿和下降沿的时间

-waveform {time_rise time_falltime_rise time_fall ...}

如果没指定-period,默认的waveform为{0, period/2}

create_generated_clock

generated clocks是另外一个重要的时钟概念

generated clocks 是从master clock中取得的时钟定义。master clock就是指create_clock命令指定的时钟产生点,如图所示:

详细介绍下与时钟相关的命令

我们可以用如下命令来描述generated clocks:

#定义master clock

create_clock -name CLKP -period 10 \

-waveform {0 5} [get_pins UPLL0/CLKOUT]

#在Q点定义generated clock

create_generated_clock -name CLKPDIV2 \

-source UPLL0/CLKOUT \

-master_clockCLKP -divide_by 2 [get_pins UFF0/Q]

一般我们把时钟的源头会定义成create_clock,而分频时钟则会定义为create_generated_clock. 两者的主要区别在于CTS步骤,generated clock并不会产生新的clock domain, 而且定义generated clock后,clock path的起点始终位于master clock, 这样source latency并不会重新的计算。这是定义generated clock的优点所在。

Virtual clock

这边还有一个经常用的概念就是Virtual Clock,虚拟时钟。

前面介绍的create_clock,create_generated_clock都是real clock。而virtual clock则不挂在任何port或者pin上,只是虚拟创建出来的时钟。如下所示:

#定义虚拟时钟

create_clock -name VCLK -period 10 -waveform {0 5}

我们通常会把input/output delay挂在virtual clock上,因为input/output delay约束本来就是指片外的时钟,所以挂在虚拟时钟上较为合理。当然如果要省事情,直接挂在real clock上也是可以的。

set_clock_uncertainty

主要定义了Clock信号到时序器件的Clock端可能早到或晚到的时间。主要是用来降低jitter对有效时钟周期的影响。值得注意的是,在setup check中,clock uncertainty是代表着降低了时钟的有效周期;而在hold check中,clock uncertainty是代表着hold check所需要满足的额外margin。

来看下面一条reg2reg path. 对照着如下时钟波形图。可以写出下面的约束。

详细介绍下与时钟相关的命令

set_clock_uncertainty-from VIRTUAL_SYS_CLK \

-to SYS_CLK -hold 0.05set_clock_uncertainty -from VIRTUAL_SYS_CLK \

-to SYS_CLK -setup 0.3set_clock_uncertainty -from SYS_CLK \

-to CFG_CLK -hold 0.05set_clock_uncertainty -from SYS_CLK \

-to CFG_CLK -setup 0.1

set_clock_groups

定义完时钟后,我们也需要通过设置clock group来确认各个时钟之间的关系。这是很重要的一步,因为通常我们还需要做cross domain check,如果clock group设错了,会导致整个STA检查错误。一般有三个选项:asynchronous,physically_exclusive和logically_exclusive。

asynchronous代表两个异步的clock group

physically_exclusive代表两个clock group在物理意义上相互排斥,比如在一个source pin上定义了两个时钟。

logically_exclusive代表两个clock group在逻辑上相互排斥,比如两个clock经过MUX选择器。一个简单的例子:

set_clock_groups -physically_exclusive \

-group {CLK1 CLK2}-group {CLK3 CLK4}

clock group的定义异常谨慎,需要和前端再三确认。

时钟的定义就到此为止了,只是一些基础的概念,具体命令还有很多延伸扩展的内容,大家要去翻doc,深入研究下!

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 时钟
    +关注

    关注

    10

    文章

    1479

    浏览量

    130295
  • SDC
    SDC
    +关注

    关注

    0

    文章

    46

    浏览量

    15299

原文标题:时序分析基本概念介绍——时钟sdc

文章出处:【微信号:IC_Physical_Design,微信公众号:数字后端IC芯片设计】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    MCU时钟相关功能引脚操作

    目前 i.MXRT1xxx 系列主要分为 i.MXRT10xx 和 i.MXRT11xx 两大分支。这两个分支的时钟系统设计是有一些差异的,不过总体来说,架构差别不大,我们以如下 i.MXRT1170 的时钟架构为例来具体介绍
    的头像 发表于 09-28 14:40 2537次阅读
    MCU<b class='flag-5'>时钟相关</b>功能引脚操作

    MSP430G2231单片机,求助其时钟相关问题,在线等!!!

    ,我觉得指令周期应该随时钟周期变化的吧,为什么手册上直接写它的指令周期是62.5ns呢?在程序中只禁看门狗,对时钟相关寄存器不操作的情况,使用内部晶振,此时的指令周期到底是多少呢?
    发表于 07-25 11:22

    关于SPI的配置问题,就是时钟的极性和时钟相位问题

    关于SPI的配置问题,就是时钟的极性和时钟相位问题
    发表于 07-04 16:54

    时钟相噪对ADC性能的影响是什么?

    时钟相噪对ADC性能的影响是什么?锁相环的基本原理和相噪优化方式
    发表于 04-07 06:25

    总结RTC(Real Time Clock)实时时钟相关的知识

    STM32F030_RTC详细配置说明今天总结RTC(Real Time Clock)实时时钟相关的知识。在进行RTC的讲解前,我先对BKP进行一个简单的讲解。STM32的RTC模块和时钟配置系统
    发表于 08-05 08:19

    RTC实时时钟相关知识点汇总,不看肯定后悔

    RTC实时时钟相关知识点汇总,不看肯定后悔
    发表于 11-23 07:12

    32单片机时钟相关知识

    32单片机时钟相关知识使用HSE配置系统时钟,可以用来控制灯的亮灭快慢
    发表于 12-06 07:01

    HbirdV2-SoC中如何配置QSPI1和QSPI2的时钟极性CPOL和时钟相位CPHA?

    HbirdV2-SoC中QSPI0的时钟极性CPOL和时钟相位CPHA可以通过SPI_SCKMODE寄存器来配置;在QSPI1和QSPI2中没有找到相关寄存器,如何配置QSPI1和QSPI2的
    发表于 08-12 06:17

    AD7606 SPI通信的时钟极性和时钟相位要求是什么?

    AD7606的关于SPI通信的时钟极性和时钟相位要求是什么? 我的主控芯片采用SPI有AD7606通信,我在数据手册中好像没有看到专门关于SPI通信时钟极性和时钟相位的描述和规定?请问
    发表于 12-01 06:56

    一种基于FPGA的时钟相移时间数字转换器_王巍

    一种基于FPGA的时钟相移时间数字转换器_王巍
    发表于 01-07 22:23 2次下载

    时钟相关的PCB的设计考虑主要分为两部分

    今天我们讲一下与时钟(clock)相关的PCB的设计考虑,主要分两部分:原理图设计 - 针对时钟电路应该放置哪些器件?以及PCB布局和走线 - 如何摆放与时钟相关的元器件并正确连线达到
    发表于 11-25 11:09 1457次阅读

    FPGA中的时钟相关概念

    一、时钟相关概念 理想的时钟模型是一个占空比为50%且周期固定的方波。Tclk为一个时钟周期,T1为高脉冲宽度,T2为低脉冲宽度,Tclk=T1+T2。占空比定义为高脉冲宽度与周期之比,即T1
    的头像 发表于 01-15 09:37 4459次阅读
    FPGA中的<b class='flag-5'>时钟相关</b>概念

    32单片机 时钟 HSE配置系统时钟(五)

    32单片机时钟相关知识使用HSE配置系统时钟,可以用来控制灯的亮灭快慢
    发表于 11-23 18:21 8次下载
    32单片机 <b class='flag-5'>时钟</b> HSE配置系统<b class='flag-5'>时钟</b>(五)

    时序分析基本概念介绍时钟sdc

    虽然sdc大大小小有上百条命令,但实际常用的其实就那么10几条。今天我们来介绍下与时钟相关命令
    的头像 发表于 07-05 10:57 1254次阅读
    时序分析基本概念<b class='flag-5'>介绍</b>—<b class='flag-5'>时钟</b>sdc

    SPI时钟极性和时钟相

    在 SPI 中,主机可以选择时钟极性和时钟相位。在空闲状态期间,CPOL 为设置时钟信号的极性。空闲状态是指传输开始时 CS 为高电平且在向低电平转变的期间,以及传输结束时 CS 为低电平
    的头像 发表于 07-21 10:08 3393次阅读
    SPI<b class='flag-5'>时钟</b>极性和<b class='flag-5'>时钟相</b>位