ImageVerifierCode 换一换
格式:DOCX , 页数:35 ,大小:331.45KB ,
资源ID:8531210      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/8531210.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(DC常用命令及脚本.docx)为本站会员(b****6)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

DC常用命令及脚本.docx

1、DC常用命令及脚本利用DC进行综合设计(2012-03-25 17:45:10) 转载标签: dc综合杂谈DC的综合术语用于设计的ASIC的EDA工具往往是一套很复杂的软件,包括大量的工具和文档。同时,每个公司都有自己的一套术.一、预备知识1.1、DC的综合术语用于设计的ASIC的EDA工具往往是一套很复杂的软件,包括大量的工具和文档。同时,每个公司都有自己的一套术语。只有理解了这些术语的含义才能很好的掌握这些工艺。1 设计和设计对象设计是实现一定逻辑功能的电路的描述。设计对象就是在设计中被DC命令、属性和约束操作或控制的对象。常用的设计中包括元件、网络、端口、引脚和时钟。另外,一个设计可能包

2、括某个相同子设计或库元件的多个例化。这时候被例化的设计或库元件称作参考。在一个设计中查找某个对象的命令:find,这是在DC命令中很常用的命令。如:列出当前设计的所有端口(ports):Dc_shellfindport OR find(port,”*”)列出所有包含”DW”字母的元件:dc_shellfind (cell,”*DW*”)列出cba_core库中的AN2门的所有接脚:dc_shellfind(pin,cba_core/AN2Read format vhdl ./src/rtl/timer_tugw.vhdRead format vhdl ./src/rtl/test_top.vh

3、dCheck_error vIf(dc_shell_status= =1)exit 1Current_design test_topLinkCheck_error vIf(dc_shell_status= =1)exit 1Include pass0/constraint/test_top.conCheck_error vIf(dc_shell_status= =1)exit 1Set_max_area 0.0000Set_flatten falseEcho”*doing full compile for the partition test_top*”Sh date;Compile map_

4、effort mediumCheck_error vIf(dc_shell_status= =1)exit 1Sh date;Check_designCompile_top_acs_partion=tureCompile_top_all_paths=trueEcho”*doing boundary compile for the partition test_top*”Sh date;Compile topUniquifyCheck_error vIf(dc_shell_status= =1)exit 1Sh date;Current_design test_topWrite format d

5、b hierarchy output pass0/db/test_top.dbWrite format verilog hierarchy output pass0/db/test_top.vWrite format vhdl hierarchy output pass0/db/test_top.vhdReport_timing pass0/report/test_top.timReport_area pass0/report/test_top.areaReport_constraints pass0/report/test_top.cstrReport_qor pass0/report/te

6、st_top.qorReport_constraintsall_violatorsverbosepass0/report/test_top.vioquit脚本文件可以使用任何一个文本编辑工具产生或修改,也可以在dc_shell中执行write_scirpt命令产生。如,下面的命令就是将设计的属性和约束等信息保存到名为test.scr的脚本文件。Dc_shellwrite_test.scr脚本文件的语法应该符合dc_shell命令的语法。DC提供了一个语法检查工具和一个上下文检查工具,他们可以检查脚本文件的语法和脚本文件的错误,并提供相应的错误信息。语法检查工具检查脚本文件的语法,但是不执行其中

7、的命令。语法检查实现的功能包括:检查预先定义的命令参数是否正确,检查必须的参数是否存在、文件重定向问题、检查引用文件中的命令的语法、按照dc_shell正常的使用方式执行赋值。要使用语法检查,我们必须对该功能进行使能,此后每次引用或执行脚本前就会首先进行语法检查。在dc_shell中使能语法检查功能的方法如下:Dc_shellsyntax_check trueSyntax check on.上下文检查工具检查上下文的错误。在执行一个脚本文件前,我们应该对其进行上下文检查。上下文检查在检查每个命令的语法的同时,还会读入设计、检查设计和库文件是否有效、文件设法齐全等。其执行具体的功能包括:检查设计

8、对象和属性的合法性,检查用户定义的属性,检查变量是否存在,检查条件语句的条件,检查循环语句,读入需要读入的文件,根据命令重定向文件,检查库和库对象。要使用上下文检查,我们必须对该功能进行使能,此后每次引用或执行脚本文件前就会进行上下文检查。使能命令如下。Dc_shellcontext_check trueContext check on.最后,脚本文件的执行是比较简单的,可以通过两种方法:在dc_shell中,应该使用include命令执行脚本文,include在启动dc_shell时,可以使用-f选项执行脚本文件,dc_shell f 在执行脚本前,如果我们激活了脚本语法检查和上下文检查,那

9、么就会先进行相应的检查。二、准备HDL文件输入DC的文件通常是HDL文件,HDL的代码质量将直接影响综合的效果,因此在编码中必须考虑设计数据管理、设计划分和HDL代码的风格2.1、数据文件管理首先,由于综合过程中需要大量的数据和多种文件,因此数据的管理就显得非常重要。这种管理通常设计两个部分,设计数据控制和数据组织。控制设计数据主要是控制数据的创建、维护、覆盖和删除等。这和软件工程中的版本控制是基本一致的。在DC中对于不同类型的的文件,一般有约定的扩展名。在控制数据的同时还必须注意对数据合理有效的组织,一般,在使用DC综合的时候,我们都会使用层次化的目录结构来存放数据文件。相对于不同的综合策略

10、,我们也有两种不同的目录结构。可以看出,在应用自顶向下的综合策略时,由于综合是从顶层模块开始一次到各个模块,所以只需要一个综合目录。而自底向上的综合则现对各个模块进行综合,因此可能有多个综合目录。2.2、设计划分对设计的合理划分可以改善综合的结果,减少操作的时间,简化约束文件和脚本文件。划分直接影响设计中模块的大小,如果模块太小,相当于人为的制造了一个界限,将限制DC有效的进行优化。另一方面,如果划分的模块太大,则会增加综合消耗的时间。在划分的时候还要考虑设计的重用性,主要应该注意以下几点:详细定义并记录设计的接口,尽可能使接口标准化,编写参数化的代码。通常,我们设计的划分一般使用以下策略:(

11、1)将相关的组合逻辑划分在一起(2)消除胶连逻辑(3)模块的输出都应该使用寄存器(4)按照设计目标进行划分按照编译技术划分,将设计中使用不同编译技术的部分划分到不同的模块。特别使当设计中既有高度结构化的逻辑(ALU),又有随机逻辑时,应当将他们分开。因为对于结构化的逻辑应该使用结构化编译,而对随机逻辑,应该使用扁平化的编译。可以将共享的资源划分到一起将用户定义的资源和他们驱动的逻辑划分到一起,用户定义的资源包括用户定义的函数、过程、宏单元和designware元件。DC对于这些资源无法自动实现共享和复制。因此,将他们和它们所驱动的逻辑放在一起,我们就可以手工的插入多个元件来增大驱动能力。把顶层

12、逻辑分成至少3级,将一些特殊的功能独立出来,如管脚、时钟、边界扫描和异步逻辑等。如下图所示,一般情况下,设计的最顶层是I/O管脚。下一层包括边界扫描、时钟处理、异步逻辑和核心逻辑。增加这一层是为了I/O管脚例化的灵活性.将时钟处理独立出来是为了对这部分进行详细的分析仿真。将异步逻辑独立出来是为了可测性和静态时序分析的问题限制在一个比较小的范围之内。设计划分的方法分为HDL划分和DC中的划分。HDL的划分就是根据上面一些原则通过HDL代码对设计进行划分。而DC中的划分是在DC中通过使用专门的命令,改变HDL中的划分和层次的结构。DC中提供了两个与此相关的命令:group,ungroup 。三、确

13、定设计库综合之前必须设定链接库、目标库、符号库和综合库。连接和目标库属于工艺库,它们定义了半导体生产厂的工艺元件和其它信息。符号库定义用于design vision 或design analyzer 中的元件的符号表示确定这些库是使用DC进行综合的前提条件,因此我们必须掌握DC中库的命令的使用,以便DC可以正确的使用库中的数据。3.1、工艺库工艺库包括描述每个单元的功能和特性的信息。工艺库由半导体厂商提供和维护。元件库包括元件名称、元件接脚名称、面积、时延信息、接脚负载。同时工艺库还定义了实现设计功能必须满足的条件。这些条件也可以称作设计规则约束。除此之外,工艺库还确定了工艺的工作条件和线载模

14、型。工艺库在DC中有下面一些用途:(1)实现设计的功能,在dc综合过程中要将设计映射到某个工艺库,他们称作目标库。目标库包括了所有用于生产网表的元件以及设计工作条件的定义。(2)解析元件参考,在dc中用于解析元件参考的工艺库称为链接库。链接库中除了工艺库外还可能包括设计文件。(3)计算时延和路径延时,链接库还定义了用于计算时延值和路径延时的时延模型(4)计算消耗的功率3.2、设置库变量在使用dc综合之前我们必须对库进行设置。具体的方法是使用dc_shell中的变量来确定各种库。变量和库文件的定义见下表在确定库的位置的时候,我们可以使用完整的路径也可以只用文件名。如果只确定了文件名,DC会在se

15、arch_path变量确定的搜索路径中查找这个文件。在设置工艺库和链接库的时候要注意:链接库包括了工艺库和设计文件。因此,link_library变量的值是工艺库加上一个星号“*”,表示链接时,DC既搜索工艺库,也搜索调入内存中的设计文件。除了设置库变量,DC还支持各种对库的操作,如:读入和保存库,列出使用的库,显示库的内容,确定库的对象甚至直接对库对象进行操作。如下为一个工艺库的例子:Cell(AND2 3)/元件名称(area:8.000;/元件面积Pin(Y)(direction :output;Timing()(Related_pin:”A”;Timing_sence:positive

16、_unate;Rise_propagation(drive_3 table_1)(values(“0.2626,0.2607.”) /接脚延时Fall_progpagation(drive_3_table_3)(values(“0.1316,0.1331.”).)Timing()(related_pin:”B”;.):”A&B”;/接脚的功能描述Max_capatiance:0.00220Min_capatiance:0.00220 /输出引脚的设计规则)Pin(A)(direction:input;Capacitance:0.012000;)Pin(B)(direction:input;/输

17、入引脚的电器特性Capacitance:0.010000;)四、DC对设计的一些操作4.1、读入文件下表列出了DC支持的所有文件类型对于设计文件,可以使用两种方法读入。使用read_file命令或使用analyze和elaborate命令。这两种方法有一些区别。简单的说,前一种适用于各种类型的文件,而后一种主要用于综合VHDL和verilog文件。但是使用后者有一些特殊的功能。具体说来,analyze的功能包括读入HDL源文件,检查错误,产生独立于HDL的中间类型的HDL库对象,存储中间文件。如果一个设计执行的analyze命令,只需要在这个设计改变之后再执行该操作。Elaborate命令根据

18、analyze产生的中间文件产生一个与工艺无关的设计。这个操作还将HDL中的算术操作用于DESIGN WARE 库中的元件替代,同时确定总线的宽度。当设计读入内存之后,它将转换为synopsys内部数据库的格式。DC之后的综合优化过程都是对内存中的设计执行的。(1)链接对于一个完整的设计,必须把所有的库元件和他们对应的设计参考链接起来。对于每一个设计,还必须有一个参考来衔接子设计和链接库。这一过程称为链接设计或参考解析。换句话说,链接就是要在链接库中找到设计中使用的所有元件和子设计,保证设计的完整。如果不能正确的链接,则无法进行以后的综合等操作。DC通过一下步骤完成参考解析:首先,它确定哪个库

19、元件和子设计在当前的设计中被使用。然后,它在链接库中定位这些参考。最后,把定位好的参考和设计链接起来。如图。链接的操作可以自动进行,也可以手工完成。当使用一些DC命令,如compile时会自动进行链接。如果需要,也可以使用link命令进行手工链接。(2)对设计和设计对象的操作这些操作时DC中的一些基本操作,和其它EDA软件中的操作类似,如生成新设计、拷贝设计、重新命名等。其中比较重要的有以下几种:设置当前设计。在DC中,我们应当注意当前设计的概念,因为大多数的命令都是针对当前设计进行的。一般说来,如果成功的读入了一个设计之后,这个设计就会作为当前设计。另外,如果指定了一个当前设计,可以使用cu

20、rrent_design命令。列出设计和设计对象。使用list_designs命令来列出内存中的设计,其中带“*”为当前设计。下表也列出了显示设计对象信息的一些命令。 改变设计的层次,在DC中我们可以改变HDL所描述的设计层次关系。首先,使用report_hierarchy命令可以显示设计当前的层次关系。然后,使用group可以将一些元件或子设计组合起来,增加一个逻辑层次。或使用ungroup名去掉一个逻辑层次。编辑设计,使用下表列出的命令可以对设计对象进行编辑,如生成,删除等。Creat_cell 生成一个元件Remove_cell删除一个元件Create_net生成一个网络Connect_

21、net 连接一个网络Disconnect_net 断开一个网络Remove_net 删除一个网络Create_port 生成一个端口Remove_port 删除一个端口Create_bus生成一个总线Remove_bus 删除一个总线4.2、属性的处理属性描述了设计数据库中对象逻辑的电气、物理和其它特性。一个属性通常都是附加给一个设计对象并存储于设计数据库中。DC中,我们可以设置和使用以下一些对象的属性整个设计设计对象,如时钟,网络和端口设计中的子设计或元件的例化工艺库,库元件 属性有自己的名称、类型和值。属性一般有以下几种类型:串、数或是逻辑。属性可以是DC预设的,这些属性可以被DC识别;也

22、可以是用户定义的。一些属性是只读的,其值由DC设置,用户无法修改,另一些是用户可以自己修改的。例如,我们经常使用“dout_touch”属性,它可以付给网络,单元,端口或设计。而当我们需要设置这个属性的时候,需要专门的命令:set_dont_touch而对于一般的属性,可以使用命令set_attribute来设置。DesignCompiler综合脚本常用命令和模板(2012-03-25 17:47:12) 转载标签: dc综合script杂谈分类: 微电子 参照自己的设计,以及自己的工艺信息,适当修改下面的Constraints 和 Run Script 等的脚本,添加一些相关的约束语句,就可

23、以运行了详细.参照自己的设计,以及自己的工艺信息,适当修改下面的Constraints 和 Run Script 等的脚本,添加一些相关的约束语句,就可以运行了详细的命令请参照DC的官方User Guide等相关资料。Invoking Design CompilerUnix% design_vision # Interactive GUI, WLM modeUnix% design_vision topographical # Interactive GUI, Topographical modeUnix% dc_shell-t # Interactive shell, WLM modeUni

24、x% dc_shell-t topographical # Interactive shell, Topographical modeUnix% dc_shell-t f RUN.tcl | tee i my.log # Batch mode.synopsys_dc.setupset search_path “$search_path libs cons unmapped rtl”set synthetic_library dw_foundation.sldbset target_library 65nm.dbset link_library “* $target_library $synth

25、etic_library IP.db”set symbol_library 65nm.sdbdefine_design_lib WORK path ./workset_svf set_vsdc history keep 200set sh_enable_page_mode falseset cache_write .set cache_read $cache_writesuppress_message LINT-28 LINT-32 LINT-33 UID-401set alib_library_analysis_path get_unix_variable HOMEalias h histo

26、ryalias rc “report_constraint -all_violators”TCL Commands and Constructsset PER 2.0# Define a variable and its valueecho $PER# Variable substitution 2.0set MARG 0.95expr $PER * $MARG# expr: *, /, +, -, , , =, =set pci_ports get_ports A# Imbedded commandset pci_ports get_ports “Y?M Z*”# Wildcardsecho

27、 “Effctv P = # Soft quotes 1.9 expr $PERIOD * $MARGIN”echo Effctv P = # Hard quotes expr $PERIOD * $MARGIN# Effctv P = expr $PER * $MARG# Comment lineset COMMENT in_line;# In-line commentset MY_DESIGNS B1.v . B26.v # foreach loopforeach DESIGN $MY_DESIGNS read_verilog $DESIGNfor set i 1 $i 27 incr i

28、 # for loop read_verilog BLOCK_$i.vHelpful UNIX-like DC-shell commandspwdcdlshistory!7!reportsh printenvget_unix_variable ARCHConstraintsreset_designset_max_area 0create_clock -period 2 name Main_Clk get_ports Clk1create_clock period 2.5 waveform 2 3.5 get_ports Clk2create_clock period 3.5 name V_Cl

29、k; # VIRTUAL clockset_clock_uncertainty setup 0.14 get_clocks *set_clock_uncertainty setup 0.21 from get_clocks Main_Clk to get_clocks Clk2set_clock_latency max 0.6 get_clocks Main_Clkset_clock_latency source max 0.3 get_clocks Main_Clkset_clock_transition 0.08 get_clocks Main_Clkset_input_delay -ma

30、x 0.6 -clock Main_Clk all_inputsset_input_delay max 0.3 clock Clk2 clock_fall add_delay get_ports “B E”set_input_delay -max 0.5 -clock network_latency_included V_Clk get_ports “A C F”set_output_delay -max 0.8 -clock source_latency_included Main_Clk all_outputsset_output_delay -max 1.1 -clock V_Clk get_ports “OUT2 OUT7set_max_capacitance 1

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1