DC学习笔记内容

上一篇 / 下一篇  2006-12-10 23:26:15 / 天气: 晴朗 / 心情: 高兴 / 个人分类:微电子类学习心得

由于系统不允许我上传文件,只好贴在这里,不过图片应该会没有了 EDA中国门户网站ijM4Tga

 EDA中国门户网站 B1\$kE Y(A:N

Hello, Synopsys

'f*@5M _ HLL7d0

----Design Compiler

M l-e4{t@{#@0

           个人学习笔记(基础版)EDA中国门户网站alX&pAx.b6q

 EDA中国门户网站]m6T I)E0^

  EDA中国门户网站4GRJ*@'N.m

一、启动

首先这里这里讲述的是我个人的学习心得,很有可能存在错误的地方;对于错误问题以后会逐渐修改。并且这里是假设软件是已经安装好的,没有问题。

5L*W2s&X(f&X(c0

另外还必须给定综合工艺库文件,分为最佳条件库,中间条件库和最差条件库;在综合时一般采用最差条件库综合,然后在布局布线时再逐渐修改。EDA中国门户网站7n&L!p+mL4r;\

DC的接口有以下三种:

.Y)H#_r4w u0

    dc_shell (命令界面)

/qPFg]9_Ha0

    dc_shell-t;(命令界面)

US1lS4A&kOX0

design_vision -tcl_mode (图形界面);EDA中国门户网站 f~+e JYjhYA

(1)              进入DC_shell,在要求目录下面输入 %dc_shell& 即可以进入shell模式,其中%不是输入的,而是命令标示;&表示运行后将控制权交给操作系统。

HCi3joq;X us0

(2)              进入DC_shell0-t,在要求目录下面输入 %dc_shell-t 或者 %dc_shell –tcl_mode, 既可以进入TCL模式Tcl的全称是Tool Command Language,,它是一种开放的工业标准语言,功能比shell更强大。EDA中国门户网站M5nI(CH/AB F$D+O

上面两种形式,都属于命令界面,采用这种方式是为了应用命令行形式进行操作,适合较为熟悉DC软件和命令的用户。两者能够完成完全相同的功能,但是语言写法有所不同。我个人采用shell命令,两种语言学习一种就可以,而且两种语言是相同的,只是书写形式有所不同。

3`;`f"|'EE)Wg)|0

(3)              进入图形界面,在要求目录下面输入 %design_vision -tcl_mode 即可以进入图形模式(注意,常用方法是使用另命名后的命令形式,可以在运行根目录下查看cshrc文件夹下面的cshrc.synopsys文件,在内部利用alias另命名了快捷命令,这里另起名为dc)可以进行界面操作。这个优点在于清晰可观,便于理解。但对于熟练者这个应作为辅助方法,比如添加管脚约束条件等,可以利用图形一个一个生成条件,最后在拷贝出来;查看电路情况等。        

/v*n Uo1oVE*C0

    但是值得注意的是,在运用DC工具综合时也是可以不需要进入上面DC的任何模式,可以直接在操作系统键入命令直接调用DC工具的TCL模式,即%dc_shell-t命令进行对源文件或是工程进行综合,这种方式是利用脚本文件的方式,这个将在下面的一节中讲解。 至于如何调用shell模式直接综合,还不是很明白。EDA中国门户网站5?&r%cBu8q

二、综合一个设计

a.利用图像界面方式综合一个设计流程

1、启动DC图形界面

进入要求的目录,准备好所有设计源程序文件。输入%dc打开DC软件图形界面

5FNYB[;y3T0

EDA中国门户网站igH}U ^

2、读入源文件

    这里如果是想要对顶层文件进行综合,那么读入所有源文件。一般情况建议在应用DC之前在Windows下的编译工具(如ModelsimISE等等)编译成功后再经过功能仿真,即综合前仿真(如Modelsim乃至专业的Synopsys公司的VCS工具)之后再考虑使用DC读入后文件之后,read是不会进行编译的,但如果有错误会在综合会报错被终止。但如果是编译后的源文件,读入后会自动区分顶层文件和子文件。EDA中国门户网站2eJ1q/T \MA3R

Read文件界面和正确读入文件之后界面如下

1rj-_#E3H-_ZV0

EDA中国门户网站n)p5Y0A#z2I

 EDA中国门户网站O L3jV3e

\ Z"?1tX6O&q1a8c0

这里指明一点,一般情况read可以读入的文件格式较多,但是read读入文件并不会对读入的文件进行检查,没有语法和可综合的逻辑报错;而采用analyze读入源文件,则会进行语法和可综合的逻辑检查,然后在analyze后配合使用elaborate,这个命令将把设计文件的中间文件解析成.db 格式,这种.db格式在大型设计中将会很有帮助,而且便于观察RTL级电路形式。

A'c^:}3MQ0

但是由于一般推荐在使用DC之前的文件都是要求编译和前仿真成功的,而且在综合后也可以通过save as 选项保存为.db格式。所以一般,只要使用read就可以了。

5m4xxW1x"@Pj qO0

3、设置约束条件

应用DC进行综合,设置约束条件是最为关键的要求,DC综合实际上是约束条件决定的。利用图形界面输入约束条件可以按照下面的方法

^m8A ~/n)ymW2m~0

J"| Hf5`n0

在图中可以看到,这是对顶层模块进行综合,单击选择顶层文件,然后创建模块视图,如图中红圈所画一个芯片形状的按钮,生成右下角的视图,然后工作就是选择每个引脚,设置每个的约束条件。

2D0c]/aj$u8xT \0

    1)首先设定时钟的周期,单击选择时钟引脚,然后选择选择卡里面的Specify Clock这个选项,设定时钟。EDA中国门户网站sr/Xz1r4nx!G

]2s"tl%V:D7dK5n0

下面显示了具体如何约束,输入时钟名称。这个名称不是源文件的信号名字,只是代替它的一个记号;可以看到灰色的Port name才是真正的信号名字。不过一般为了便于统一,可以起相同的名字。按照要求输入周期,至于中间的RisingFailing是上升沿和下降沿的到达时间,对于正常时钟一般取中间值就是了

,Bg)c#f&Vb7h:^.Y0

2K+a*qt A1^k+Rx0

    不过这里要强调指出的是,这里只是单一时钟输入,没有多时钟工作情况。如果是多时钟问题,不推荐使用图形方式,而采用脚本文件的方法进行。

eewixDZ8P0

2)对输入管脚要进行input_delayEDA中国门户网站W$d:`Wq~

这个一般情况是指输入模块送到这里所要占用的时间。假设这个模块某个输入是其他模块的输出,对于时钟,他的模块要经过一系列的逻辑,肯定要占用一定时间才能到达你这个默块,即使他的输出很快,也有传输线延时。因此,通常情况,作为总体设计中的一个部分设计,输入一定要设置input_delay,而且这个要于对应的模块输入延时output_delay相适应。比如整个时钟是5ns,上一个模块输出延时3ns,那么这里你使用的最多只能是2ns,即相对于时钟,他的输出延时output_delay3,你的输入延时input_delay最多为2(一般默认时间为ns)。

6O_.w on P Wb0

下图显示的就是如何设置输入延时,单击一个输入管脚,然后按照图中选中设置选项。EDA中国门户网站 rLj@IOt*\]

EDA中国门户网站5AhW5r+q5Lv zr2UDW

下面就是跳出的设置界面,一般情况设置输入输出延时都是相对于时钟而言的,所以可以看到Relative to Clock选项钟写入的是时钟信号的Name名字(前面已经说过了这只是一个代名),而且如果你的设计是同步于时钟上升沿(推荐)的,那么一般要求相对于时钟的上升沿,即选择Rising edge.

7FJfM/xv}/u!}0

这里可以设置输入管脚的最大和最小上升延时,最大和最小下降延时,当然也可以选择相同的上升沿和下降沿情况。具体延时值应该如何设置,在上面已经阐述,这里不再重复。EDA中国门户网站+E$wzX"A

a(lysD0

    3)对输出管脚要进行output_delay

pH;id8V\zk0

     对于输出管脚也要设计输出延时,这个需要根据自己的实际情况进行估计。一般这个值在头几次综合是都是估计的。一般情况,如果输出管脚经过了一个较大的组合逻辑,那么因为它会占用较长的时间,所以这个输出管脚要求输出延时要大一些;如果是寄存器直接输出的,可以设置小一些。当然大的不能大过时钟周期,并且能够令与之相连的模块正常工作;小的要保证综合后满足时序要求。具体操作与设置输入延时类似,只不过是单击选择输出管脚,然后在选择卡里面选择output_delay

_W7G#y d fW!B%^1q0

需要强调的是,不管输入延时还是输出延时,不合适的设置会导致设计时序不满足要求。这些会在观察时间报告或者综合结果报告观察slack或者negative slack进行判断。一般slack出现负值,说明没有满足时序要求;负值越大越糟糕。这时解决办法一般是减小input_delay或者增加output_delay,使它变得宽裕一些;增加时钟周期;………….(应该还有其他方法,这里我还不是很明白)。

W,z+PM0q$d0

    EDA中国门户网站 t9~Ix'V'@/~

    4)其他约束设置EDA中国门户网站'd&W/YP+Z0M

     设置好了时钟和输入输出延时,不进行这里讲的设置,综合也是可以正确完成的。这里的设置一般是对设计进行进一步的要求和约束,使它更适合实际情况或者和后端画版图关联的更紧密。比如下面所示的约束EDA中国门户网站6^ ^WDG

  EDA中国门户网站SYC"q"IP

(这里具体含义还不是很明了)EDA中国门户网站]*y6uP(}(a ]#PM

 EDA中国门户网站G3xZ|j+\-z%Q

 

a9X)~ZjW6{0

这里说明的是,在对一个新的设计第一此进行综合,我习惯利用图形界面的方法输入输入输出延时信息。对于这些约束信息可以利用DC图形界面的下面的Log界面中的文字拷贝到其他文本文件中,然后修改即可。这个Log文件其实是xx.log文件,它里面包含的是工具命令指令的显示信息。EDA中国门户网站*p_yiX~b

 EDA中国门户网站5Y$[4x L6Z.ym hq2h

5)在命令框输入约束信息,进行综合

Vy/k T(XV[ X}$^0

 将上面设定的信息(这个信息我的习惯是通过log文件中考出来放在一般文本文件中修改后得到的)拷贝,在DC界面的命令框中一次性粘贴输入就可以了。下图中可以看到,标注了Log文字的就是Log信息框;标注了Command文字的就是命令框。EDA中国门户网站*r0e!l[J

u bz6A0pe0

    在命令框输入了这个约束之后,就可以进行综合了EDA中国门户网站o K`9How'dzl.N`

 

u}"|5i(q8fC0

综合之后保存各种信息。这里主要有综合后的设计xx.v源程序文件和中间xx.db文件,下面的界面是通过file选择卡里面的“save as另存为”选项跳出的界面

&jDO6IN6a0

EDA中国门户网站j e\)z$^}&k

还用有时间延时等时间信息的xx.sdf文件,这个是在综合后仿真需要的。在file选择卡里面选择“save info保存信息”中Design Timing。在保存时,只需写上File name就可以了。

:nQr v,p%Meh0

  EDA中国门户网站8BJ4leV1VV

6)报表EDA中国门户网站5b8?m1d den

 这里一般最关键的是要求有Timing报告,这个主要时显示几条(可设)关键路径的时间报告,也是最差最不容易满足时间要求的几条路径的时间信息,一般这个slack没有负值,那么一般整体设计不会出现问题。

+JM Pm(| EW b0

EDA中国门户网站x&W%Nj0f)t}`B

还有一些其他面积报告,约束报告,功耗报表等等

;?[P}1\b [0

EDA中国门户网站0^%uv-~ GBK"o

7)查看电路结构EDA中国门户网站KT x!ab

一般这个并没有说明真正作用,这里只做一个简单介绍,首先单击你想要观察的模块,右键出现下面的选择。

Uq$J3D z3`Xkx8I0

EDA中国门户网站)I x5fv;\,r

    选择后,出现下面的图形。不过需要指出的是,这个一般要综合后,或者是读入综合后生成的,db文件才会有这个电路的出现EDA中国门户网站?+fNf3Qk NZ q,ye/`

gZ*oVu2Y!b'X0

 

{uA;h,Jv0

b.利用脚本文件方式综合一个设计流程

一般情况,采用命令模式进行综合;而且大多时候,命令模式不是一行一行的输入命令,而是采用脚本文件的模式。脚本文件为xx.tcl文件。EDA中国门户网站B o gt$Tl4j

1、如何运行脚本

1)在dc_shell-t命令模式中运行脚本文件

4zMp;t)n h-St?&V0

    Unix界面下输入dc_shell-t ,进入TCL命令模式,然后输入下面命令:EDA中国门户网站;k8W.CNG2e(a

dc_shell-t> source (-verbose) (-echo)  xx.tcl  # -verbose

TAG: 微电子类学习心得

鹤舞白沙,我芯飞腾 引用 删除 etangnudt   /   2006-12-31 00:49:38
5
好文,先收藏
leon_zhang的个人空间 引用 删除 leon_zhang   /   2006-12-12 23:21:31
1
report 一般在第一次综合时候没有太大用处,只要通过即可,就是出来的timing 没有 violation(slak 〉0)就好了。
一般在初学设计时都不知道要加怎样的constrain。不要紧,在你的设计需要和前后级模块连接在一起时,就知道要加怎样的constrain了。因为只有在你加了对的constrain,后继模块才可以正确的得到你的输出,特别是后继模块不是你一个人做的时候。
引用 删除 hamandu   /   2006-12-11 19:46:14
综合完成后,怎么对出来的report进行分析啊?
引用 删除 yuyouyong   /   2006-12-11 10:30:16
5
写的很好
 

评分:0

我来说两句

显示全部

:loveliness: :handshake :victory: :funk: :time: :kiss: :call: :hug: :lol :'( :Q :L ;P :$ :P :o :@ :D :( :)

日历

« 2009-01-07  
    123
45678910
11121314151617
18192021222324
25262728293031

数据统计

  • 访问量: 940
  • 日志数: 2
  • 建立时间: 2006-11-29
  • 更新时间: 2006-12-10

RSS订阅

Open Toolbar