Design Compiler指南——概述和基本流程

        综合是前端模块设计中的重要步骤之一,综合的过程是将行为描述的电路、RTL级的电路转换到门级的过程;Design Compiler是Synopsys公司用于做电路综合的核心工具,它可以方便地将HDL语言描述的电路转换到基于工艺库的门级网表。本文将简单介绍综合的原理以及使用Design Compiler做电路综合的全过程。

一、概述

        综合的目的在于:决定电路门级结构,寻求时序与面积的平衡,寻求功耗与时序的平衡,增强电路的测试性。它是根据一个系统逻辑功能与性能的要求,在一个包含众多结构、功能、性能均已知的逻辑元件的单元库的支持下,寻找出一个逻辑网络结构的最佳实现方案。即实现在满足设计电路的功能、速度及面积等限制条件下,将行为级描述转化为指定的技术库中单元电路的连接。

         综合主要包括三个阶段:转换(translation)、映射(mapping) 与优化(optimization)。综合工具首先将HDL的描述转换成一个与工艺独立(technology-independent)的RTL级网表(网表中RTL模块通过连线互联),然后根据具体指定的工艺库,将RTL级网表映射到工艺库上,成为一个门级网表,最后再根据设计者施加的诸如延时、面积方面的约束条件,对门级网表进行优化。

        逻辑综合具有以下几个层次:

        随着抽象层次的升高,设计者对于最终硬件(门和触发器)的控制能力越来越小。设计者可以在上述的三个层次用HDL语言描述他的设计,根据HDL语言描述的层次的高低,综合也相应的可以分为逻辑级综合,RTL级综合以及行为级综合。

  • 逻辑级综合中,设计被描述成布尔等式的形式,触发器、锁存器这样的基本单元采用元件例化(instantiate)的方式表达出来。逻辑级描述实际上已经暗示了综合以后的网表。
  • 在RTL级综合中,电路的数学运算和行为功能分别通过HDL语言特定的运算符和行为结构描述出来。对于时序电路,我们可以明确的描述它在每个时钟边沿的行为。
  • 行为级综合比RTL级综合层次更高,同时它描述电路也越抽象,在RTL级中,电路在每个时钟边沿的行为必须确切的描述出来,而行为级描述却不是这样,这里没有明确规定电路的时钟周期。电路的行为可以描述成一个时序程序(sequential program),综合工具的任务就是根据指定的设计约束,找出哪些运算可以在哪个时钟周期内完成,需要在多个周期内用到的变量值需要通过寄存器寄存起来。

         上图向我们展示了一个设计从最初的最抽象的概念阶段到最终的芯片阶段的转化过程,在这个过程当中,Design Compiler主要完成将设计的RTL级描述转化到门级网表的过程。

二、Design compiler基本流程

        

         与一般的综合过程相同,使用DC做综合也包含转换、优化和映射三个阶段。

        转换阶段综合工具将HDL语言描述的电路或未映射的电路用工艺独立的RTL级的逻辑来实现,对于Synopsys的综合工具DC来说,就是使用gtech.db库中的RTL级单元来组成一个中间的网表

        优化与映射是综合工具对已有的中间网表进行分析,去掉其中的冗余单元,并对不满足限制条件(如constraints.tcl)的路径进行优化,然后将优化之后的电路映射到由制造商提供的工艺库上(如core_slow.db)。        

        使用DC进行综合的实施流程为:

  1. 预综合过程(pre-synthesis process)
  2. 施加设计约束(contrainting design)
  3. 设计综合(synthesizing design)
  4. 后综合过程(post-synthesis process)

        当半导体工艺的最小特征尺寸小于1um时,称之为亚微米设计技术,当最小特征尺寸小于0.5um时称为深亚微米设计技术(DSM:Deep Sub Micrometer),而当进一步小于0.25um时,则称为超深亚微米设计技术(VDSM:Very Deep Sub Micrometer)。当进入超深亚微米设计后,原有的综合工具受到了很大的挑战,其中一个主要表现是:连线的延时迅速上升。

        当特征尺寸大于0.5um时,电路的延时主要集中在门级单元的延时上,如果门级单元延时占系统延时的70%以上,则前端综合后的电路延时与后端进行布局布线以后反标(back-annotate)回来的电路延时相差不大。

        通常在0.35um设计时,连线延时已经达到了总延时的50%以上,于是版图反标的延时与综合出来得到延时相差会比较大,单靠一次综合已经不能准确估计电路的延时情况,此时需要经过前端后端工具不断叠代来达到比较真实的结果。如下图:

 

  • 10
    点赞
  • 42
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
designcompiler 是一种用于硬件设计的高级综合工具,它能将硬件设计代码翻译成可综合的RTL(Register Transfer Level)描述。designcompiler 的中文讲义是一本以中文为语言编写的教材,旨在帮助学习者理解和掌握 designcompiler 的使用方法和技巧。 这本中文讲义首先介绍了 designcompiler基本原理和工作流程,包括如何将高级硬件设计代码转化为逻辑网表,然后优化这个网表,并进行逻辑合成。讲义通过简单易懂的语言和图表展示了设计过程中的各个环节,使读者能够全面理解 designcompiler 的工作原理。 接下来,这本讲义介绍了 designcompiler 的具体功能和使用方法。它详细说明了如何编写设计代码,并且指导读者如何设置和控制 designcompiler 的参数。讲义还包括实际的案例分析,通过这些案例,读者可以学习到如何使用 designcompiler 对设计进行综合和优化,以及如何进行时序约束和时序分析。 此外,这本中文讲义还提供了一些常见问题的解答和示例代码,读者可以通过这些案例来实践和巩固所学知识。讲义还提供了一些设计技巧和实用建议,帮助读者更好地运用 designcompiler 进行设计。 综上所述,designcompiler 的中文讲义是一本全面、易懂、实用的教材,它为学习者提供了学习和掌握 designcompiler 的基础知识和实践技能的指导。通过学习这本讲义,读者可以更好地理解硬件设计的过程,提高设计代码的质量和效率,从而更好地完成硬件设计任务。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

沧海一升

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

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

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

打赏作者

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

抵扣说明:

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

余额充值