SDC设计约束(1)——时钟相关约束

作者:夏风喃喃
参考:综合与时序分析的设计约束 —— Synopsys设计约束(SDC)实用指南

文章目录

  • SDC设计约束(1)——时钟相关约束
    • 一. 时钟
      • 1.1 creat_clock(创建时钟)
      • 1.2 虚拟时钟
    • 二. 生成时钟
      • 2.1 creat_generated_clock(时钟分频或倍频)
    • 三. 时钟组
      • 3.1 set_clock_group(异步时钟域)
    • 四. 其他时钟特性
      • 4.1 set_clock_transition(时钟过渡:transition)
      • 4.2 set_clock_uncertainty(时钟不确定性:skew+jitter)
      • 4.3 set_clock_latency(时钟延迟:source latency+network latency)
      • 4.4 set_clock_sense(时钟敏感性:非单边)

一. 时钟

1.1 creat_clock(创建时钟)

creat_clock  -period period_value        #定义时钟周期,如-period 10[source_objects]          #标识时钟源,如[get_ports A][-name clock_name]          #命名时钟,如-name CLK[-waveform edge_list]        #指定占空比,如-waveform {0 5}[-add]                        #多源时钟,加此开关且各源时钟不同名[-comment comment_string]  #注释时钟,字符串纪录时钟信号文档信息

1.2 虚拟时钟

虚拟时钟是指物理上在特定电路单元中不存在的时钟,但它表示影响该电路单元时序的外部触发器。虚拟时钟没有指定的时钟源,用creat_clock模拟虚拟时钟时,只有periodwaveformname选项,没有源对象。如

creat_clock -period 10 -name v_clk -waveform {0 5}

二. 生成时钟

2.1 creat_generated_clock(时钟分频或倍频)

creat_generated_clock    #定义生成时钟的源对象,即生成时钟的引脚,如[get_pins FF1/Q][source_objects]        #定义生成时钟的源时钟的引脚,如-source [get_ports CLK]-source clock_source_pin      #多源时钟复用于一个源时钟的引脚CLK,需指明当前源时钟 #如源时钟C1与C2复用得到生成时钟GC1与GC2,需分别定义GC1与GC2#其中定义GC1加入开关-master_clock C1,定义GC2加入开关-master_clock C2[-master_clock master_clock_name] #生成时钟命名,如-name GCLK1[-name generated_clock_name]     #生成时钟特性,生成时钟的上升-下降-上升沿对应的源时钟边沿序号,为奇数个整数#如-edges {1 3 5},表示二分频的时钟特性#即生成时钟在源时钟第1个边沿处上升,第3个边沿处下降,第5个边沿处上升[-edges edge_list]         #生成时钟特性,时钟分频因子,如二分频-divide_by 2   [-divide_by factor]             #生成时钟特性,时钟倍频因子,如二倍频-multiply_by 2 [-multiply_by factor]           #使用分频或倍频时,生成时钟相位取反,用于定义D触发器的反向输出端时钟[-invert]  #时钟沿位移,与-edges有相同数量的浮点数#表明-edges中每个边沿的超前或滞后情况#如-edge_shift {0 2 0},其中的单位为ns#表示生成时钟的第1个与第2个上升沿无位移,第1个下降沿滞后2ns               [-edge_shift shift_list]#配合倍频使用,确定占空比,50表示占空比50%,如-duty_cycle 50[duty_cycle percent]       #使能组合电路路径,源时钟引脚到生成时钟引脚的路径是纯组合电路时使用#可以阻隔路径中的时序电路,组合电路始终有效[-combinational]#多源时钟,除第一个源时钟外,其他源时钟需加此开关,否则会被最后一个源时钟覆盖#各源时钟-name不同名[-add]#注释时钟,字符串纪录时钟信号文档信息[-comment comment_string]

三. 时钟组

3.1 set_clock_group(异步时钟域)

creat_clock_groups   #定义时钟组的名称[-name group_name]#将不同的时钟分组,如将异步时钟C1与C2分入不同组为-group C1 -group C2[-group clock_list]#各组之间的关系有以下三种:#(1)逻辑独立,时钟组中各组互斥但具有耦合关系时,即各组时钟同时存在时使用#与物理独立,异步互斥[-logically_exclusive]#(2)物理独立,时钟组中各组时钟以多路复用实现,并不同时共存于电路网络中时使用#与逻辑独立,异步互斥[-physically_exclusive]#(3)异步,时钟不共享相位关系时使用#与逻辑独立,物理独立互斥[-asynchronous]#异步且希望执行串扰分析而不禁用时钟之间的时序电路路径时使用#仅可与-asynchronous一起使用,用于信号完整性检查[-allow_paths]#注释时钟组,字符串纪录时钟组信号文档信息[-comments comment_string]

时钟分组建议:

  1. 如果设计中共存多个时钟,却没有相位关系,则应在set_clock_group中设定-asynchronous
  2. 如果设计中共存多个时钟,并且电路仅选择其中一个,则应在set_clock_group中设定-logically_exclusive
  3. 如果设计中不能共存多个时钟,则应在set_clock_group中设定-physically_exclusive

四. 其他时钟特性

4.1 set_clock_transition(时钟过渡:transition)

set_clock_transition[-rise]              #上升沿过渡时间[-fall]             #下降沿过渡时间[-max]              #最大过渡时间[-min]               #最小过渡时间clock_list           #应用的时钟,如[get_clocks CLK]transition_time      #过渡时间的数值,单位为ns

4.2 set_clock_uncertainty(时钟不确定性:skew+jitter)

set_clock_uncertainty#两个异步时钟之间的不确定度[-from|-rise_from|-fall_from from_clock]#交互时钟的起始边沿,如-from C1[-to|-rise_to|-fall_to to_clock]       #交互时钟的结束边沿,如-to C2#单个时钟内部时钟的不确定度[-setup] #建立时间不确定度[-hold]        #保持时间不确定度[-rise]        #上升沿时间不确定度[-fall]       #下降沿时间不确定度[object_list]     #时钟的源对象,如[get_clocks CLK]Uncertainty_value   #不确定度的数值,单位ns

4.3 set_clock_latency(时钟延迟:source latency+network latency)

set_clock_latency[-rise]     #上升沿的延迟[-fall]      #下降沿的延迟[-min]       #最小延迟[-max]     #最大延迟[-source]  #片外时钟源至模块时钟端口间的延迟,如-source 0.5#若关闭此开关,则表示模块时钟端口至触发器件之间的延时[-late]      #片内时钟源至模块时钟端口的最长路径延迟,如-source -late 1.0[-early]  #片内时钟源至模块时钟端口的最短路径延迟,如-source -early 0.5[-clock clock_list]  #多个时钟通过一个模块端口的延迟,如-clock {C1 C2}delay        #延迟的数值,单位为nsobject_list  #对引脚设定延迟,如[get_ports A]

4.4 set_clock_sense(时钟敏感性:非单边)

set_clock_sense#三个开关互斥#-positive指示正单边#-negative指示负单边#-stop_propagation指示禁用部分时钟的传递[-positive|-negative|-stop_propagation]#创建时钟脉冲,可选项为#rise_triggered_high_pulse#rise_triggered_low_pulse#fall_triggered_high_pulse#high_triggered_low_pulse#如-pulse rise_triggered_high_pulse,表示时钟上升沿产生一个高电平的脉冲#脉冲的宽度为|rise_latency - fall_latency|[-pulse pulse]       [-clock clock_list] #定义影响指定敏感性引脚的时钟源pin_list            #需要指定敏感性的引脚,如[get_pins XOR/Z]

SDC设计约束(1)——时钟相关约束相关推荐

  1. 【前端设计】SDC中生成时钟create_generated_clock语法解析

    我们的目标是┏ (゜ω゜)=☞芯片前端全栈工程师~喵! 前言 好久没有写前端设计系列的博客了,这次因为要在系统里加入时钟分频器因此复习一下sdc中关于生成时钟的约束语法,以下内容来自<综合与时序 ...

  2. FPGA之道(78)静态时序分析(四)内部时钟相关时序分析

    文章目录 前言 内部时钟相关时序分析 单时钟域时序分析 多时钟域时序分析 同源时钟的时序分析 PLL.DCM的时序分析 相关时钟的时序分析 数据用作时钟的时序分析 异步逻辑时序分析 多时钟驱动同一时钟 ...

  3. (53)多路时钟复用FPGA如何约束二(片内时钟复用约束)

    1.1 多路时钟复用FPGA如何约束二(片内时钟复用约束) 1.1.1 本节目录 1)本节目录: 2)本节引言: 3)FPGA简介: 4)多路时钟复用FPGA如何约束二(片内时钟复用约束): 5)结束 ...

  4. (52)多路时钟复用FPGA如何约束一(片外时钟复用约束)

    1.1 多路时钟复用FPGA如何约束一(片外时钟复用约束) 1.1.1 本节目录 1)本节目录: 2)本节引言: 3)FPGA简介: 4)多路时钟复用FPGA如何约束一(片外时钟复用约束): 5)结束 ...

  5. 芯片设计中的时钟与约束

    1.同步电路与异步电路 首先来谈谈同步电路与异步电路.那么首先就要知道什么是同步电路.什么是异步电路? 对于同步时序电路,不同的文章有不同的说法,大致有下面的定义方法: ①对于比较严格的定义:一个电路 ...

  6. 静态时序分析简明教程(四)]时钟常规约束

    STA的时钟常规约束 一.写在前面 1.1 快速导航链接· 二.时钟的特征 三.create_clock 3.1 定义时钟周期 3.2 标识时钟源 3.3 命名时钟 3.4 指定占空比 3.5 同源多 ...

  7. 数字设计中的时钟与约束

    数字设计中的时钟与约束 </div> ps:可以转载,转载请标明出处:http://www.cnblogs.com/IClearner/ 最近做完了synopsys的DC workshop ...

  8. sdc:基本的时序路径约束

    文章目录 sdc:基本的时序路径约束 1.概念 时序路径 关键路径 路径约束 1.路径2(寄存器到寄存器的路径)约束 2.路径1(输入到寄存器D端)的约束 3.路径3(寄存器到输出端口)的约束 4.路 ...

  9. FPGA之道(67)代码中的约束信息(四)状态机的相关约束

    文章目录 前言 状态机的相关约束 fsm_extract fsm_style fsm_encoding enum_encoding safe_implementation safe_recovery_ ...

最新文章

  1. ACM MM'21 | 超轻量8.5M!更高效的RGB-D显著性检测模型DFM-Net
  2. 【c语言】蓝桥杯2020校内模拟赛c组
  3. mysql构架,索引,视图,查询语句
  4. 维护人员的VMware日常工作
  5. android listview显示数据库内容
  6. Scrapy八小时快速入门第一小时:安装,创建与执行我们的Scrapy爬虫
  7. Linux 平台安装 Oracle Timesten
  8. 贪心(数据结构):COGS 468. [NOI2010]超级钢琴
  9. android的读取xml配置文件,android中XMl文件的读取
  10. 云+X案例展 | 民生类:基于AWS PaaS构建基础集团企业级中台
  11. 剑指|| offer1整数除法
  12. 优化数据库语句的几个简单技巧
  13. 7、matplotlib条形图的绘制
  14. Code-NFine:NFine介绍
  15. php 单位食堂订餐,职工食堂微信订餐系统 单位饭卡消费系统
  16. 二维码生成器 python excel_python 自动生成excel
  17. 神经网络控制与matlab仿真,神经网络matlab代码程序
  18. 在设计条形音箱时,确保您的无线技术能够提供最高质量的、可靠的音频
  19. quill-editor使用方法,图片base64位转为url缩减字符长度,以及显示文字个数,光标位置等
  20. mybatis注解记录

热门文章

  1. 使用cmi工具连接服务器远程装机exsi
  2. java字符串整齐输出
  3. mysql --- mongodb --- nginx 知识点总结
  4. 游戏运维名词解释和经验之谈
  5. Java代码实现PDF中表格导出到Excel
  6. 07年中国互联网10个特色网站 [转]
  7. 【数据结构与算法】Java实现七大排序算法汇总
  8. css实现斑马线条纹
  9. 边缘与云计算如何结合以创建工业自动化平台
  10. 动手学数据分析Task2第一节数据清洗及特征处理