分享

Design Compiler学习2

 吾乃阿尔法 2013-11-10

2.1 约束一个设计分为几个方面? 
      总的分为,面积约束和时序约束。
2.2 面积约束的命令是什么?

      set_max_area
2.3 如何对时钟进行约束?

      对时钟进行约束是对时钟的周期,波形进行描述。 
      使用create_clock 建立时钟约束

2.4 如何对pll进行约束?
 
      如果存在PLL,那么首先对输入的初始时钟用create_clock进行约束。
 
      再用create_propagated_clock 对PLL输出时钟在基于输入时钟进行约束。

2.5 什么叫虚拟时钟约束?
 
    虚拟时钟是指在当前要综合的模块中不存在的物理时钟。比如,设计外的DFF的时钟。

建立这样的时钟有益于描述异步电路间的约束关系。
2.6 DC可以对时钟的哪些特性进行约束?

     DC支持对时钟的周期,波形,jitter,skew,latency 描述
2.7 如何约束时钟的jitter

     使用set_clock_uncertainty -setup(-hold) 约束时钟的jitter
2.8 如何约束时钟的skew

     使用set_clock_uncertainty 约束时钟网络的skew
2.9 如何约束时钟的latency

     使用 set_clock_latency -option ,option is source or network,the default is network。
2.10 如何对当前设计的端口外部条件进行约束?
     端口的外部条件包括输入驱动大小,输出负载的大小,扇出大小。
2.11 输入端口被多大的驱动所驱动?

    可以使用set_dirive 和set_driving_cell
2.12 输出端口要驱动多大的负载?

    使用set_load 对输出电容值进行约束,单位根据工艺库的define所定。
2.13 DC是基于path的综合,那么在约束时如何体现?

    我们知道,基于path会有四种路径形式,DC中提供
    create_clock 定义寄存器和寄存器之间的路径;
    set_input_delay 定义输入与寄存器之间的路径;
    set_output_delay 定义寄存器与输出之间的路径;
    set_max_delay和 set_min_delay定义输入和输出的组合路径;
2.14 set_input_delay 的目的是什么?

    定义输入延时,来约束设计中输入逻辑的时序
2.15 set_output_delay 的目的是什么?

    定义输出延时,来约束设计中的输出逻辑的时序
2.16 如何对组合电路进行约束?

    组合电路有set_max_delay 和set_min_delay进行约束
2.17 如何对电路的速度进行约束?

    采用对电路时钟周期的约束的方式来约束电路的速度,使用create_clock
2.18 当一个组合电路超过了时钟周期约束,那么该如何处理?

    如果必须要满足时钟周期约束,那必须修改设计,如果不必要严格要求,那么可以set_false_path可以躲过path check。
2.19 当出现环路电路时,如何约束电路?

     对某一路径使用set_false_path
2.20 如何加强设计规则的约束?

     DRC是电路必须满足的设计规则,使用
     set_max_capcitance 
     set_max_fanout
     set_max_tansition

2.21 在添加了4种路径约束后,如何为某些路径移除约束呢?

     使用set_flase_path使得某些路径不进行timing check
2.22 对于某些路径需要在固定的几个周期内完成,如何对这些路径进行约束?

     使用set_multicycle_path 对路径进行约束
2.23 在添加这些特殊的路径约束,如何恢复原来通用的时序约束?

     使用reset_path
2.24 如何对三态门进行约束?

     由于综合时,默认三态门是enable的,所以对某些路径要设置set_false_path
2.25 如何对门控时钟进行约束,以保证功能正常?

     对门控时钟电路进行setup和hold检查,使用set_gating_clock_check
2.26 设置对某些网络比如时钟或者复位不进行添加buffer等操作,应该怎么约束?

    使用set_dont_touch_network
2.27 
如何修正hold 时间冲突?

    加入set_fix_hold约束
/************ Part 3 Compile stategy ******************/3.1 综合时,有多少选择综合策略呢?
    可以使用top-down 和bottom-top。
3.2 top-down 方式有何优点?

    仅需提供单一TOP的script
    将设计作为一个整体,可得到较好的结果

3.3 bottom-up方式有什么优点?

    对多时钟的综合更为适合
    每个子模块都有自己的script,便于管理
    当一个模块改变时,不用重新综合所有设计
3.4 如何进行time-budge

    使用characteristic
3.5 top-down 方式有何缺点?

    编译时间长
    子模块改变则整个设计都要重新综合
    对多时钟设计综合效果不好
3.6 bottom-up方式有什么缺点?
    需要维护多个script
3.7 编译时的 -incremental 是什么意思?

    设计映射为门之后,时序和面积约束可以再定义,incremental确保维持以前的电路结构,只作改善时序和性能,不添加不必要的逻辑。
3.8 ...
/******* Part 4 Analyze the report ******************/

4.1 如何看面积报告?
     report_area
4.2 如何看时序报告?

     report_timing
4.3 想对单独的单元看面积报告, 用什么命令?

     report_cell 但是缺省的report_cell只能看current_design下面的一级的cell的面积.因此就有两种方法解决这个问题
      1. 用report_cell [get_cells -hier *]可以看所有的cells面积

      2. 用list_design列出所有的design, 然后改变current_design到你所想要看的那一级的cell, 然后直接用report_cell.
4.4 如何看设计环境和线载模型?

report_design
4.5 若设计规则和时序违反约束,如何查看?

    使用report_constraint -all_violators
4.6 如何查看连线的扇入,扇出,负载,电容和跳变时间?

    使用report_net
4.6 
如何看整个综合后的网表中使用多少种类型的电路门?

    使用report_hierarchy
4.7 如何查看timing exception的时序约束?
    使用report_timing_requirements
/****************** Part 5 Output the result ***********/ 
Design Compiler基础概念
  太基础的概念我就不介绍了,大家可以参考相关文档或是资料。这里我就说一些我觉得比较好的命令和概念。可能有点乱,我尽量说的条理些。 
       好习惯:
       1、current_design确保当前设计是自己需要的,不要让DC根据一些潜在规则去判断,显式地声明,保证你的约束都加到自己希望的设计上;
       2、link确保link_library和search_path没有问题,同上,DC执行的时候也会隐式地检查链接,但是只会报出警告,不会中断下面的操作,这样可能造成做无用功;
       3、check_design检查设计的端口连接,例化情况,保证下一步操作是在一个完整的设计上进行的,同样可以依靠命令返回值做到脚本自动化,有问题就停下来,少做无用功;
       4、write -f db -hier -out unmapd/TOP.db在读入设计并检查链接库后保存,这对于大型设计有好处,可以节约读入时间,下次操作不必重新读入,浪费时间;
       5、约束单独写到一个文件中,这样方便管理,调用时可以直接使用source命令(TCL模式),约束是加到当前设计中,后面写的同属性的约束会覆盖前面写的;
       6、加完约束后check_timing,确认约束是否加的合适、完全。

 

 

在设计代码中,引导语句“// synopsys translate_off”后直到“// synopsys translate_on”之间的语句被DC忽略

 

module(  ) /*synthesis syn_black_box*/;

module(  ); //synthesis black_box

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多