数字IC之Synthesis工具使用

Synthesis

1. Synthesis工具

   综合工具是将高级硬件描述语言(HDL)代码(如Verilog或VHDL)转化为等效的门级网络的工具。它们的主要作用是将抽象的设计描述转化为具体的逻辑电路,为后续的优化和布局布线提供基础。主要是Synopsys和Cadence的综合工具。

  1. Synopsys Design Compiler:Synopsys的Design Compiler(DC)是业界最常用的综合工具之一。它能够智能地优化设计结构、时序和功耗,并生成最小面积且高效的门级网表。
  2. Cadence Genus:Genus是Cadence公司开发的综合工具。它具有高度自动化和优化能力,可在最短的时间内生成最佳的门级网表。

2. DC/genus常用命令

  1. 查询功能
    • 搜索指令:help “指令”
    • 查指令用法:“指令” -help
    • 看详细解释和实例: man “指令”
  2. get_cells相关
       get_cells它可以报出cell信息,genus中的可选参数如下。
    在这里插入图片描述
    • 打印
      • 打印全部top层的cell:get_cells
      • 打印出某个层次的全部cell:get_cells "xxxx/\*。 直接在双引号里写东西实际上是在写 -filter "full_name = cordic_phase_V_U/\*"
      • 打出全部最底层次的cell:get_cells -hierarchical。hierarchical的意思只是带着路径打印对象,也可以是直接打出所有最底层cell,相当于shell命中中的-r遍历。
    • -quiet:不打印任何信息
    • -nocase:关闭patterns的大小写敏感
    • -filter:使用属性进一步过滤。具体可以使用什么样的过滤方式方法水,是基于这个命令所属于的类(class)的,这个命令组的命名方式一般是get_$class,譬如说get_cell所对应的类(class)就是cell,所有filter可以操作的范围就是这个class里边的数据/属性,genus中的可选参数如下。
      在这里插入图片描述
      • 指的模块层级:full_name =~ xxx/\*。条件运算符“=~”表示模糊匹配,用于匹配“xxx/”层级下的所有对象。例如,筛选名字中包含module1的对象,可以使用full_name =~ *module1\*
    • 使用示例:统计指的层级下所有时序单元的数量:
      sizeof_collection [get_cells -hierarchical -filter "full_name =~ xxx/* && is_sequential == true"]
  3. get_pins相关
       get_pins它可以报出cell信息,genus中的可选参数如下。
    在这里插入图片描述
    • 使用示例:报出指定cells的所有pin脚
      get_pins -of_objects xxx/cell_name
  4. report_timing相关
       report_timing是平时分析timing时用得最多的一个命令,它可以报出一条完整path的详细timing信息,genus中的可选参数如下。
    在这里插入图片描述
    • -from:path起点
    • -to:path终点
    • -through:path经过的中间点
    • -max_paths:报告的条目的最大条数
    • -max_slack:报告的条目的最大slack
    • -net:报告path中的net,提供更详细的timing path
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值