
DC(Design Compiler):是Synopys公司的后端综合工具;综合的目的就是把RTL代码转化为门级网表。在综合这个阶段,大致可分为三个步骤:转化、映射和优化;转化的目的就是把RTL代码首先转化为GTETH网表或者GTECH电路模块,该库是Synopys公司自己内置的一个库文件;第二步我们选择合适的工艺库(非GTECH库),这个库一般由于工艺厂商提供(比如:台积电等),选择好合适的库后,同样会根据库的工艺映射出一个门级网表,但是这个门级网表是没有经过优化或者说可能不满足我们要求的一个门级网表,最后我们需要添加时序约束,然后进行综合和优化,生成一个最终满足我们要求门级网表;
在LINUX下EDA工具都是通过命令或者脚本进行操作的,几乎不使用图形界面去操作;我是通过图形化界面进行操作的,大概分为以下几步:
1.启动图形界面:输入命令design_vision

启动图形界面
2.图形界面启动成功!(当然,也可以直接在Terminal中输入命令:dc_shell,等DC启动完成后再输入命令:dui_start)

图形界面启动成功
3.选择库文件;(点击左上角File -> Setup)

选择库文件
Search path:里边选择RTL存放的目录;
Link、Target、Symble Library:我自己的是默认好的,不可选择!然后点击Apply!
4.读取.v文件。(点击左上角File -> Read)

读取.v文件
6.读取成功,左边出现各个模块;

读取成功
7.选择互连线模型;(点击Attributes→Operating Environment→Wire Load选择互连线模型)

选择互连线模型
8.转化后的模块(点击红色出,就可以看到该代码的顶层模块)

转化后的模块
9.可以接上一步,双击模块图进入;

转化后的模块
10.时序约束(点击Attributes→Specify Clock)

时序约束

时序约束(命令)
这是操作完第十步后自动输出的,这句命令也正是时序约束中的核心语句,如果用脚本进行操作,那么脚本中的时序约束文件就包含这句核心代码;
11,综合(点击Design→Compile Design)

综合

综合后的电路模块图
12,打印综合报告;我们可以使用重定向,为了查阅方便,把综合的报告放到一个文档中;(DC中也可以使用LINUX下的操作命令)

打印综合报告
13,查看综合报告

综合报告
在终端中打开这个报告,可以看到有三段信息;最上面的信息表示时序报告,中间的信息是使用逻辑门的情况,最后的信息是面积;
我们可以看到时序报告中的Slack大于0,那么满足时序要求,如果小于0则不满足;
该电路中总共使用逻辑门的数量为810个;
因为选择的连线模型是最宽的一种,可以看到面积比较大(5546.016042平方微米);