SDC常用命令说明

1. SDC概述

sdc(synopsys design constraints)是后端芯片设计的命脉,对电路的时序、面积和功耗进行约束。该约束与芯片规格相匹配才能发挥自己的作用。约束不能松也不能紧,太松了达不到芯片的功能要求。太紧了对成本,布局布线都不太友好。所以需要寻找个适中的点,也是很多工作的难点都是找到一个平衡点。

1. 时钟相关

1.1 create_clock

  1. 简单语法实例
    create_clock -period 10 -name clk_100 [get_ports clk]
  • 语法说明
    创建一个时钟周期为10ns,名字为clk_100的时钟放在了模块端口clk上。需要保证clk在顶层端口中能找到;
  1. 其他参数说明
  • -waveform:指明创建时钟的变化沿时间点
    create_clock-period 10 -waveform {4 6} -name clk [get_ports clk]
    创建一个周期为10的时钟,上升沿在4这个点上,下降沿在6这个点上。由于这个选项第一个时间点为上升沿的时间点,若希望在第一个10单位时间内下降沿在前面,参考 -waveform疑难杂症说明
  • -add:一个端口声明多个时钟;
    1. create_clock-period 10 -waveform {4 6} -name clk [get_ports clk] 2.create_clock-period 8 -waveform {4 6} -name clk2 -add [get_ports clk]
    若第二句约束没有添加-add说明,则会覆盖掉1约束。此约束语句约束了两个时钟在一个端口;
  • 其它说明
    1. create_clock-period 10 -waveform {4 6} -name clk
    语句也可不加get_ports选项,说明这个为虚拟时钟,内部未使用到。仅用于后续约束方便所以创建的时钟。

1.2 create_generated_clock

  1. 语法实例
    create_generated_clock -name CLKdiv2 -divide_by 2 -source CLK [get_pins U_xxx/Q]
    创建一个CLK进行2分频的时钟CLKdiv2,并将该时钟放到pin U_xxx/Q上;
  2. 参数说明
  • -master:当定义的时钟点有很多源时的说明;(如三个时钟mux后再分频)

  • -edge:说明生成时钟与源时钟(-source 指定的)之间的关系;

  • -source:距离生成时钟点最近的上级;

  • 关于master要是还不清楚可参阅:-master说明

1.3 set_clock_group

  1. 语法实例
    set_clock_groups -asynchronous -group {ClkA ClkB} -group {ClkC}
    声明clkA,clkB时钟为同步时钟,并与clkC异步;
  2. 重要说明点:
    • 当set_clock_groups指明时若只有一个group时,则说明这个group里头的时钟与其它未说明的时钟均为异步关系;
    • ** 当set_clock_groups指明时若有两个或两个以上group时,则这些group之间为异步关系,各group与其它未说明的时钟则为同步关系;**
  3. 参数说明可参考:logic_exclusive & physically_exclusive
  • -asynchronous :指明异步关系;
  • -logically_exclusive
  • -physically_exclusive

1.4 set_clock_uncertainty

1.4 set_input_delay

1.5 set_output_delay

2.时序特例相关

2.1 set_false_path

2.2 set_multicycle_path

  • 3
    点赞
  • 15
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

汶.z

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值