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

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

3天内不再提示

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

冬至配饺子 来源:数字后端IC芯片设计 作者:Tao 2023-07-05 10:57 次阅读

虽然sdc大大小小有上百条命令,但实际常用的其实就那么10几条。今天我们来介绍下与时钟相关的命令。主要有以下命令:

create_clock

create_generated_clock

set_clock_uncertainty

set_clock_groups

任何sdc首先定义的都是时钟,对于一个同步电路而言,缓存器和缓存器之间的路径延迟时间必须小于一个Clock 周期(Period),也就是说,当我们确认了Clock 规格,所有缓存器间的路径的Timing Constraint 就会自动给定了。

Clock规格主要包含 WaveformUncertaintyClock 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_clock CLKP -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.05

set_clock_uncertainty -from VIRTUAL_SYS_CLK ***

***-to SYS_CLK -setup 0.3

set_clock_uncertainty -from SYS_CLK ***

***-to CFG_CLK -hold 0.05

set_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,深入研究下!

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

    关注

    2

    文章

    127

    浏览量

    22550
  • 缓存器
    +关注

    关注

    0

    文章

    63

    浏览量

    11652
  • SDC
    SDC
    +关注

    关注

    0

    文章

    48

    浏览量

    15528
  • CTS
    CTS
    +关注

    关注

    0

    文章

    34

    浏览量

    14056
  • 时序分析器
    +关注

    关注

    0

    文章

    24

    浏览量

    5269
收藏 人收藏

    评论

    相关推荐

    时序分析基本概念介绍——时序库Lib,除了这些你还想知道什么?

    时序分析基本概念介绍——时序库Lib。用于描述物理单元的时序和功耗信息的重要库文件。lib库是最
    的头像 发表于 12-15 17:11 1.2w次阅读
    <b class='flag-5'>时序</b><b class='flag-5'>分析</b><b class='flag-5'>基本概念</b><b class='flag-5'>介绍</b>——<b class='flag-5'>时序</b>库Lib,除了这些你还想知道什么?

    详细介绍时序基本概念Timing arc

    时序分析基本概念介绍——Timing Arc
    的头像 发表于 01-02 09:29 2.4w次阅读
    详细<b class='flag-5'>介绍</b><b class='flag-5'>时序</b><b class='flag-5'>基本概念</b>Timing arc

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

    时序分析基本概念介绍——时钟sdc
    的头像 发表于 01-27 09:18 6986次阅读

    时序分析基本概念之生成时钟详细资料介绍描述

    今天我们要介绍时序分析概念是generate clock。中文名为生成时钟。generate clock定义在
    的头像 发表于 09-24 08:12 8915次阅读
    <b class='flag-5'>时序</b><b class='flag-5'>分析</b><b class='flag-5'>基本概念</b>之生成<b class='flag-5'>时钟</b>详细资料<b class='flag-5'>介绍</b>描述

    时序分析时序约束的基本概念详细说明

    时序分析时FPGA设计中永恒的话题,也是FPGA开发人员设计进阶的必由之路。慢慢来,先介绍时序分析中的一些
    发表于 01-08 16:57 28次下载
    <b class='flag-5'>时序</b><b class='flag-5'>分析</b>和<b class='flag-5'>时序</b>约束的<b class='flag-5'>基本概念</b>详细说明

    FPGA设计中时序分析基本概念

    时序分析时FPGA设计中永恒的话题,也是FPGA开发人员设计进阶的必由之路。慢慢来,先介绍时序分析中的一些
    的头像 发表于 03-18 11:07 2649次阅读

    静态时序分析基本概念和方法

    向量和动态仿真 。本文将介绍静态时序分析基本概念和方法,包括时序约束,时序路径,
    的头像 发表于 06-28 09:38 1464次阅读
    静态<b class='flag-5'>时序</b><b class='flag-5'>分析</b>的<b class='flag-5'>基本概念</b>和方法

    介绍时序分析基本概念lookup table

    今天要介绍时序分析基本概念是lookup table。中文全称时序查找表。
    的头像 发表于 07-03 14:30 1435次阅读
    <b class='flag-5'>介绍</b><b class='flag-5'>时序</b><b class='flag-5'>分析</b>的<b class='flag-5'>基本概念</b>lookup table

    时序分析基本概念SDC概述

    今天我们要介绍时序概念是设计约束文件 **SDC** . 全称 ***Synopsys design constraints*** . SDC
    的头像 发表于 07-03 14:51 6213次阅读
    <b class='flag-5'>时序</b><b class='flag-5'>分析</b><b class='flag-5'>基本概念</b>—<b class='flag-5'>SDC</b>概述

    时序分析基本概念介绍&lt;Latency&gt;

    今天要介绍时序分析基本概念是Latency, 时钟传播延迟。主要指从Clock源到时序组件Cl
    的头像 发表于 07-04 15:37 2340次阅读
    <b class='flag-5'>时序</b><b class='flag-5'>分析</b><b class='flag-5'>基本概念</b><b class='flag-5'>介绍</b>&lt;Latency&gt;

    介绍时序分析基本概念MMMC

    今天我们要介绍时序分析基本概念是MMMC分析(MCMM)。全称是multi-mode, multi-corner, 多模式多端角
    的头像 发表于 07-04 15:40 2479次阅读
    <b class='flag-5'>介绍</b><b class='flag-5'>时序</b><b class='flag-5'>分析</b><b class='flag-5'>基本概念</b>MMMC

    时序分析Slew/Transition基本概念介绍

    今天要介绍时序分析基本概念是Slew,信号转换时间,也被称为transition time。
    的头像 发表于 07-05 14:50 3025次阅读
    <b class='flag-5'>时序</b><b class='flag-5'>分析</b>Slew/Transition<b class='flag-5'>基本概念</b><b class='flag-5'>介绍</b>

    时序分析基本概念介绍&lt;generate clock&gt;

    今天我们要介绍时序分析概念是generate clock。中文名为生成时钟。generate clock定义在
    的头像 发表于 07-06 10:34 2186次阅读
    <b class='flag-5'>时序</b><b class='flag-5'>分析</b><b class='flag-5'>基本概念</b><b class='flag-5'>介绍</b>&lt;generate clock&gt;

    时序分析基本概念介绍—Timing Arc

    今天我们要介绍时序基本概念是Timing arc,中文名时序弧。这是timing计算最基本的组成元素,在昨天的lib库介绍中,大部分
    的头像 发表于 07-06 15:00 3311次阅读
    <b class='flag-5'>时序</b><b class='flag-5'>分析</b><b class='flag-5'>基本概念</b><b class='flag-5'>介绍</b>—Timing Arc

    时序分析基本概念介绍&lt;Virtual Clock&gt;

    今天我们介绍时序分析基本概念是Virtual Clock,中文名称是虚拟时钟
    的头像 发表于 07-07 16:52 1376次阅读
    <b class='flag-5'>时序</b><b class='flag-5'>分析</b><b class='flag-5'>基本概念</b><b class='flag-5'>介绍</b>&lt;Virtual Clock&gt;