数字IC设计学习笔记(二)——逻辑综合软件Design Complier的使用(基于GUI界面)

目录

Design Complier简介

Design Compiler综合流程

一、建立工作目录

二、启动Design Compiler

三、库文件的配置 

四、读入设计文件(RTL源码)

四、约束设计

五、链接设计

六、编译(compile)设计

七、保存编译结果

总结

参考文献


Design Complier简介

Design Compiler是Synopsys综合软件的核心产品,简称DC。DC至20世纪80年代问世以来,在EDA市场的综合领域,一直处于领导地位。几乎所有的大型半导体厂商和集成电路设计公司都使用它来设计ASIC。

Design Compiler综合流程

一、建立工作目录

Design Compiler工作在Unix或者Linux系统下,本文基于Linux工作环境介绍Design Compiler的工作流程

为了方便文件的归档,建立层次分明的工作目录是很有必要的,通常需要建立以下目录:

  • RTL:用来存放HDL源代码,如有需要可在此目录下建立Verilog、Vhdl两个子文件夹
  • Cons:用来存放约束脚本,约束脚本是用来对设计进行约束的一系列命令的集合。在约束时可以不使用脚本而直接一条一条地输入约束命令。很显然采用约束脚本更加高效,约束修改也更加便利。
  • Unmapped:此目录用来存放未映射的.ddc文件,该.ddc文件在链接之后产生,链接的概念将在后文中介绍。
  • Mapped:此目录用来存放编译产生的、已经映射过的.ddc文件。
  • Reports:此目录用来存放各种综合报告,如时序报告、面积报告等。
  • Work:此目录用来存放DC工作过程中产生的一些日志,DC要在此目录下启动。当然也可以在其他目录下启动,在哪个目录下启动,日志文件就在哪个目录下生成,建议建立专用的Work目录用来存放运行日志。
  • Lib:此目录用来存放库文件,可以建立此目录,也可以不用建立,知道库文件的存放路径即可。

整个工程的目录结构如下图:

数字IC设计学习笔记(二)——逻辑综合软件Design Complier的使用(基于GUI界面)_第1张图片

二、启动Design Compiler

建立好目录以后,下一步就是启动Design Compiler了,DC有两种工作模式:命令行模式和GUI界面模式,初学者建议从GUI界面入手,基本熟悉GUI的操作以后再转向命令行模式,最终的目标是使用命令行模式操作DC。两种工作模式分别有各自的启动方式。启动之前首先进入Work目录,命令行模式的启动命令是:dc_shell   GUI界面的启动方式是:design_vision&   (&表示软件在后台运行

GUI启动之后的界面如下:

数字IC设计学习笔记(二)——逻辑综合软件Design Complier的使用(基于GUI界面)_第2张图片

三、库文件的配置 

启动之后要进行的工作就是库文件的配置,我们需要设置库文件的搜索路径,目标库的库文件名,链接库的库文件名,符号库的库文件名等。要确保库文件的搜索路径的正确性,否则DC将不能正确搜索到所需的目标库、链接库、符号库。

库文件的配置方法如下:在GUI界面选择File——>Setup,出现如下界面,依次正确设置Search path、Link library、Target library、Symbol library等。

数字IC设计学习笔记(二)——逻辑综合软件Design Complier的使用(基于GUI界面)_第3张图片

 

  • target_library 用于设置综合时所要映射的库,target_library中包含有单元电路的延迟信息,DC 综合时就是根据 target_library中给出的单元电路的延迟信息来计算路径的延迟。
  • link_library 是链接库,它是DC在解释综合后网表时用来参考的库。一般情况下,它和目标库相同;当使用综合库时,需要将该综合库加入链接库列表中。
  • symbol_library 为指定的符号库。symbol_library是定义了单元电路显示的Schematic的库。用户如果想启动design_analyzer或design_vision来查看、分析电路时需要设置symbol_library。
  • synthetic_library 是DesignWare综合库,在初始化DC的时候,不需要设置标准的DesignWare库standard.sldb用于实现HDL描述的运算符,对于扩展的DesignWare,需要在synthetic_library中设置,同时需要在link_library中设置相应的库以使得在链接的时候DC可以搜索到相应运算符的实现。

注意:

在link_library的设置中必须包含’*’表示,DC在引用实例化模块或者单元电路时首先搜索已经调进DC memory的模块和单元电路,如果在link library中不包含’*,’DC就不会使用DC memory中已有的模块,因此,会出现无法匹配的模块或单元电路的警告信息(unresolved design reference)。

四、读入设计文件(RTL源码)

下一步我们要做的是读入设计文件,所谓设计文件就是HDL编写的源码。GUI界面下的操作方法为:File——>Read:

 

数字IC设计学习笔记(二)——逻辑综合软件Design Complier的使用(基于GUI界面)_第4张图片

 选择要读入的文件然后点击open即可。注意:顶层文件一定要最后一个读入,DC默认最后一个读入的文件为顶层文件

四、约束设计

 DC是约束驱动型工具,约束的目的在于使电路能够按照设计者构想的那样运行。在GUI界面下,选中读入的设计,右击选择Schematic View可查看设计的原理图:

数字IC设计学习笔记(二)——逻辑综合软件Design Complier的使用(基于GUI界面)_第5张图片

 

数字IC设计学习笔记(二)——逻辑综合软件Design Complier的使用(基于GUI界面)_第6张图片

 选中管脚,在标题栏选择:Attributes,然后选择四个子选项进行约束。

数字IC设计学习笔记(二)——逻辑综合软件Design Complier的使用(基于GUI界面)_第7张图片

五、链接设计

上述工作完成后,选择File——>Link Design

数字IC设计学习笔记(二)——逻辑综合软件Design Complier的使用(基于GUI界面)_第8张图片

六、编译(compile)设计

运行编译命令,DC将把我们的设计映射到特定的工艺库上,生成网表文件。操作方法为:Design——>Compile 

数字IC设计学习笔记(二)——逻辑综合软件Design Complier的使用(基于GUI界面)_第9张图片

七、保存编译结果

最后一步,将编译结果保存到磁盘。File——>Save as

数字IC设计学习笔记(二)——逻辑综合软件Design Complier的使用(基于GUI界面)_第10张图片

总结

参考文献

你可能感兴趣的:(数字IC)