综合是前端模块设计中的重要步骤之一,综合的过程是将行为描述的电路、RTL 级的电路转换到门级的过程;Design Compiler 是 Synopsys 公司用于做电路综合的核心工具,它可以方便地将 HDL 语言描述的电路转换到基于工艺库的门级网表。本章将初步介绍综合的原理以及使用 Design Compiler 做电路综合的全过程。
通过前面完成了对万年历的功能仿真和代码覆盖率仿真,现在开始进行综合,综合工具Design Compiler运行于CentOS系统中,通过在终端输入dc_shell -gui进入DC软件的图形化界面。
设置库文件
-
工艺库(target_library)
工艺库是综合后电路网表要最终映射到的库,读入的 HDL 代码首先由 synopsys 自带的 GTECH 库转换成 Design Compiler 内部交换的格式,然后经过映射到工艺库和优化生成门级网表。工艺库是由 Foundary 提供的,一般是.db 的格式。
-
链接库(link_library)
link_library 设置模块或者单元电路的引用,对于所有 DC 可能用到的库,我们都需要在 link_library 中指定,其中也包括要用到的 IP。
值得注意的一点是:在 link_library 的设置中必须包含’*’, 表示 DC 在引用实例化模块或者单元电路时首先搜索已经调进 DC memory 的模块和单元电路,如果在 link library中不包含’*’,DC 就不会使用 DC memory 中已有的模块,因此,会出现无法匹配的模块或单元电路的警告信息(unresolved design reference)。
-
符号库 (symbol_library)
symbol_library 是定义了单元电路显示的 Schematic 的库。用户如果想启动design_analyzer 或 design_vision 来查看、分析电路时需要设置 symbol_library。符号库的后缀是.sdb,加入没有设置,DC 会用默认的符号库取代。
-
综合库(synthetic_library
在初始化 DC 的时候,不需要设置标准的 DesignWare 库 standard.sldb 用于实现Verilog 描述的运算符,对于扩展的 DesignWare,需要在 synthetic_library 中设