您好,欢迎访问三七文档
DC使用说明文件说明:在进行下面的演示时需要用到两个文件,一个是example1.v,它是描述一个电路的verilog代码,我们的目标就是用DC综合这个代码得到满足约束条件的电路网表;另一个是dc.scr,它是综合example1.v的脚本文件。这两个文件都在/home/student1000目录下,大家把它们拷贝到自己的目录下,以备使用。DC既可使用图形界面,也可不使用图形界面而直接运行脚本来综合电路。一、DC图形界面的使用。1.DC图形界面的启动1.1打开一个终端窗口,写入命令dv–db_mode,敲入回车。则DC图形界面启动,如下图所示红框处是DC的命令输入框,以下在图形界面上的操作都可以在命令输入框中输入相应的命令来完成。选择Help-----ManPages可以查看DC的联机帮助。相应指令:man。例:manman表示查看man命令的帮助。mancreate_clock表示查看creat_clock命令的帮助。2.设置库文件选择File----Setup需要设置以下库文件,如下图。相应指令:setsearch_path[list/tools/lib/smic25/feview_s/version1/STD/Synopsys\/tools/lib/smic25/feview_s/version1/STD/Symbol/synopsys]settarget_library{smic25_ff.db}setlink_library{smic25_ff.dbsmic25_ss.db}setsymbol_library{smic25.sdb}点OK,设置完成。3.读入verilog文件选择File---Read在打开文件对话框中选中要打开的文件,在这里我们选中example1.v文件。在Log框中出现successfully字样表明读入文件成功。相应命令:read_file点击红色箭头所指的按钮可以查看该电路的symbol图。4.设置约束条件4.1设置时钟约束在symbol图上选中clk端口选择Attributes-----SpecifyClock出来设置时钟约束的对话框,按下图设置,给时钟取名为clock,周期20ns,上升沿0ns,下降沿10ns。点击OK,时钟约束设置完成。相应命令:creat_clock4.2设置复位信号约束在symblo图中选中rst_n端口(在本例中它是复位端口),选择Attributes-----OptimizationDirectives-----InputPort勾选Don’ttouchnetwork选项,点击OK。相应命令:set_dont_touch_network4.3设置输入信号延迟约束同时选中输入端口a,b,c选择Attributes----OperatingEnvironment-----InputDelay设置Relativetoclock为clock(即我们刚才加约束的时钟信号),并设置上升延迟为8ns(根据经验,该值是时钟周期的40%,本例中设置了时钟周期为20ns,20*0.4=8ns)相应命令:set_input_delay4.4设置输出端口约束在symblo图上选中输出端口o。选择Attributes-----OperatingEnvironment-----OutputDelay设置输出延迟为8ns相应指令:set_output_delay4.5设置面积约束选择Attributes-----OptimizationConstraints-----DesignConstraints设置Maxarea的值为0,表明让DC向电路面积为0的方向来优化电路,使面积最小。当然,面积为0是达不到的。Maxfanout为4,Maxtransition为0.5(具体含义参见SYNTHESIS.pdf)相应命令:set_max_area,set_max_fanout,set_max_transition。5.综合优化选择Design-----CompileDesign点击OK,相应命令:compile在Log框中出现OptimizationComplete字样表明优化完成,如下图所示。6.查看报告6.1查看面积报告选择Design-----ReportArea点击OK,相应命令:report_area。报告总面积为180.223999,单位是平方微米。6.2查看约束报告选择Design-----ReportConstraints在这里我们只查看allviolators选项(勾选showallviolators),该选项是报告综合后所有不满足原先设置的约束条件的条款。从下图可以看出只有max_area(最大面积)约束不满足,因为我们设置的最大面积约束是0(见4.5),而实际综合出的电路面积是180.22。该项violator是合理的。如果还存在其它violators,说明前面的约束设置不合理或电路设计不合理,需要对其修改,最终要求除max_areaviolator外没有其它violators。相应命令:report_constraint6.3时序报告选择Timing-----ReportTiming报告的是最大延迟路径。相应命令:report_timing7.保存文件选择File-----SaveAs保存成.db文件保存成.v文件(即网表文件)相应命令:write8.退出DC选择File-----Exit。相应命令:exit。二、DC脚本的使用脚本是许多命令的集合,在运行脚本时,DC按脚本里的命令顺序执行。1.启动非图形界面打开一个终端窗口,输入dc_shell-t,回车。出现红框里字样表明启动DC成功。2.运行脚本输入source./dc.scrOptimizationcomplete表明综合优化完成。3.退出DC输入exit命令退出。dc.scr脚本内容说明dc.scr脚本的内容如下:(蓝色字体是说明,脚本中并没有这些文字)shdate//显示开始时间remove_design–designs//移除DC中原有的设计//下面是库的设置,对应图形界面操作的2###########################setlibrary###########################setsearch_path[list/tools/lib/smic25/feview_s/version1/STD/Synopsys\/tools/lib/smic25/feview_s/version1/STD/Symbol/synopsys]settarget_library{smic25_tt.db}setlink_library{smic25_tt.db}setsymbol_library{smic25.sdb}//下面是屏蔽一些warning信息,DC在综合时遇到这些warning时就把它们忽略,不会报告这些信息,VER-130,VER-129等是不同warning信息的编码,具体含义可以查看帮助###########################voidwarningInfo###########################suppress_messageVER-130suppress_messageVER-129suppress_messageVER-318suppress_messageELAB-311suppress_messageVER-936//读入example1.v文件,对应于图形界面的3#################################read&link&Checkdesign#################################read_file-formatverilog~/example1.vcurrent_designEXAMPLE1//把EXAMPLE1指定为当前设计的顶层模块//设置一些变量##############################defineIOportname##############################setclk[get_portsclk]//设置变量clk的值是[get_portsclk],在下面的代码中若出现$clk字样,则表示引用该变量的值,即用[get_portsclk]代替$clk。setrst_n[get_portsrst_n]setgeneral_inputs[listabc]setoutputs[get_portso]//设置约束条件,对应于图形界面的4##############################set_constraints##############################//设置时钟约束,对应于图形界面的4.1#1setconstraintsforclocksignalscreate_clock-nclock$clk-period20-waveform{010}//创建一个周期为20ns,占空比为1的时钟set_dont_touch_network[get_clocksclock]set_drive0$clk//设置时钟端口的驱动为无穷大set_ideal_network[get_portsclk]//设置时钟端为理想网线//设置复位信号约束,对应于图形界面的4.2#2setconstraintsforresetsignalsset_dont_touch_network$rst_nset_drive0$rst_nset_ideal_network[get_portsrst_n]//设置输入延时,对应图形界面的4.3#3setinputdelayset_input_delay-clockclock8$general_inputs//设置输出延时,对应图形界面的4.4#4setoutputdelayset_output_delay-clockclock8$outputs//设置面积约束和设计约束,对应图形界面的4.5#5setdesignruleconstraintsset_max_fanout4$general_inputsset_max_transition0.5[get_designsEXAMPLE1]#6setareaconstraintset_max_area0//综合优化,对应图形界面的5##############################compile_design##############################compile-map_effortmedium//保存文件,对应图形界面的7###########################write*.dband*.v###########################write-fdb-hier-output~/EXAMPLE1.dbEXAMPLE1-xg_force_dbwrite-fverilog-hier-output~/EXAMPLE1netlist.vEXAMPLE1write_sdf-version1.0~/EXAMPLE1.sdf//保存反标文件//产生报告并保存,对应图形界面的6###########################generatereports############################1report_areaEXAMPLE1.area_rpt//把报告面积的文件保存成EXAMPLE1.area_rpt文件,运行完脚本以后可以查看该文件。#2report_constraint-all_violatorsEXAMPLE1.constraint_rpt#3report_timingEXAMPLE1.timing_rptshdate//显示结束时间4.查看报告文件退出DC使用ls命令,可以查看当前目录下的文件,大家可以看到在这个文件夹下有以下文件EX
本文标题:dc使用教程
链接地址:https://www.777doc.com/doc-6901160 .html