什么是DC?关于DC常见问题汇总.doc

上传人:白大夫 文档编号:3373711 上传时间:2019-08-19 格式:DOC 页数:10 大小:40KB
返回 下载 相关 举报
什么是DC?关于DC常见问题汇总.doc_第1页
第1页 / 共10页
亲,该文档总共10页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述

《什么是DC?关于DC常见问题汇总.doc》由会员分享,可在线阅读,更多相关《什么是DC?关于DC常见问题汇总.doc(10页珍藏版)》请在三一文库上搜索。

1、什么是DC?关于DC常见问题汇总1.1 什么是DC?DC(Design Compiler)是Synopsys的logical synthesis优化工具,它根据design descripTIon和constraints自动综合出一个优化了的门级电路。它可以接受多种输入格式,如硬件描述语言、原理图和netlist等,并产生多种性能报告,在缩短设计时间的同时提高读者设计性能。1.2 DC能接受多少种输入格式?支持.db, .v, .vhd , edif, .vgh等等,以及.lib等相关格式。1.3 DC提供多少种输出格式?提供.db, .v, .vhd, edif, .vgh等,并可以输出sd

2、c, .sdf等相关格式文件。1.4 DC的主要功能或者主要作用是什么?DC是把HDL描述的电路综合为跟工艺相关的门级电路。并且根据用户的设计要求,在TIming和area,TIming和power上取得最佳的效果。在floorplanning和placement和插入时钟树后返 回DC进行时序验证1.5 如何寻找帮助?帮助可以用3种求助方式:1. 使用SOLD,到文档中寻求答案2. 在命令行中用man+ DC命令3. 在命令行中用info+ DC命令1.6 如何找到SOLD文档?SOLD文档可以在teminal中输入sold执行。$ sold或者用命令 which dc_shell找到dc的

3、安装目录。找到online目录。1.7 如何配置DC?综合设置提供必要的参数给DC,使工具能够知道进行综合时所需要的必要的信息,即重要参数:工艺库,目标库,标志库等等。要在.synopsys_dc.setup上设置好这些参数。而.synopsys_dc.setup要在三个目录下有说明,一个是synopsys的安装目录,一个是用户文件夹,最后一个是工程目录。由后一个设置覆盖前一个文件。参数包括:search_path, target_library, link_library, symbol_library1.8 target_library 是指什么?target_library是在synth

4、esis的map时需要的实际的工艺库1.9 link_library如何指定?链接时需要的库,通常与library相同,设置时,需要加*,表示内存中的所有库。1.10 search_path 的设置?该参数指定库的存储位置1.11 DA 和DC有什么区别?DA是 Design Analyzer的简称, 它调用dc来进行综合。 但是它是图形化的。 可以看逻辑电路图,当然需要你的库有symbol库。1.12 为什么要使用DA而不用shell接口?暂时我也不知道答案1.13 SOLD是什么?SOLD是 Synopsys OnLine Document的简称, 基本包括了synopsys公司的所有工具

5、的文档集合。1.14. translaTIon这一步是用什么DC命令来实现的?我们知道, DC综合过程包括3个步骤: translation + logic optimization + mappingtransition 对应命令为 read_verilog(read_vhdl,等)logic optimization 和 mapping 对应于 compile1.15. 逻辑优化和映射(logic optimization + mapping)又是用什么DC命令来实现的?逻辑优化和映射均在compile命令完成,但是可以指定使用特殊的优化方法:structural 和flatten1.16

6、. 什么是DC script?DC script. 是一组dc 命令的集合。 使得综合可以流程化也易于管理。1.17. 基于路径的综合的意思是什么?路径(path),是DC中的一个重要概念。它包括4种路径方式:a. input到FF的data口;b. FF的clk到另一个FF的D口;c. FF的clk到输出端口DICDERd. input到output基于路径的综合就是对这四种路径进行加约束,综合电路以满足这些约束条件。1.18 DC中的各类参数的单位是如何确定的呢?参数的单位由所使用库文件决定,在读入库之后,可以用report_lib去看库的信息,里边有详细的单位说明1.19 DC中的对象有

7、哪些?设计变量:一共有八种:Design, cell, reference, port, pin, net, clock, library。其中cell是子设计的例化,reference是多个子设计例化的通称,port是design的输入输出,pin是cell的输入输出。1.20 什么叫start point 和 end point?这两个概念是DC中path概念的起始点和终点。起始点可以是input和FF的clk终点可以是FF的data和output。1.21 如何寻找想约束的对象?一个是全部查找包括:all_inputs , all_outputs, all_clocks, all_reg

8、isters。一个是根据关键词进行查找:find_ports(),find(port, )。1.22 什么叫一个设计(design) ?设计是DC中的重要对象,你所要综合的东西就叫design,确切或者说你所要综合模块的top文件。1.23 什么叫cell ?在design中,instance的子设计,称为cell。1.24 reference 是指什么? 和cell 有什么区别?当存在一个模块被多次例化,那么该模块就称为reference1.25 如何读入一个design?使用analyze + elaborate 或者 read_verilog, read_vhdl, read_file

9、命令。1.26 analyze+ elaborate 和 read 命令有什么区别?read_file 是可以读取任何SYNOPSYS支持格式的;analyze和eloborate只支持verilog和VHDL两个格式,但是他们支持在中间过程中加入参数而且以便以后可以加快读取过程。1.27 如何处理多个引用的问题?一个方法是使用uniquify,就是把引用几次那么就在内存中换名引入多个子设计,适用于不同时序约束要求;也可以用dont_touch命令,先对多个引用的设计进行编译之后,设置为dont_touch,适用于基本相同的环境要求;还有一种就是把两个引用进行flatten,之后进行综合。1.

10、28 link的作用是什么?确定所有文件是否均存在并把它们链接到当前设计。1.29 环境设置是指什么?是指芯片物理上的参数,比如电压,温度等。1.30 如何设置线载模型?使用set_wire_model命令1.31 如何得知线载模型的种类?读取库文件到DC中,使用report_lib看有多少可用的线载模型1.32 如何设置工作环境变量?使用set_operating_conditions1.33 工作环境变量的类别可以分为哪几类?一般可以分为最坏(worst case),典型(typical),最佳(best case)。1.34 为什么要设置工作环境变量?由于我们要做的是一颗要在实际环境中正

11、常工作的芯片,而在不同的温度和环境下的电路的性能有很大影响,因此为了近可能地模拟芯片工作,设置合适的工作环境信息是非常必要的。1.35 read 和 analyze + ealborate做了哪些工作?语法检查,建立GETECH库。值得注意的是,read命令不自动执行link操作。1.36 getech库是做何用途的?GETCH库是由软宏(soft macros)组成的,是加法器,乘法器之类的东西,这些组件都是在DW里引用的。1.37 调用getech 库中的加法器之后,如何去自己选择一个设计者需要的加法器?暂时没有答案1.38 调用了加法器之后在优化阶段还能够掉换不同的加法器么?暂时没有答案

12、1.39 如何检查script文件中有何错误呢?dc_shell -tcl -f1.40 如果在dc_shell启动后, 想修改库,怎么办?暂时没有答案1.41 如何在dc_shell环境下执行UNIX命令?1.42 优化分为几个层次?一个是基于HDL的结构优化转化为GETCH结构;基于GTECH的逻辑优化,包括架构(strcuture),打平(flatten),转化为优化过的GETCH;基于GETCH的门级优化,主要作用是映射到实际的工艺库中。1.43 什么是约束?约束分为design constraint和optimization constraint。design constraint不

13、由用户确定,已经由所采用的库确定了,用户只能添加进一步的约束。optimization constraint分为两个方面,timing constraint和area constraint。timing constraint又可分为组合电路的约束,时序电路的约束以及输入输出的约束。1.44 DC Script支持TCL么?dcsh和dc-tcl。前者是SYNOPSYS的内部语言,后者是TOOL COMMAND language(TCL)。1.45 综合时不想使用某些库单元进行mapping,怎么办?使用set_dont_use 命令/* Part 2 Compile stategy */2.1

14、 约束一个设计分为几个方面?总的分为,面积约束和时序约束。2.2 面积约束的命令是什么?set_max_area2.3 如何对时钟进行约束?对时钟进行约束是对时钟的周期,波形进行描述。使用create_clock 建立时钟约束2.4 如何对pll进行约束?如果存在PLL,那么首先对输入的初始时钟用create_clock进行约束。再用create_propagated_clock 对PLL输出时钟在基于输入时钟进行约束。2.5 什么叫虚拟时钟约束?虚拟时钟是指在当前要综合的模块中不存在的物理时钟。比如,设计外的DFF的时钟。建立这样的时钟有益于描述异步电路间的约束关系。2.6 DC可以对时钟的

15、哪些特性进行约束?DC支持对时钟的周期,波形,jitter,skew,latency 描述2.7 如何约束时钟的jitter?使用set_clock_uncertainty -setup(-hold) 约束时钟的jitter2.8 如何约束时钟的skew?使用set_clock_uncertainty 约束时钟网络的skew2.9 如何约束时钟的latency?使用 set_clock_latency -option ,option is source or network,the default is network。2.10 如何对当前设计的端口外部条件进行约束?端口的外部条件包括输入驱动

16、大小,输出负载的大小,扇出大小。2.11 输入端口被多大的驱动所驱动?可以使用set_dirive 和set_driving_cell2.12 输出端口要驱动多大的负载?使用set_load 对输出电容值进行约束,单位根据工艺库的define所定。2.13 DC是基于path的综合,那么在约束时如何体现?我们知道,基于path会有四种路径形式,DC中提供create_clock 定义寄存器和寄存器之间的路径;set_input_delay 定义输入与寄存器之间的路径;set_output_delay 定义寄存器与输出之间的路径;set_max_delay和 set_min_delay定义输入和

17、输出的组合路径;2.14 set_input_delay 的目的是什么?定义输入延时,来约束设计中输入逻辑的时序2.15 set_output_delay 的目的是什么?定义输出延时,来约束设计中的输出逻辑的时序2.16 如何对组合电路进行约束?组合电路有set_max_delay 和set_min_delay进行约束2.17 如何对电路的速度进行约束?采用对电路时钟周期的约束的方式来约束电路的速度,使用create_clock2.18 当一个组合电路超过了时钟周期约束,那么该如何处理?如果必须要满足时钟周期约束,那必须修改设计,如果不必要严格要求,那么可以set_false_path可以躲过

18、path check。2.19 当出现环路电路时,如何约束电路?对某一路径使用set_false_path2.20 如何加强设计规则的约束?DRC是电路必须满足的设计规则,使用set_max_capcitanceset_max_fanoutset_max_tansition2.21 在添加了4种路径约束后,如何为某些路径移除约束呢?使用set_flase_path使得某些路径不进行timing check2.22 对于某些路径需要在固定的几个周期内完成,如何对这些路径进行约束?使用set_multicycle_path 对路径进行约束2.23 在添加这些特殊的路径约束,如何恢复原来通用的时序约

19、束?使用reset_path2.24 如何对三态门进行约束?由于综合时,默认三态门是enable的,所以对某些路径要设置set_false_path2.25 如何对门控时钟进行约束,以保证功能正常?对门控时钟电路进行setup和hold检查,使用set_gating_clock_check2.26 设置对某些网络比如时钟或者复位不进行添加buffer等操作,应该怎么约束?使用set_dont_touch_network2.27 如何修正hold 时间冲突?加入set_fix_hold约束/* Part 3 Compile stategy */3.1 综合时,有多少选择综合策略呢?可以使用top

20、-down 和bottom-top。3.2 top-down 方式有何优点?仅需提供单一TOP的script将设计作为一个整体,可得到较好的结果3.3 bottom-up方式有什么优点?对多时钟的综合更为适合每个子模块都有自己的script,便于管理当一个模块改变时,不用重新综合所有设计3.4 如何进行time-budge?使用characteristic3.5 top-down 方式有何缺点?编译时间长子模块改变则整个设计都要重新综合对多时钟设计综合效果不好3.6 bottom-up方式有什么缺点?需要维护多个script3.7 编译时的 -incremental 是什么意思?设计映射为门之

21、后,时序和面积约束可以再定义,incremental确保维持以前的电路结构,只作改善时序和性能,不添加不必要的逻辑。3.8 。./* Part 4 Analyze the report */4.1 如何看面积报告?report_area4.2 如何看时序报告?report_timing4.3 想对单独的单元看面积报告, 用什么命令?report_cell 但是缺省的report_cell只能看current_design下面的一级的cell的面积。因此就有两种方法解决这个问题:1. 用report_cell get_cells -hier *可以看所有的cells面积2. 用list_desi

22、gn列出所有的design, 然后改变current_design到你所想要看的那一级的cell, 然后直接用report_cell.4.4 如何看设计环境和线载模型?report_design4.5 若设计规则和时序违反约束,如何查看?使用report_constraint -all_violators4.6 如何查看连线的扇入,扇出,负载,电容和跳变时间?使用report_net4.6 如何看整个综合后的网表中使用多少种类型的电路门?使用report_hierarchy4.7 如何查看timing exception的时序约束?使用report_timing_requirements/* Part 5 Output the result */

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 其他


经营许可证编号:宁ICP备18001539号-1