您好,欢迎访问三七文档
P1第5章逻辑综合及SynopsysDesignCompiler使用P2概述什么是综合?综合是将RTL源代码转换成门级网表的过程。主要包括三个阶段:转换(translation),映射(mapping)与优化(optimization)。综合工具首先将HDL的描述转换成与工艺独立的RTL级网表,然后根据指定工艺库,将网表映射到工艺库上,成为一个门级网表,再根据设计者施加的延时,面积等约束要求,对门级网表进行优化。P3综合示意图P4综合过程中时序与面积的关系从下图中可以看出面积与延迟的折衷关系,综合工具以约束为指导,在满足时序的情况下获得最小面积。如果不施加约束,综合工具会产生非优化的网表,而这是不能满足要求的网表。所以约束对于综合来说是必不可少的。P5DesignCompiler(DC)简介Synopsys公司的DesignCompiler是一个基于UNIX系统,通过命令行进行交互的RTL综合工具。它提供约束驱动时序最优化,把设计者的HDL描述综合成与工艺相关的门级设计;它能从速度、面积和功耗等方面来优化电路设计,并支持平直或层次化设计。DesginCompiler为Synopsys公司的旗舰产品。根据最新Dataquest的统计,Synopsys的逻辑综合工具DesignCompiler占据91%的市场份额。P6DC综合的基本流程P7DC综合的基本流程1.准备RTL代码:RTL代码经过前端仿真后才能用于综合。2.定义库:设定好所需要用到的综合库等多种库。3.读入设计:综合工具读入RTL代码并进行分析。4.定义设计环境:设定设计的工作环境、端口的驱动和负载,线负载模型等。5.设置设计约束:这是综合的一个极其重要的环节,设定好正确的约束才能得到正确的综合结果。约束要适当,不能过紧或过松。主要是定义时钟和I/O的约束。6.设置综合策略:有top-down和bottom-up两种策略,各有所长,对于不同的设计要具体分析。7.优化设计:综合工具可以根据约束对电路进行优化,也可以人为地加入命令,改变优化方法。8.分析和解决设计的问题:在设计综合(compile)后,根据报告来分析设计中出现的问题,进而修订所出现的问题。9.保存设计数据:综合完成后,保存各种数据,以供后续的布局布线使用(需先通过验证)。P8DC-T综合流程P9DesignCompiler启动界面Allsynthesistoolsusethetoolscommandlanguage(Tcl)P10Unit1P11High-LevelSynthesisFlowP12High-LevelSynthesisFlow1.读入设计或者层次化的设计(hierarchicaldesigns)2.指定目标库、链接库、符号库、综合库3.建立DC的startupfile来指定工艺库文件(technologylibraryfile)和搜索路径目录(searchpathdirectories)4.施加一个约束文件(constraintsfile)5.分析并保存设计P13读入设计(LoadingDesigns)LoadingaFlatRTLDesignLoadingHierarchicalRTLDesignsLoadingPhysicalDataP14启动DCand读入aFlatRTLReadaVerilogRTLfile:P15启动DCand读入aFlatRTLReadaVHDLRTLfile:P16compile需要指定target_libraryP17工艺库的内部描述P18设置TargetLibrary1.默认情况下,指向一个不存在的库2.工艺库由晶圆厂或者设计工艺库的公司提供P19在DC中许多命令都会首先‘auto-link’ifthedesignhasnotbeenlinkedyet.LinkingmeansthatDCtriestolocate(定位)thesourceof,or‘resolve’(解析)anyinstances(例化的实体)intheDesign.Instancescanbegatesorsub-blocks(层次化的模块、软核、硬核、DesignWareIP)DCusesthelink_libraryvariabletotrytoresolvetheinstances.默认情况下link_library的设置:link_library不存在的库P20设置link_library这是Tcl的命令,引号表示列举,$表示变量的置换根据需要,链接Synopsys公司的DesignWareIP,如下:setlink_library“*$target_librarydw_foundation.sldb”P21设置好link_library再执行“link”若返回0,表示link不成功。虽然一些命令有隐式执行link,explicitlink有利于发现问题P22Usingthesearch_pathVariableP23ShorteningFilenameusingsearch_pathsearch_path的设置可以放在DC“startup”文件中不用把完整的文件夹路径写出来.con是约束文件,设置好库就可以施加约束P24DCStartupFileDCStartupFile伴随DC启动被执行startup文件的命名:.synopsys_dc.setup一般将target_library,link_library,symbol_library,syntheticlibrary,search_path的设置放在StartupFile中P25目标库和初始环境的设置DC启动时会先启动.synopsys_dc.setup文件,它里面设定了综合所需要的工艺库的信息以及一些对于工具的设定命令。在综合之前,要设定好所需要的库,如综合库、I/O单元库,IP核等。半导体厂商提供与DC兼容的工艺库-综合库,它包含许多信息,如单元的功能、面积、时间、功耗、测试等,线负载模型,工作条件和设计规则约束等。在0.18um的工艺下,可采用非线性延迟模型(NLDM)来计算单元的延迟。单元的延迟与输入的逻辑转换时间和输出负载有关。根据每个单元的输入逻辑转换时间和输出负载,在工艺库提供的查找表(Look-UpTable)中查出单元的延迟。P26需要指定的库:target_library:targetlibrary对应工艺库,也就是代工厂提供的某种工艺的工艺库link_library:DC在定位或者解析设计中的instances时,所去查找的库symbol_library:在DC的图形化界面给出原理图上各种标准单元的符号时,DC所去查找的库。syntheticlibrary:DC综合时用来将HDL代码转化为相对应的元件时所参考的IP库,比如符号“+”,通过查找IP库将生成某一类加法器。P27.synopsys_dc.setup文件.synopsys_dc.setup文件主要包括各种库的设定,变量的设定等。下面具体介绍各种库的意义及如何设定。目标库(target_library):是DC在做编译(compile)的时候来构成电路图的,将电路映射到具体的单元上。例如set_app_vartarget_librarymy_tech.db链接库(link_library):将设计连接到对应的库上,一般包含目标库、宏单元、IP核等。例如:set_app_varlink_library“*my_tech.db”。其中“*”指明当链接设计时,DC先搜寻内存中已有的库,然后再搜寻变量link_library中制定的其它库。符号库(symbol_library):定义了单元显示的图形库,当用design_vision来查看图形的时候使用。set_app_varsymbol_library“my_tech.sdb”综合库(synthetic_library):是由Synopsys公司提供的DesignWare库,包含了许多IP核及运算单元,用于实现verilog描述的运算符,为电路的优化起着重要的作用。set_app_varsynthetic_library“standard.sldb”搜寻路径(search_path):指定各种库的路径,可以将所用的库的路径放入search_path中,在设定target_library和link_library时就不必加上库的绝对路径,DC会自动在search_path中寻找所用到的库的路径从而读入该库。set_app_varsearch_path“.$search_pathmappedlibscons”P28OneStartupFileName–ThreeFileLocations在DC启动时,自动执行这些设置文件。执行的顺序如上当前工作目录P29Default.../admin/setup/.synopsys_dc.setupCompanyLogoSynopsys目录下的.synopsys_dc.setup的设置情况在启动时,它是三个startup文件中首先被执行。设置好的变量被覆盖问题?这些库都是不存在的P30设置工作目录下的.synopsys_dc.setup如果工作目录中存在这个文件,在DC启动的时候,该.synopsys_dc.setup是三个.synopsys_dc.setup文件中最后一个被执行,并且它会覆盖之前的.synopsys_dc.setup设置好的变量P31LibrarySetupExercise需要注意DC读哪三个位置下的startup文件!现在工作目录(为mapped)中没有startup文件P32综合脚本实例(.synopsys_dc.setup)P33层次化的RTLDesigns层次化的设计或者写到一个文件.v文件中DC去读入这些Verilog文件,哪个会是顶层文件呢?P34读入层次化的RTLDesignscurrent_designMY_TOP;#指定顶层文件P35GoodPracticeSpecifythecurrent_designbeforelinkCheck_designafterlinkcheck_designchecksyourcurrentdesignforconnectivityandhierarchyissues.•Missingportsorunconnectedinputpins•RecursivehierarchyormultipleinstantiationsIssueswarnings,errorsor“Noissuesfound”•Anyerrorreturnsa0valueP36Readingdesignwithanalyze&elaborate建议使用analyze+elaborate的组合来读RTLP37Analyze&elaborateanalyze-Readssourcecodefiles(VerilogorVHDLRTL)-Checkssyntaxandissueserrors/warnings-ConvertsbothVerilogandVHDLfilesintointermediatebinaryformatfiles,placedinCWD-Canusedefine_design_libtoredirectthefiles/directoriestoasub-directoryelaborate-Readstheintermediate.pvlfilesandbuildsthe‘GTECH’designinDCmemory(unmappedddcformat)-Setsthecurrentdesigntothespecifieddesign-Linksthespecifieddesign-Allowsspecificationofparametervalues:elaborateMYJTOP-parameters“N=8,M=3Thisisnotpossi
本文标题:ch5-逻辑综合
链接地址:https://www.777doc.com/doc-7203724 .html