synopsys-SDC第四章——Tcl扩展SDC

synopsys-SDC第四章——Tcl扩展SDC

  • 前言
  • 一、时序约束
  • 二、Tcl基础知识
    • 1.Tcl变量
    • 2.列表
    • 3.Tcl表达式和运算符
  • 三、Tcl常用约束


前言

Synopsys公司设计约束演化成行业标准,又名Synopsys Design Constraints(SDC)用于描述对时序、功率和面积的设计要求,是EDA工具中用于综合、静态时序分析和布局布线最常用的格式。

一、时序约束

时序约束用于指定HDL中无法捕获的设计特性用于驱动综合
SDC基于Tcl语言(Tool Command Language),是一种非常流行的脚本语言。

  • 现今,大多数实现和STA工具使用SDC作为标准格式以捕获对面积、功率和性能的设计意图。

二、Tcl基础知识

Tcl是一种解释性语言,不同于C语言这种编译性语言,编译语言是在执行前将语言解析并翻译成机器代码,而Tcl每条语句被解析并立即执行。

Tcl中,如果一条语句跨越多行,然后在下一行继续执行,则应在行尾加‘\’。
注释符是‘#’。
Tcl有多种语言结构,和大部分语言都类似:

  • 变量
  • 列表(数组)
  • 表达式与运算符
  • 控制流语句
  • 过程(function)

1.Tcl变量

Tcl变量是ASCII字符串,变量用set分配,用puts获取,例如:

set a “1234”
puts $a

对应输出就是1234.

  • 如果打印的字符是内置符号,如set,则需要在变量前加‘\’
puts {\$set something}

2.列表

Tcl中用多种方式可以创建列表,如:

set gates [list AND OR NOT NAND]
set gates {{AND}{OR}{NOT}{NAND}}
set gates [split "AND.OR.NOT.NAND" ","]

用lappend 可以向列表中添加元素,用lsearch 可以从列表中获得元素对应的索引。
和SV类似,Tcl也用foreach完成列表循环,并且可以同时对多个列表循环。

3.Tcl表达式和运算符

大部分和verilog的运算符都一致
但是用rxpr命令来对表达式求值,如

set x 5
expr $x+10
  • Tcl中用**表达指数
  • eq比较两数相等,ne比较两数不相等
  • in检查列表中是否有指定元素,ni表示没有指定元素

三、Tcl常用约束

常用的约束有

  • 时序约束
  • 面积与功率约束
  • 设计规则约束
  • 接口约束
  • 特定模式和配置约束
  • 设计约束异常
  • 其它命令

在此列举一些常用的命令,具体如何应用可以查询文档,如:
create_clock
set_clock_groups
set_clock_transition
set_max_area
set_max_fanout
set_drive
set_input_transition
set_false_path




搜索关注我的微信公众号【IC墨鱼仔】,获取我的更多IC干货分享!
在这里插入图片描述

你可能感兴趣的:(SDC,tcl,fpga,芯片,verilog)