内部时钟的定义:

create_generated_clock,通过-source,-edges,-divide_by,-multiply_by来执行clock沿。

create_generated_clock -name DIVIDE -source [get_ports SYSCLK] -divide_by 2 [get_pins FF1/Q]

-source来指定参考时钟,以它的rising edge来进行后续的edge操作。

最后的get_pins,指定generated clock的定义点,之后fanout的clock,称为该clock。

-edges操作,指定{上升沿,下降沿,上升沿}  -edges{1 5 7}

generated clock的定义也会create一个新的clock domain,供PT分析。

generated clock可以进行shift移位,这个时间不作为clock latency来进行计算。

create_generated_clock -edges {3 5 9} -edge_shift {2.2 2.2 2.2} -name DIV3 -source [get_ports SYSCLK] [get_pins U4/QN]

-name选项,指定generated clock的名字。

-edge_shift选项,指定相对于edge的移动时间。

在一个source的port上有多个clock时,可以通过-master_clock来选择某一个作为source。

这时,同时使用-source和-master_clock

generated clock的选择,使用-filter选项或者搜索名字规则。

set_false_path -from [get_clocks CLK_DIV*] -to [get_clocks CLKB]

set_false_path -from [get_clocks CLK* -filter "is_generated==TRUE"] -to [get_clocks CLKB]

去掉定义的generated clock

remove_generated_clock

generated clock的source latency会继承master clock的source latency,所以generated clock的source latency一般会比master的大。

PT选择,generated clock内的worst-case path来计算generated clock的source latency。

source latency表示源时钟自带的延时,network latency表示CTS之后clock tree insertion delay,所以DC阶段不需要设置network latency,

除非不同的clock有不同的clock tree insertion delay,又不想平衡这些clock,

Pulse clock:算是一种特殊的clock,通过PG模块(Pulse generated)产生,使用set_clock_sense来进行定义,

set_clock_sense -pulse rise_triggered_high_pulse get+pins and2/z

对于pulse的建模有四种方式:rise_tiggered_high_pulse

rise_tiggered_low_pulse

fall_tiggered_low_pulse

fall_tiggered_high_pulse

通过set_pulse_clock_min_width和set_pulse_clock_max_width来对clock pulse的width进行约束。

generated clock的更多相关文章

  1. CTS 如何处理 gating clock 和 generated clock

    1. CTS 时会将 ICG cell 作为 implicit nostop pin 处理,直接穿透,以 ICG cell 后面的 sink 点作为真正的 sink 来长 tree 2. CTS 时会 ...

  2. clock gating and PLL

    一个gating的clock是指:clock network除了包含inverter和buffer外,还有其他logic. PrimeTime会自动的对gating input进行setup和hold ...

  3. clock divider

    一个clock的产生: 1) Clock source的选择: cgm_mux5(.clk_out, .clk_in0, .clk_in1, .clk_in2, .clk_in3, .clk_in4, ...

  4. clock时钟

    ①时钟的偏移(skew):时钟分支信号在到达寄存器的时钟端口过程中,都存在有线网等延时,由于延时,到达寄存器时钟端口的时钟信号存在有相位差,也就是不能保证每一个沿都对齐,这种差异称为时钟偏移(cloc ...

  5. Timequest GUI

    Tasks界面 使用Tasks界面可以访问常用命令,例如生成网表建立报告等. 两个常用命令位于Tasks界面中:打开工程和编写SDC文件.其他命令在下面的文件夹中: Netlist Setup Rep ...

  6. STA分析(七) sdc

    STA分析前的环境设置,包括:setup clocks,specifying IO characteristics 1)定义一个master clock:create_clock -name .. - ...

  7. 【黑金原创教程】【TimeQuest】【第七章】供源时钟与其他

    声明:本文为黑金动力社区(http://www.heijin.org)原创教程,如需转载请注明出处,谢谢! 黑金动力社区2013年原创教程连载计划: http://www.cnblogs.com/al ...

  8. Xilinx Spartan6常用资源Verilog例化

    // DSP48A1 : In order to incorporate this function into the design, // Verilog : the following insta ...

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

    创建基本时钟周期约束.(验证我们的设计能否在期望的频率上运行) (学习记录,晚一点会做实验传上来的.) 时钟基本概念:https://blog.csdn.net/wordwarwordwar/arti ...

随机推荐

  1. 【JavaService】部署Java jar为Windows后台服务

    将Java jar文件部署为Windows后台服务有多种方法:Service Installer.Java service Wrapper.JavaService.exe等等.这里介绍下使用JavaS ...

  2. Convert between cv::Mat and QImage 两种图片类转换

    在使用Qt和OpenCV混合编程时,我们有时需要在两种图片类cv::Mat和QImage之间进行转换,下面的代码参考了网上这个帖子: //##### cv::Mat ---> QImage ## ...

  3. [zt]系统中常用MIPS指令

    指令 功能 应用实例 LB 从存储器中读取一个字节的数据到寄存器中 LB R1, 0(R2) LH 从存储器中读取半个字的数据到寄存器中 LH R1, 0(R2) LW 从存储器中读取一个字的数据到寄 ...

  4. HTTP协议 (五) 代理

    HTTP协议 (五) 代理 阅读目录 什么是代理服务器 Fiddler就是个典型的代理 代理作用一:FQ 代理作用二:匿名访问 代理作用三:通过代理上网 代理作用四:通过代理缓存,加快上网速度 代理作 ...

  5. JavaScript 几种简单的table切换

    方法一:for循环+if判断当前点击与自定义数组是否匹配 <!DOCTYPE html> <html lang="en"> <head> < ...

  6. Vim 常见操作

    1.复制所有内容 按照此顺序敲即可:gg(光标定位到文件头)  V(选中该行) G(选中该行开始到最后一行结尾) y(复制选中内容) 2.粘贴所有内容 正常模式下,敲p即可,如果遇到粘贴内容不全,需要 ...

  7. 面试之servlet、过滤器、监听器

    servlet.过滤器.监听器servlet是Java中WEB请求和响应的容器servlet的运行需要在类似tomcat容器中,一个 Web 应用对应一个 Context 容器,也就是 Servlet ...

  8. js console 一些拓展技巧

    console.time 方法 / console.timeEnd() 方法 统计一段代码的执行时间, 形参必须一致 console.time("string"); for(var ...

  9. vue 倒计时

    简单粗暴 export default { data () { return { timer: 30, //默认倒数30秒 stop : false, //默认是停止的,但界面加载之后会变成false ...

  10. free一个无效指针

    1. 错误描述:   刚才写了一个删除单链表的结点函数, 参数是 指向链表的指针和链表中指定删除的结点的指针.  当我free这个待删除的结点, 结果报错. 2. 为什么会报错? 我查了查MSDN, ...