synopsysdc中文教程比较详细.pptx

上传人(卖家):晟晟文业 文档编号:4370882 上传时间:2022-12-03 格式:PPTX 页数:127 大小:1.07MB
下载 相关 举报
synopsysdc中文教程比较详细.pptx_第1页
第1页 / 共127页
synopsysdc中文教程比较详细.pptx_第2页
第2页 / 共127页
synopsysdc中文教程比较详细.pptx_第3页
第3页 / 共127页
synopsysdc中文教程比较详细.pptx_第4页
第4页 / 共127页
synopsysdc中文教程比较详细.pptx_第5页
第5页 / 共127页
点击查看更多>>
资源描述

1、synopsysdc中文教程比较详细综合的定义逻辑综合:决定设计电路逻辑门的相互连接。逻辑综合的目的:决定电路门级结构、寻求时序和与面积的平衡、寻求功耗与时序的平衡、增强电路的测试性。逻辑综合的过程:首先,综合工具分析HDL代码,用一种模型(GTECH),对HDL进行映射,这个模型是与技术库无关的;然后,在设计者的控制下,对这个模型进行逻辑优化;最后一步,进行逻辑映射和门级优化,将逻辑根据约束,映射为专门的技术目标单元库(target cell library)中的cell,形成了综合后的网表。第2页/共126页ASIC design flowVerified RTLDesignConstra

2、intsIP and LibraryModelsLogic Synthesis optimization&scan insertionStatic Timing AnalysisFormal verification Floorplan placement,CT Insertion&Global routingTransfer clock tree to DCPost global routeStatic Timing AnalysisDetail routingPost-layout Optimization(in-place optimization(IPO)Static Timing A

3、nalysisTape outTime ok?Time ok?nonoTime ok?no第3页/共126页ASIC design flow设计举例,tap控制器,已完成代码编写及功能仿真:Tap_controller.v Tap_bypass.v Tap_instruction.v Tap_state.v 完成全部设计还需经过如下几个步骤:Pre_layout Synthesis STA using PrimeTime SDF generation Verification Floorolanning and Routing Post_layout 反标来自layout tool的信息,ST

4、A using PrimeTime Post-layout Optimization Fix Hold-Time Violation第4页/共126页ASIC design flow Initial Setup:建立设计环境,技术库文件及其它设计环境设置。DC.synopsys_dc.setup 文件 company =“zte corporation”;designer =“name”;technology=“0.25 micron”search_path=search_path+“.”“/usr/golden/library/std_cells”“/usr/golden/library/p

5、ads”target_library=std_cells_lib.db link_library =“*”,std_cells_lib.db,pad_lib.db symbol_library=std_cells.sdb,pad_lib.sdb第5页/共126页ASIC design flowSynthesis:利用约束完成设计的门及实现及扫描插入Constrain scripts /*Create real clock if clock port is found*/if(find(port,clk)=clk)clk_name=clk create_clock-period clk_peri

6、od clk /*Create virtual clock if clock port is not found*/if(find(port,clk)=)clk_name=vclk create_clock-period clk_period-name vclk第6页/共126页ASIC design flowConstrain scripts(续)/*Apply default drive strengths and typical loads for I/O ports*/set_load 1.5 all_outputs()set_driving_cell-cell IV all_inpu

7、ts()/*If real clock,set infinite drive strength*/if(find(port,clk)=clk)set_drive 0 clk /*Apply default timing constraints for modules*/set_input_delay 1.2 all_inputs()-clock clk_name set_output_delay 1.5 all_outputs()-clock clk_name set_clock_skew-minus_uncertainty 0.45 clk_name /*Set operating cond

8、itions*/set_operating_conditions WCCOM /*Turn on Auto Wireload selection Library must support this feature*/auto_wire_load_selection=true第7页/共126页ASIC design flowCompile and scan insert的scripts,采用bottom_up的编译方法 set_fix_multiple_port_net buffer_constants all compile scan check_test create_test_patter

9、n sample 10 preview_scan insert_scan check_test 如果模块内的子模块具有dont_touch 属性需添加如下命令,因要插入扫描 remove_attribute find(-hierarchy design,”*”)dont_touchWrite netlist remove_unconnected_ports find(-hierarchy cell,”*”)change_names hierarchy rules BORG set_dont_touch current_design write herarchy output active_de

10、sign+”.db”write format verilog hierarchy output active_design+”.sv”第8页/共126页ASIC design flowPre_layout 的 STA:用DC的静态时序分析引擎做block的STA,用PrimeTime做full_chip的STA。Setup_time分析 Hold_time分析 其时序约束和提供给DC做逻辑综合的约束相同。静态时序分析同综合一样,是一个迭代的过程,和cell的位置及布线关系密切,通常都执行多次,直到满足需要。第9页/共126页ASIC design flowSDF generation,pre_

11、layout的SDF文件,用于pre_layout timing仿真,同时还需提供时序约束文件(SDF格式)给layout tool做布局布线。script文件如下:active_design=tap_controller read active_design current_design active_design link Create_clock period 33 waveform 0 16.5 tck Set_dont_touch_network tck trst set_clock_skew delay 2.0 minus_uncertainty 3.0 tck set_drivi

12、ng_cell cell BUFF1X pin Z all_inputs()set_drive 0 tck trst set_input_delay 20.0 clock tck max all_inputs()set_output_delay 10.0 clock tck max all_outputs()write_timing format sdf-v2.1 -output active_design+”.sdf”write_constraints format sdf cover_design -output constraints.sdf第10页/共126页ASIC design f

13、lowVerification 利用SDF文件进行动态时序仿真:利用功能仿真时。用verilog 编写的test_bench 文件 形式验证:利用数学算法检查设计的逻辑的等效性,静态验证,需要的时间比动态仿真少,验证全面。在这里验证RTL描述与gate_level网表的逻辑等效性。Floorolanning and global Routing;Estimated 寄生电容和RC delay的抽取;利用抽取的参数静态时序分析,若时序不满足要求,生成custom wire_load 做incremental synthesis即post_layout的优化,采用reoptimize_design

14、 in_place命令,其script文件需反标抽取的参数到设计;Detail routing;real寄生电容和RC delay的抽取;利用抽取的参数静态时序分析,修正hold_time如需要做post_layout的优化;生成post_layout的SDF文件,做gate_level仿真验证;第11页/共126页ASIC design flowECO Engineering change order,不属于正常的ASIC流程,一般只有在ASIC设计的后期,需要改变网表,可利用ECO,例如,在tape-out(sign-off)以后,遇见设计的硬件bug。采用ECO可仅对设计的一小部分重新布

15、线不影响chip其他部分的位置及时序,通常,修改不能大于10%。最新版本的DC提供由ECO compiler,可使设计者手工修改网表,节省时间。一些layout工具也具有ECO功能。第12页/共126页DC介绍Synopsys Design Compiler,是一个基于UNIX系统,通过命令行进行交互的综合工具,除了综合之外,它还含有一个静态时序分析引擎及FPGA和LTL(links-to-layout)的解决方案。我们就以下几个方面对DC做以介绍:script文件:由DC的命令构成,可使DC自动完成综合的整个过程。DC支持的对象、变量、属性 DC支持的文件格式及类型 DC在HDL代码中的编译

16、开关,控制综合过程 Translate_off/translate_on:指示DC终止或开始verilog 源代码转换的位置。full_case:阻止case语句在不完全条件下生成latch。第13页/共126页Script 文件Script 文件 Script 文件的构成 DC综合环境设置(.synopsys_dc.setup);属性和约束信息;综合命令(read,compile);控制流命令;Conditional:Looping:if(expr)foreach(variable,list)dc_shell commands dc_shell commands else dc_shell

17、commands while(expr)dc_shell commands Script 文件的检查:DC提供syntax and context checkers来检查Script文件的错误第14页/共126页DC支持的对象、变量、属性对象,DC将设计对象分为8类,分别如下:Design:具有某种或多种逻辑功能的电路描述;Cell:设计的instance;Reference:cell或instance在库中定义的名字;Port:design的输入、输出;Pin:design中cell的输入、输出;Net:ports和pins之间或pins之间的信号名;Clock:被定义为时钟源的pin或po

18、rt;Library:cell的集合,如:target_library,link_library;第15页/共126页DC支持的对象、变量、属性例如:第16页/共126页DC支持的对象、变量、属性对象的查找命令格式 find -hierarchy type:DC支持的所有对象;name list:设计对象或库对象的清单;-hierarchy:用于在设计的各层次寻找的对象;该命令的返回值为List,list:一种字符串类型,例如:mylist=el1 el2 el3 例如:第17页/共126页DC支持的对象、变量、属性变量,一种标识符,DC用于存储信息,可做为命令的操作参数。DC预定义的变量,可

19、用它获得综合过程中的有关信息,如dc_shell_status;DC预定义的变量总有一个缺省值,用户可定义另外的值,如;dc_shellvhdlout_use_package=library IEEE.std_logic_1164;library STD_LIB;用户定义的变量,用于自动化综合的过程。如,可定义一个变量,存储某个时钟域的flop的个数。定义变量:dc_shelldesigner=“myname”;获得UNIX的环境变量:dc_shelldesigner=get_unix_variable(“USER”)显示变量的值:dc_shellList target_library tar

20、get_library=“cbacore.db”列出所有的变量:dc_shellList variable all移去变量:dc_shell remove_ variable designer,变量没有移去之前,不得重新定义。注:变量值不会被保存在设计数据库中。第18页/共126页DC支持的对象、变量、属性属性,DC用于存储具体的设计对象,如:nets,cells,clocks的信息,一般来说,属性都是DC预定义,命令如下:set_attribute get_attribute dc_shellget_attribute STD_LIB default_max_transition第19页/共

21、126页DC的文件格式及类型DC支持的文件格式*.db文件,DC的内部文件格式 Verilog文件 VHDL EDIF:electronic design interchange format,用于不同工具间门级网表的移植DC的文件类型 Script files.scr RTL verilog file.v RTL VHDL file.vhd Synthesized VHDL netlist.svhd EDIF file.edf Synthesized verilog netlist.sv Synopsys database file.db report.rpt Log files.log第2

22、0页/共126页Synopsys technology librarySynopsys technology library technology library由半导体制造商提供,定义cell的相关信息及设计标准约束,分为两类:target libraries:在门级优化及映射时,提供生成网表的cell;link libraries:提供设计网表中可引用的cell,DC不利用link libraries的cell做综合;Synopsys technology library结构组织可看作实际上的技术库标准,它是一个文本文件(扩展名“.lib”),在使用之前,需被LC编译,产生一个“.db”文

23、件,其构成如下:Library Group;Library level attributes;Environment description;Cell description;第21页/共126页Synopsys technology libraryLibrary Group:定义库名 library(ex25)/*Library Group /*start of library*/*end of library*/一般,一个库文件含有一个Library Group,库文件和Library 名相同。第22页/共126页Synopsys technology libraryLibrary lev

24、el attributes:定义技术库的全局属性,如:技术库的类型(CMOS/TTL)、日期、版本及缺省值,例如:library(ex25)technology(cmos);delay_model :table_lookup;date :”feb 29,2000”;revision :”1.0”;current_unit :”1A”;time_unit :”1ns”;voltage_unit :”1V”;pulling_resistance_unit :”1kohm”;capacitive_load_unit(1.0 pf);default_inout_pin_cap :1.5;default

25、_input_pin_cap :1.0;default_output_pin_cap :0.0;default_max_fanout :10.0;default_max_transition :10.0;default_operating_condition :NOMINAL;in_place_swap_mode :match_footprint;第23页/共126页Synopsys technology libraryEnvironment description:主要包括:缩放因子(scaling factors)时序模型(timing rang models)操作条件(operation

26、 condition)线性负载模型(wire-load models)缩放因子(scaling factors 或K-factors):实际上是一个乘数因子,表示随着PVT的变化,对设计延时的修正。例如:K_process_fall_transition :1.0;K_process_rise_transition :1.2;K_temp_fall_transition :0.03;K_temp_rise_transition :0.04;K_volt_fall_transition :0.02;K_volt_rise_transition :0.5;时序模型(timing rang mode

27、ls):根据操作条件的变化,修正信号到达时间,如:Timing_range(BEST)faster_factor:0.5;slower_factor:1.3;第24页/共126页Synopsys technology library操作条件(operation condition):定义了PVT和RC树模型。DC根据操作条件缩放cell和net的delay;第25页/共126页Synopsys technology librarytree_type:定义时序计算时内部连结的电阻、电容值的分配,有worst_case_tree,balance_tree,best_case_tree,三种类型可贡

28、选择。我们利用Dc来表示driver pin和driven cell的input pin的内连延时,则它们的wire_load分别对因如下:第26页/共126页Synopsys technology library线性负载模型(wire-load models):估计pre_layout电路中net的电容,电阻及面积。Synopsys 提供了几种不同的wire-load models以对相应的设计逻辑大小,它给出了net fanout 和net length 的统计关系。例如:第27页/共126页Synopsys technology libraryCell description:描述cel

29、l的属性,包括:输入输出pin、时序等,例如:cell(BUFFD0)area:5.0;pin(Z)max_capacitive:2.2;max_fanout:4;function:”I”;direction:output;timing()related_pin:“I”;pin(I)direction:input;capacitive:0.04;fanout_load:2.0;max_transition:1.5;第28页/共126页Synopsys technology libraryCell各pin相关的DRC属性 Input pin的fanout_load Output pin的max_

30、fanout Input or output pin 的max_transition Input or output pin的max_capacitance DRC属性定义了库中cell的操作条件,和制造厂家的工艺技术相关,设计不能超出这些条件的规定。Cell 的DRC属性可以用如下命令改动dc_shell set_attribute find(pin,ex25/BUFFD0/Z)max_fanout 2.0时序cell通过将clock input pin的“clock”属性设置为true定义input pin为时钟。第29页/共126页Synopsys technology libraryG

31、ood library 所有的cell都有各种各样的驱动强度;Buffer和inverters的驱动强度变化范围大;Cell的rise和fall的delay较均衡;一个物理cell含有相同逻辑功能,但相位相反输出隔离,如:OR,NOR;两个物理cells,有相同逻辑功能,但相位相反如:AND,NAND;拥有各种高驱动强度的带有一个输入inverters复杂cells(AIO,OAI);拥有各种高驱动强度的高扇入的cells;拥有各种驱动强度的,正沿负沿触发的flip_flop;拥有各种输出驱动强度的flip_flop;拥有各种不同的set,reset组合的Flop;拥有各种驱动强度的,正沿负沿

32、触发的latch;拥有delay cell;第30页/共126页Synopsys technology librarySynopsys 支持如下集中延时模型:CMOS通用延时模型;CMOS线性延时模型;CMOS非线性查找表模型;前两种模型已不常用,我们现在采用非线性延时模型(non-linear delay model)计算cell的延时。所谓NLDM,是一个二维查找表,根据一个cell的input transition 和output loading 查找cell的delay和output transition,一般每一个cell都有两个表,一个用于cell delay,另一个用于outpu

33、t transition。对于input transition 和output loading 没有在表中列出的cell,可用插入法计算得到。Cell的延时由input transition和output loading决定,但input transition就是driving cell的output transition,若driving cell有多个timing arc,则driven cell的延时计算会受影响。例如,U1有两个output transition,对U2的延时计算如何选取input transition?我们可采用set_disable_timing U1 from A

34、 to Z,避免DC采用A to Z的timing arc.reseta2ns0.3nsZZAffected gateU2U1 A B第31页/共126页Partitioning for synthesis划分的目的 使设计易于管理,提高设计的重用性 获得更好的综合结果 简化约束和scripts,使综合操作更容易;提高编译速度划分应综合考虑以下几个方面 逻辑的功能 设计的目标 编译的技术下面就以下几个方面做简单介绍 划分的方法 划分的原则 RTL编码指南第32页/共126页Partitioning for synthesis划分的方法在编写HDL代码之前,根据功能做初步划分;DC可在综合和对划

35、分进行修改;在DC中改变划分的命令:group,ungroup Group:将指定的实例组合为一个模块,生成新的层次划分;Ungroup:移去以前的模块划分。在执行group和ungroup命令之前,包含实例的设计模块需设置,命令如下:dc_shellcurrent_design topU0U1U2topU0U1U2sub1topGroup U1 U2 design_name sub1 Ungroup-all第33页/共126页Partitioning for synthesis划分遵循的原则:相关的组合逻辑在一个模块内;设计可重用性;根据功能划分模块;结构逻辑 和随机逻辑分开;一个合理的尺寸

36、(最大10K门);在顶层分为I/Opads,DFT,clock,core logic;在顶层不要加粘合逻辑;状态机和别的逻辑分开;在一个block中不要有多个时钟;用于时钟同步的块要隔离;划分时,应考虑Layout;与技术库相关的实例化的cell应在单独模块内;第34页/共126页Partitioning for synthesis编码指南 RTL级的HDL描述实际是电路结构的文本描述,它是技术无关的,类似于网表。HDL语言先于综合工具出现,综合工具只能根据HDL代码进行逻辑推断,对完成同一功能而书写方式不同的HDL代码,综合工具会产生不同逻辑电路。所以不能依靠DC去修正不符合规范的代码。写代

37、码时,需清楚描述的硬件电路拓扑结构。RTL描述内容如下:寄存器的结构;电路的拓扑;寄存器之间的功能;DC仅对寄存器之间的逻辑进行优化,不会对寄存器的排列进行优化。第35页/共126页Partitioning for synthesis编码指南HDL代码的编写应注意技术独立性,尽量减少引用在某些库中定义门的hard_coded。若必须引用,将这些引用门放在一个单独的模块内。Clock 逻辑Clock逻辑及reset生成应放在一个模块中,便于综合时对时钟约束的定义;Clock命名在设计的各层次应保持一致性;在一个模块内不要由多个时钟;对于时钟源的mux,用于测试时控制时钟,最好人为实例化,便于se

38、t_disable_timing的使用;在top level不要有粘和逻辑;一个文件仅包含一个模块,模块名与文件名相同;I/O pad应为单独的模块;最小化不必要的层次,过多的层次会降低电路的性能,因DC逻辑优化不能跨越模块的层次;所有模块的输出直接来自寄存器的输出;状态机对verilog,State命名使用“parameters”;组合逻辑和时序逻辑分开;第36页/共126页综合环境建立在综合之前必须用setup文件配置综合的环境,下面,我们就以下几个方面对setup文件进行介绍:setup文件的位置 setup文件的内容 setup文件举例第37页/共126页综合环境建立setup文件的位

39、置:由一个setup文件提供,文件名必须为“.synopsys_dc.setup”,通过向相关环境变量赋值,定义技术库的位置及综合需要参数。setup文件的位置如下:Synopsys installation directory:它用于卸载Synopsys 技术独立库及别的参数,不包含设计相关的数据。Users home director:用的setup信息。Project working directory:设计的setup信息 DC按以上顺序依次读取setup文件,最后一个读取的setup文件将覆盖前面读取的setup文件。将设计相关的startup文件放于Project working

40、directory下。第38页/共126页综合环境建立Startup文件必须定义如下变量:Search_path:指明库文件的位置 Target_library:既技术库,由生产厂家提供,该库中的cells,被 DC用于逻辑映射。Target library的文件名应包含在Link library的文件清单中,用于DC读取门级网表。Link_ library:该库中的cells,DC无法进行映射,例如:RAM,ROM及Pad,在RTL设计中,这些cells以实例化的方式引用。Symbol_library:该库文件包含技术库中cells的图形表示,用于DA生成门级示意图。Target_libra

41、ry和Link _library为设计者提供了将门级网表从一种技术在映射 到另一种技术的方法,将旧的Target library文件名包含在Link_library的文件清单中,而Target_library包含新的Target library文件名,利用translate命令实现。第39页/共126页综合环境建立设计相关的startup 文件的例子:.synopsys_dc.setup 文件 company =“zte corporation”;designer =“name”;technology=“0.25 micron”search_path=search_path+“.”“/usr/

42、golden/library/std_cells”“/usr/golden/library/pads”target_library=std_cells_lib.db link_library =“*”,std_cells_lib.db,pad_lib.db symbol_library=std_cells.sdb,pad_lib.sdb 其它的环境变量的设置参看DC的操作手册。第40页/共126页逻辑综合的过程DC通过Script文件,自动完成模块的综合过程,其内容如下:RTL design entry Environment constraints Design and clock cons

43、traints Compile design into mapped gates Optimizing design analyze the synthesis results and debug potential problems.Save design netlist Report constraints (Optional)Apply critical path constraints (Optional)Second compile to improve critical paths (Optional)Second path compile constraint report 第4

44、1页/共126页RTL design Entry功能:向DC输入HDL描述的设计,命令:read和analyze&elaborate,推荐用analyze&elaborateanalyze&elaborate允许设计者在设计的GTECH建立之前,首先去分析设计的语法错误和进行HDL代码转换。GTECH由“soft macros”such as adders,comparators等组成,这些组件来自synopsys 的synthetic lib,每种组件具有多种结构。Analyze做语法的检查并产生一个“.syn”文件,存储于work路径下的定义的设计库内,可供后来elaborate使用。对于

45、一个analyzed设备,只需用elaborate重新输入,节省时间。Read就不行。以下是两个命令的比较:类别 analyze&elaborate read 格式 verilog 或VHDLverilog、VHDL、EDIF、db等所有格式 用途综合verilog 或VHDL的RTL设计读网表,设计预编译 设计库用-library选项定义设计库名,存储“.syn”文件用缺省的设置,不能存储中间结果Generics(vhdl)可用不可用Architecture(vhdl)可用不可用第42页/共126页Environment constraints功能:定义设计的工艺参数,I/O端口属性,统计w

46、ire-load模型。下图解释了描述设计环境约束的DC命令:set_max_capacitance set_max_transition&set_max_fanout on input&output ports or current_design;Block BClockDividerLogicBlock Aset_load on output set_operating_conditions on the whole designclkset_drive on Clock set_driving_cell on input signals set_load on inputs set_wir

47、e_load for each block,including top level Top level第43页/共126页Environment constraintsSet_operating_conditions 用于描述操作条件:process,voltage,temperature,cell和wire 的delay和操作条件呈线性关系。如:Set_operating_conditions WORST(或TYPICAL、BEST)命令set_operating_conditions min BEST max WORST 用于指示DC对设计的WORST和BEST条件,同时优化。第44页/共

48、126页Environment constraintsSet_wire_load -mode 向DC提供wire_load信息,通常技术库里包含许多负载模型,每一种wire-load模型都代表一定模块的尺寸,模拟模块内部nets的delay,用户也可以创建自己的wire_load模型去模拟各设计模块的net loading。这有三种wire-load mode:top,enclosed,segmented,用于模拟各设计层次的net wire_load的关系。Top:所有层次子模块的wire_load和top-level相同,如果用户计划flatten设计去layout可选择此模式编译子模块;

49、Enclosed:子模块net的wire_load和enclosed 它的最小模块相同,推荐用于在layout后logical and physical hierarchy相似的设计;Segmented:子模块之间net的wire_load和enclosed该net的模块相同,需技术库提供Segmented wire_load,一般不常用;wire_load模型的选择很重要,太悲观或太乐观的模型都将产生综合的迭带,在 pre-layout的综合中应选用悲观的模型。命令格式如下:dc_shellset_wire_load MEDIUM mode top第45页/共126页Environment

50、constraints第46页/共126页Environment constraints Set_load 定义nets或ports的电容负载,为了保证输出路径的时序,例如:第47页/共126页Environment constraintsSet_drive:主要用于模块的input port,0表是最大的驱动强度通常用于clock port,例如:set_drive 0 CLK RST。set_driving_cell-cell-pin:模拟input port驱动cell的驱动阻抗,为了保证输出路径的时序,确定输入信号的transition time例如:第48页/共126页Environ

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

当前位置:首页 > 办公、行业 > 各类PPT课件(模板)
版权提示 | 免责声明

1,本文(synopsysdc中文教程比较详细.pptx)为本站会员(晟晟文业)主动上传,163文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。
2,用户下载本文档,所消耗的文币(积分)将全额增加到上传者的账号。
3, 若此文所含内容侵犯了您的版权或隐私,请立即通知163文库(发送邮件至3464097650@qq.com或直接QQ联系客服),我们立即给予删除!


侵权处理QQ:3464097650--上传资料QQ:3464097650

【声明】本站为“文档C2C交易模式”,即用户上传的文档直接卖给(下载)用户,本站只是网络空间服务平台,本站所有原创文档下载所得归上传人所有,如您发现上传作品侵犯了您的版权,请立刻联系我们并提供证据,我们将在3个工作日内予以改正。


163文库-Www.163Wenku.Com |网站地图|