dc综合与pt静态时序分析(中文)_DC的逻辑综合与优化

98e7d3322a16592d57f05e786064d7f6.png

对进行时序路径、工作环境、设计规则等进行约束完成之后,DC就可以进行综合、优化时序了,DC的优化步骤将在下面进行讲解。然而,当普通模式下不能进行优化的,就需要我们进行编写脚本来改进DC的优化来达到时序要求。理论部分以逻辑综合为主,不涉及物理库信息。在实战部分,我们将在DC的拓扑模式下进行。(本文主要参考虞希清的《专用集成电路设计实用教程》来写的总结整理与实验拓展)主要内容有:

·DC的逻辑综合及优化过程

  ·时序优化及方法

  ·实战

1.DC的综合优化阶段

  我们使用compile命令就可以让DC进行综合优化我们的设计了,这里是使用普通模式,在拓扑模式下,不支持compile命令,而是使用compile_ultra命令。电路综合优化包括三个阶段,在这三个阶段,都对设计作优化,如下图所示:

d801c303af4e298df288b5389a18fb64.png

  主要包括:第一阶段的结构级的优化(Architectural-Level Optimization)、第二阶段的逻辑级优化(Logic-Level Optimization)、最后阶段的门级优化(Gate-Level Optimization)。

(1)结构级的优化(Architectural-Level Optimization)

结构级优化包括的内容如下:

ba5d207783757790ee5972d509c49d20.png

①设计结构的选择(Implementation Selection):

  在DesignWare中选择最合适的结构或算法实现电路的功能。

②数据通路的优化(Data-path Optimization):

  选择CSA等算法优化数据通路的设计。

③共享共同的子表达式(Sharing Common Subexpressions):

    也就是多个表达式/等式中,有共同的表达式,进行共享,举例如下:

有等式:

              SUM1<=A+B+C;

              SUM2<=A+B+D;

              SUM3<= A+B+E;

很容易看出,上面的等式中有共同的表达式A+B,那么代码子表达式A+B可以被共用,原等式可改为:

              Temp=A+B;

              SUM1<=Temp+C;

              SUM2<= Temp+D;

              SUM3<=Temp+E;

这种方法可以把比较器的数目减少,共享共同的子表达式。

④资源共享(Resource Sharing):

  对于下面的代码:

5cfe8cc017ff651084546c6bc8d5961d.png

DC中经过资源共享之后,就会得到综合出仅用一个加法器和两个多路传输器的设计,如下图所示,从而节省资源:

9980dc3ac2d1d1b2f10ffe984eb67653.png

算术运算资源共享的默认策略是约束驱动的。我们也可以指示DC使用面积优化的策略。即将变量hlo_resource_allocation设置为area,如下所示:

                set hlo_resource_allocation area

  如果不希望资源共享,可以将即将变量hlo_resource_allocation设置为none,这时候,我们还是要进行算术运算的资源共享,那么我们必须在RTL代码中写出相应的代码,如下所示:

dae139c804e5a95e248b2f47ed42f680.png

⑤重新排序运算符号(Reordering Operators):

  RTL代码包含有电路的拓扑结构。HDL编译器从左到右解析表示式。括号的优先级更高。DC中DesignWare以这个次序作为排序的开始。

例如:表达式SUM<= A*B+C*D+E+F+G,在DC中的综合的结构如下图所示:

a8f148e8b2a64756aeea094daf12c0b3.png

  电路的总延迟等于一个乘法器的延迟加上4个加法器的延迟。为了使电路的延迟减少,我们可以改变表达式的次序或用括号强制电路用不同的拓扑结构。如:

7b2fcb172dded5f8219338842620e3c8.png

这时得到的综合结构为:

7d0bfb05f095e2dd712effa9a4da1cd7.png

电路的总延迟等于一个乘法器的延迟加上2个加法器的延迟,比原来的电路少了2个加法器的延迟。

(2)逻辑级优化(Logic-Level Optimization)

  逻辑优化的内容如下:

b1f59f91397526fa8caa797fee22c3c8.png

  做完结构的优化后,电路的功能以GTECH的器件来表示。在逻辑级优化的过程中,可以作结构(Structuring)优化展(开)平(Flattening)优化

①结构优化:

  结构(Structuring)优化用共用子表达式来减少逻辑,这种方式既可用作速度优化又可用作面积优化。结构优化是DC默认的逻辑级优化策略。结构优化在作逻辑优化时,在电路中加入中间变量和逻辑结构。DC作结构优化时,寻找设计中的共用子表达式。例如,对于下面的电路,优化前为:

6de02c6be8bde453b9feff34e138bca4.png

599d5f00b6845b077683fed83cfd2a23.png

做完结构优化后,电路和功能表达式为:

b0263c38300e40f0da8419fe92a4c8e9.png

bcf21f8c268c720f8fb1f011a26610c7.png

  值得一提的是逻辑级的结构优化中共用子表达式前面结构级的共用子表达式是不同的,逻辑级的结构优化指门级电路的共用子表达式,结构级的是算术电路的共用子表达式。逻辑级结构优化并不会改变设计的层次,用下面的命令设置结构优化:

                      set_structure true

②展平优化:

  展平优化把组合逻辑路径减少为两级,变为乘积之和(sum-of-products,简称SOP)的电路,即先与(and)后或(or)的电路,如下图所示:

b95d003d28b8ca924a1a2666b2e2baf0.png

这种优化主要用作速度的优化,电路的面积可能会很大。用下面的命令设置展平优化:

      set_flatten true -effort low | medium | high(low 、 medium、high其中一个就可以了)

命令选项“-effort”后的默认值为low,对大部分设计来说,默认值都能收到好的效果。如果电路不易展平,优化就停止。如果把选项“-effort”后的值设为medium, DC将花更多的CPU时间来努力展平设计。如果把选项“-effort”后的值设为high,展平的进程将继续直到完成。这时,可能要花很多时间进行展平优化。

  结构(Structuring)优化和展平(Flattening)优化的比较:

2c80353e5d8b456c41d632e720268dce.png

(3)门级优化(Gate-Level Optimization)

  门级优化时,Design Compiler开始映射,完成实现门级电路。主要有以下内容:

14c98c572262fcdefde8e1966d58b6c1.png

映射的优化过程包括4个阶段:

  阶段1:延迟优化、阶段2:设计规则修整、阶段3:以时序为代价的设计规则修整、阶段4:面积优化

如果我们在设计上加入了面积的约束,Design Compiler在最后阶段(阶段4)将努力地去减少设计的面积。门级优化时需要映射组合功能和时序功能:

  组合功能的映射的过程为:DC从目标库选择组合单元组成设计,该设计能满足时间和面积的要求,如下图所示:

4ab0f427c4a7de911cbab1b32bdb5371.png

9c0f6b583f4fa32b342f508a68486271.png

c198db22b9c723fdc17ae8f46a317f0e.png

dfb50d664f8d985df2e2a18404b558fa.png

87cda17777c735e90124cf0446856378.png

时序功能的映射的过程为:DC从目标库中选择时序单元组成设计,该设计能满足时间和面积的要求,为了提高速度和减少面积,DC会选择比较复杂的时序单元,如下所示:

11fcdcb799a664cadcbe65d1050a931a.png

2e2e9b82a59973f6d0d616e78ef2cd96.png

  • 5
    点赞
  • 16
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值