时序约束

(1) clock

? ? Q1.1 什么是同步时钟?

? ?? ?时钟频率是整倍数,并且相互之间的相位是固定而且相差可预知的,才可以称得上是同步时钟。其他的都算异步时钟。

? ?? ?比如,

? ?? ?5M,10M是同步

? ?? ?2M,3M一般算异步

? ?? ?一个时钟,输出到另一个芯片中,转一圈后,以同样的频率返回到自己的芯片,因为无法确定时钟在另一个芯片里面的latency,所以输出的时钟与输入的时钟算异步

? ?? ?一个时钟进到2个PLL,就算那2个PLL的输出频率相同,一般也算是异步时钟,除非你de-skew

? ? Q1.2 如何处理同步时钟?

? ?? ?设计要求严格的公司,就算是同步时钟,数据在同步时钟间传送时,依然要用meta-stability FF,可以set_false_path

? ?? ?如果放松要求,不用meta-stability FF,则同步时钟之间是real path,做CTS时,同步时钟要clock tree balance。

? ?? ?注意不同频率的同步时钟的最小时间间隔被用来检查setup

? ?? ?如果上升下降沿混用的话,setup的时间间隔就只有半个时钟周期了

? ? Q1.3 如何处理异步时钟?

? ?? ? 很简单,set_false_path

? ?? ???注意要from A to B,同时要from B to A

? ? Q1.4 如何定义时钟?

? ?? ?create_clock 如果指定某个pin/port,就是实时钟,如果没有指定pin和port,就是虚拟时钟

? ?? ?巧妙利用waveform选项可以做出不同波形的时钟

? ?? ?被定义成时钟的net,在综合时,自动带有ideal network和dont_touch的属性。但是当它被用作data计算延迟时,ideal net的属性会自动消失

? ?? ?时钟会自动穿过逻辑单元,停在时序单元的时钟端,所以用FF产生的分频时钟要再用create_generated_clock定义一次

? ? Q1.5 如何处理多选一时钟?

? ?? ?在实际应用当中,如果这几个时钟不会同时出现的话,则在定义时钟时,只选择最快频率的就可以了

? ?? ?如果是多个时钟同时出现,可以用set_case_analysis选一个,

? ?? ?也可以放它们全都过去,但是在MUX后面把它们之间set_false_path

? ? Q1.6 巧妙定义时钟

? ?? ?直接在分频FF的Q端定义generated clock时,有时会把分频FF的时序打掉,解决办法是在分频FF的Q端加一个时钟buf,从那个buf的输出端定义generated clock,从而保证分频FF自身的时序完整

? ?? ?如果从source clock到generated clock之间有多条路径,你希望PT用指定的一条路径来计算时序的话,可以用set_case_analysis, set_disbale_timing 或者一级一级地定义generated clock来引导PT达到你的要求

? ?? ?分频器时序约束问题

? ?? ?时序分析中同一时钟的不同路径问题

? ?? ?请教如下要求的clock在pt中应该怎么create

? ?? ?怎样设set_case或者别的,才能让pt选择同一条clock path

? ? Q1.7 什么时候需要设置latency?

? ?? ?latency分为source latency 和 network latency 两种。 source latency是源时钟自带的,network latency就是CTS后的clock tree insertion delay。

? ?? ?在综合时,一般不需要latency,

? ?? ?除非,

? ?? ?已知不同clock带有不同的source latency,并且它们之间有时序要求

? ?? ?预知不同clock会有不同的clock tree insertion delay,不想平衡它们,但是要满足他们之间的时序要求

? ?? ?做完CTS后,要把network latency去掉

? ?? ?请问set_clock_latency 设太大会有什么不好

? ? Q1.8 如何设置uncertainty

? ?? ?clock uncertainty分为setup和hold,preCTS和postCTS几种不同的情况

? ?? ?一般的处理原则是:

? ?? ?preCTS,setup: uncertainty = PLL jitter + 预估的clock skew

? ?? ?preCTS,hold: uncertainty = 预估的clock skew

? ?? ?postCTS,set_propagate_clock [all_clocks]

? ?? ?postCTS,setup: uncertainty = PLL jitter

? ?? ?postCTS,hold: uncertainty = 0

? ?? ?有时fundry要求hold uncertainty保留一定的量,这时就把那个保留量加到上面的公式中

? ?? ?sdc文件中对clk的uncertainty、transition、latency的设置

(2) IO端口的约束

? ? Q2.1 如何加IO端口的约束?

? ?? ?最普通的方法是

? ?? ?对输入端,set_input_delay, set_driving_cell (也有用set_input_transition的,但是不多见)

? ?? ?对输出端,set_output_delay,set_load

? ?? ?对时钟端,set_clock_transition

? ?? ?dc综合时的clock transition应该参考什么设定?

? ?? ?set_drive ,set_load

? ? Q2.2 哪些端口不需要约束?

? ?? ?静态信号可以set_false_path,比如reset,test_mode,function_mode_select

? ?? ?不能真的什么约束都不加

? ? Q2.3 什么样的reset信号可以set_false_path?

? ?? ?如果在工作时,reset信号有效时,时钟信号不翻转,就可以set_false_path

? ?? ?如果reset信号动作时,时钟也有动作的话,就不能set_false_path

? ? Q2.4 像reset那样的high fanout信号需要设定为ideal net吗?

? ?? ?如果是false path的话,可以设为ideal net

? ?? ?一般不需要设为ideal net,让DC加入buffer tree后,有利于估算功耗和面积

? ? Q2.5 如果有一组输出信号,需要他们之间对齐,但是不太在乎有多大的延迟,这时应该如何约束?

? ?? ?如果有输出时钟的话,在那个输出时钟端口定义一个generated_clock,其它信号的output_delay都相对于这个generated_clock而定。只要有max和min,就可以把所有信号卡在一个范围之内

? ?? ?如果没有输出时钟的话,用set_output_delay -reference_pin

? ? Q2.6 如何计算input和output delay?

? ?? ?如果是block的input和output delay,可以预先分配,比如输出端,输入端各1/3,中间的连接1/3

? ?? ?block的端口最好都flop-in,flop-out

? ?? ?如果是chip IO,要度其他芯片的IO时序和电路板上面的延迟,比较麻烦

? ?? ?set_input_delay的时间设置

(3) DRV

? ?? ?DRV有时也加DRC,与物理检测的DRC不是一个概念

? ?? ?DRV包括,

? ?? ?set_max_transition??与工艺相关,65nm的话,在0.6ns左右

? ?? ?set_max_fanout??与工艺相关,一般在12~20之间

? ?? ?set_max_capacitance

? ?? ?set_max_power

? ?? ?set_max_area


(4) false path,multicycle path

? ? Q4.1 什么情况下需要set_false_path?

? ?? ?异步时钟之间,

? ?? ?到meta-stability 的第一个FF路径,

? ?? ?静态信号

? ? Q4.2 何时会用到multicycle_path?

? ?? ?太长的path,

? ?? ?不会每个周期都变的信号

? ?? ?注意:在RTL中,前端一定要多周期工作一次的功能

? ?? ?一般set_multicycle_path -setup <n周期>

? ?? ?要同时写set_multicycle_path -hold <n-1周期>

(5) wire load model

? ?? ?wire load model是一种简单地根据fanout来估算wire delay的方法,在综合时,一般根据设计的大小选择对应的WLM

? ?? ?有时也会用zero wire load model,这时的clock period要相应减小15~25%,或者clock uncertainty增加15~25%

? ?? ?set_wire_load_model 两种模式top和enclosed到底有什么区别?

? ?? ?更加准确的计算wire delay的方法是DC topo和RC physical,

? ?? ?他们在综合时会粗略地做个place,然后根据距离来计算延迟

(6) clock gating

? ? Q6.1 如何加clock gating?

? ?? ?局部的clock gating在综合时,会自动加进去。加clock gating后,不但会减小功耗,还会改善时序,因为本来到D端的逻辑,一部分被移到CK端了,简化了D端的逻辑

? ?? ?整个block的clock gating,一般直接在RTL里面加,因为DC没有那么聪明

? ? Q6.2 需要对clock gating加什么特别的约束吗?

? ?? ?如果使用标准库里面的ICG单元,不需要附加任何特别的约束,前后端的工具都认得它

? ?? ?如果用latch+and自己搭的clock gating,你要对那个and单元set_disable_clock_gating_check,还要告诉后端,一定把latch和and摆在一起

? ?? ?一般只在没有动态切换时钟时,才可以用一个and/or做clock gating,这时也要set_disable_clock_gating_check

? ?? ?clock gating cell约束

? ?? ?某个domain的clk通过gating关断重启后,对这个domain做复位有没有必要?

(7) case_analysis

? ? set_case_analysis可以强制某个node为0/1

? ? 这个0/1会沿着纯逻辑组合单元向前传送,如果没有特别设定的话,会停在时序单元上

? ? 注意,只是是向前传,不会向左右2边和向后传

? ? 举例:

? ? 如果设在输出端上,那么所有fanin端都会被强制为0/1

? ? 如果只设在某个输入端上,与之相连的输出端和其他输入端都不受影响

(8) ideal net/network

? ? ideal_net只作用于这条net

? ? ideal_network会把这个属性传送下去

? ? clock net自动带有ideal net属性

? ? 其他net,何时需要设定ideal net?

原文链接:https://blog.csdn.net/u014703817/article/details/53705038

?著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 214,100评论 6 493
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 91,308评论 3 388
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事?!?“怎么了?”我有些...
    开封第一讲书人阅读 159,718评论 0 349
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 57,275评论 1 287
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 66,376评论 6 386
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 50,454评论 1 292
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,464评论 3 412
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 38,248评论 0 269
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,686评论 1 306
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 36,974评论 2 328
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,150评论 1 342
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 34,817评论 4 337
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,484评论 3 322
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,140评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,374评论 1 267
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 47,012评论 2 365
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,041评论 2 351

推荐阅读更多精彩内容

  • https://my.oschina.net/u/4583591/blog/4455472 完整视频链接:链接: ...
    非鱼知乐阅读 7,736评论 0 1
  • 以下三个是最经常被问到的,基本上属于介绍性的题目,无所谓正确答案,在我看来,这些不算真正的问题。 Discuss ...
    蜀湘情缘阅读 6,139评论 0 8
  • 1. 设计约束 上一节描述了设计环境的约束: https://mp.weixin.qq.com/s?__biz=M...
    我喜欢唱跳rap打篮球阅读 1,585评论 0 1
  • 原贴如下,写的很好,转载备查!http://bbs.eetop.cn/thread-636337-1-1.html...
    airland阅读 3,124评论 0 2
  • 表情是什么,我认为表情就是表现出来的情绪。表情可以传达很多信息。高兴了当然就笑了,难过就哭了。两者是相互影响密不可...
    Persistenc_6aea阅读 124,668评论 2 7