synopsysdc中文教程比较详细课件.pptx

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

1、提纲综合的定义ASIC design flowSynopsys Design Compiler的介绍Synopsys technology libraryLogic synthesis的过程Synthesis 和 layout的接口LTLPost_layout optimizationSDF文件的生成第1页/共126页综合的定义逻辑综合:决定设计电路逻辑门的相互连接。逻辑综合的目的:决定电路门级结构、寻求时序和与面积的平衡、寻求功耗与时序的平衡、增强电路的测试性。逻辑综合的过程:首先,综合工具分析HDL代码,用一种模型(GTECH),对HDL进行映射,这个模型是与技术库无关的;然后,在设计者的

2、控制下,对这个模型进行逻辑优化;最后一步,进行逻辑映射和门级优化,将逻辑根据约束,映射为专门的技术目标单元库(target cell library)中的cell,形成了综合后的网表。第2页/共126页ASIC design flowVerified RTLDesignConstraintsIP and LibraryModelsLogic Synthesis optimization&scan insertionStatic Timing AnalysisFormal verification Floorplan placement,CT Insertion&Global routingTr

3、ansfer clock tree to DCPost global routeStatic Timing AnalysisDetail routingPost-layout Optimization(in-place optimization(IPO)Static Timing AnalysisTape 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 完成全

4、部设计还需经过如下几个步骤:Pre_layout Synthesis STA using PrimeTime SDF generation Verification Floorolanning and Routing Post_layout 反标来自layout tool的信息,STA using PrimeTime Post-layout Optimization Fix Hold-Time Violation第4页/共126页ASIC design flow Initial Setup:建立设计环境,技术库文件及其它设计环境设置。DC.synopsys_dc.setup 文件 compan

5、y =“zte corporation”;designer =“name”;technology=“0.25 micron”search_path=search_path+“.”“/usr/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第5页/共126页ASIC design flowSynthesis:利

6、用约束完成设计的门及实现及扫描插入Constrain scripts /*Create real clock if clock port is found*/if(find(port,clk)=clk)clk_name=clk create_clock-period clk_period 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 flowCo

7、nstrain scripts(续)/*Apply default drive strengths and typical loads for I/O ports*/set_load 1.5 all_outputs()set_driving_cell-cell IV all_inputs()/*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

8、_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 conditions*/set_operating_conditions WCCOM /*Turn on Auto Wireload selection Library must support this feature*/auto_wire_load_selection=true第7页/共126页ASIC design

9、flowCompile and scan insert的scripts,采用bottom_up的编译方法 set_fix_multiple_port_net buffer_constants all compile scan check_test create_test_pattern sample 10 preview_scan insert_scan check_test 如果模块内的子模块具有dont_touch 属性需添加如下命令,因要插入扫描 remove_attribute find(-hierarchy design,”*”)dont_touchWrite netlist rem

10、ove_unconnected_ports find(-hierarchy cell,”*”)change_names hierarchy rules BORG set_dont_touch current_design write herarchy output active_design+”.db”write format verilog hierarchy output active_design+”.sv”第8页/共126页ASIC design flowPre_layout 的 STA:用DC的静态时序分析引擎做block的STA,用PrimeTime做full_chip的STA。S

11、etup_time分析 Hold_time分析 其时序约束和提供给DC做逻辑综合的约束相同。静态时序分析同综合一样,是一个迭代的过程,和cell的位置及布线关系密切,通常都执行多次,直到满足需要。第9页/共126页ASIC design flowSDF generation,pre_layout的SDF文件,用于pre_layout timing仿真,同时还需提供时序约束文件(SDF格式)给layout tool做布局布线。script文件如下:active_design=tap_controller read active_design current_design active_desig

12、n 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_driving_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()wri

13、te_timing format sdf-v2.1 -output active_design+”.sdf”write_constraints format sdf cover_design -output constraints.sdf第10页/共126页ASIC design flowVerification 利用SDF文件进行动态时序仿真:利用功能仿真时。用verilog 编写的test_bench 文件 形式验证:利用数学算法检查设计的逻辑的等效性,静态验证,需要的时间比动态仿真少,验证全面。在这里验证RTL描述与gate_level网表的逻辑等效性。Floorolanning and

14、 global Routing;Estimated 寄生电容和RC delay的抽取;利用抽取的参数静态时序分析,若时序不满足要求,生成custom wire_load 做incremental synthesis即post_layout的优化,采用reoptimize_design in_place命令,其script文件需反标抽取的参数到设计;Detail routing;real寄生电容和RC delay的抽取;利用抽取的参数静态时序分析,修正hold_time如需要做post_layout的优化;生成post_layout的SDF文件,做gate_level仿真验证;第11页/共126

15、页ASIC design flowECO Engineering change order,不属于正常的ASIC流程,一般只有在ASIC设计的后期,需要改变网表,可利用ECO,例如,在tape-out(sign-off)以后,遇见设计的硬件bug。采用ECO可仅对设计的一小部分重新布线不影响chip其他部分的位置及时序,通常,修改不能大于10%。最新版本的DC提供由ECO compiler,可使设计者手工修改网表,节省时间。一些layout工具也具有ECO功能。第12页/共126页DC介绍Synopsys Design Compiler,是一个基于UNIX系统,通过命令行进行交互的综合工具,除

16、了综合之外,它还含有一个静态时序分析引擎及FPGA和LTL(links-to-layout)的解决方案。我们就以下几个方面对DC做以介绍:script文件:由DC的命令构成,可使DC自动完成综合的整个过程。DC支持的对象、变量、属性 DC支持的文件格式及类型 DC在HDL代码中的编译开关,控制综合过程 Translate_off/translate_on:指示DC终止或开始verilog 源代码转换的位置。full_case:阻止case语句在不完全条件下生成latch。第13页/共126页Script 文件Script 文件 Script 文件的构成 DC综合环境设置(.synopsys_d

17、c.setup);属性和约束信息;综合命令(read,compile);控制流命令;Conditional:Looping:if(expr)foreach(variable,list)dc_shell commands dc_shell commands else dc_shell commands while(expr)dc_shell commands Script 文件的检查:DC提供syntax and context checkers来检查Script文件的错误第14页/共126页DC支持的对象、变量、属性对象,DC将设计对象分为8类,分别如下:Design:具有某种或多种逻辑功能的

18、电路描述;Cell:设计的instance;Reference:cell或instance在库中定义的名字;Port:design的输入、输出;Pin:design中cell的输入、输出;Net:ports和pins之间或pins之间的信号名;Clock:被定义为时钟源的pin或port;Library:cell的集合,如:target_library,link_library;第15页/共126页DC支持的对象、变量、属性例如:第16页/共126页DC支持的对象、变量、属性对象的查找命令格式 find -hierarchy type:DC支持的所有对象;name list:设计对象或库对象的

19、清单;-hierarchy:用于在设计的各层次寻找的对象;该命令的返回值为List,list:一种字符串类型,例如:mylist=el1 el2 el3 例如:第17页/共126页DC支持的对象、变量、属性变量,一种标识符,DC用于存储信息,可做为命令的操作参数。DC预定义的变量,可用它获得综合过程中的有关信息,如dc_shell_status;DC预定义的变量总有一个缺省值,用户可定义另外的值,如;dc_shellvhdlout_use_package=library IEEE.std_logic_1164;library STD_LIB;用户定义的变量,用于自动化综合的过程。如,可定义一个

20、变量,存储某个时钟域的flop的个数。定义变量:dc_shelldesigner=“myname”;获得UNIX的环境变量:dc_shelldesigner=get_unix_variable(“USER”)显示变量的值:dc_shellList target_library target_library=“cbacore.db”列出所有的变量:dc_shellList variable all移去变量:dc_shell remove_ variable designer,变量没有移去之前,不得重新定义。注:变量值不会被保存在设计数据库中。第18页/共126页DC支持的对象、变量、属性属性,D

21、C用于存储具体的设计对象,如:nets,cells,clocks的信息,一般来说,属性都是DC预定义,命令如下:set_attribute get_attribute dc_shellget_attribute STD_LIB default_max_transition第19页/共126页DC的文件格式及类型DC支持的文件格式*.db文件,DC的内部文件格式 Verilog文件 VHDL EDIF:electronic design interchange format,用于不同工具间门级网表的移植DC的文件类型 Script files.scr RTL verilog file.v RTL

22、 VHDL file.vhd Synthesized VHDL netlist.svhd EDIF file.edf Synthesized verilog netlist.sv Synopsys database file.db report.rpt Log files.log第20页/共126页Synopsys technology librarySynopsys technology library technology library由半导体制造商提供,定义cell的相关信息及设计标准约束,分为两类:target libraries:在门级优化及映射时,提供生成网表的cell;link

23、 libraries:提供设计网表中可引用的cell,DC不利用link libraries的cell做综合;Synopsys technology library结构组织可看作实际上的技术库标准,它是一个文本文件(扩展名“.lib”),在使用之前,需被LC编译,产生一个“.db”文件,其构成如下:Library Group;Library level attributes;Environment description;Cell description;第21页/共126页Synopsys technology libraryLibrary Group:定义库名 library(ex25)/

24、*Library Group /*start of library*/*end of library*/一般,一个库文件含有一个Library Group,库文件和Library 名相同。第22页/共126页Synopsys technology libraryLibrary level attributes:定义技术库的全局属性,如:技术库的类型(CMOS/TTL)、日期、版本及缺省值,例如:library(ex25)technology(cmos);delay_model :table_lookup;date :”feb 29,2000”;revision :”1.0”;current_u

25、nit :”1A”;time_unit :”1ns”;voltage_unit :”1V”;pulling_resistance_unit :”1kohm”;capacitive_load_unit(1.0 pf);default_inout_pin_cap :1.5;default_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

26、:match_footprint;第23页/共126页Synopsys technology libraryEnvironment description:主要包括:缩放因子(scaling factors)时序模型(timing rang models)操作条件(operation condition)线性负载模型(wire-load models)缩放因子(scaling factors 或K-factors):实际上是一个乘数因子,表示随着PVT的变化,对设计延时的修正。例如:K_process_fall_transition :1.0;K_process_rise_transition

27、 :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 models):根据操作条件的变化,修正信号到达时间,如:Timing_range(BEST)faster_factor:0.5;slower_factor:1.3;第24页/共126页Synopsys technology library操作条件(operation condition):定义了PVT和RC树模型。DC根

28、据操作条件缩放cell和net的delay;第25页/共126页Synopsys technology librarytree_type:定义时序计算时内部连结的电阻、电容值的分配,有worst_case_tree,balance_tree,best_case_tree,三种类型可贡选择。我们利用Dc来表示driver pin和driven cell的input pin的内连延时,则它们的wire_load分别对因如下:第26页/共126页Synopsys technology library线性负载模型(wire-load models):估计pre_layout电路中net的电容,电阻及面

29、积。Synopsys 提供了几种不同的wire-load models以对相应的设计逻辑大小,它给出了net fanout 和net length 的统计关系。例如:第27页/共126页Synopsys technology libraryCell description:描述cell的属性,包括:输入输出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;

30、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_fanout Input or output pin 的max_transition Input or output pin的max_capacitance DRC属性定义了库中cell的操作条件,和制造厂家的工艺技术相关,设计不能超出这些条件的规定。Cell 的DRC属性可以用如下命令改动dc_shell set

31、_attribute find(pin,ex25/BUFFD0/Z)max_fanout 2.0时序cell通过将clock input pin的“clock”属性设置为true定义input pin为时钟。第29页/共126页Synopsys technology libraryGood library 所有的cell都有各种各样的驱动强度;Buffer和inverters的驱动强度变化范围大;Cell的rise和fall的delay较均衡;一个物理cell含有相同逻辑功能,但相位相反输出隔离,如:OR,NOR;两个物理cells,有相同逻辑功能,但相位相反如:AND,NAND;拥有各种高驱

32、动强度的带有一个输入inverters复杂cells(AIO,OAI);拥有各种高驱动强度的高扇入的cells;拥有各种驱动强度的,正沿负沿触发的flip_flop;拥有各种输出驱动强度的flip_flop;拥有各种不同的set,reset组合的Flop;拥有各种驱动强度的,正沿负沿触发的latch;拥有delay cell;第30页/共126页Synopsys technology librarySynopsys 支持如下集中延时模型:CMOS通用延时模型;CMOS线性延时模型;CMOS非线性查找表模型;前两种模型已不常用,我们现在采用非线性延时模型(non-linear delay mod

33、el)计算cell的延时。所谓NLDM,是一个二维查找表,根据一个cell的input transition 和output loading 查找cell的delay和output transition,一般每一个cell都有两个表,一个用于cell delay,另一个用于output transition。对于input transition 和output loading 没有在表中列出的cell,可用插入法计算得到。Cell的延时由input transition和output loading决定,但input transition就是driving cell的output transi

34、tion,若driving cell有多个timing arc,则driven cell的延时计算会受影响。例如,U1有两个output transition,对U2的延时计算如何选取input transition?我们可采用set_disable_timing U1 from A to Z,避免DC采用A to Z的timing arc.reseta2ns0.3nsZZAffected gateU2U1 A B第31页/共126页Partitioning for synthesis划分的目的 使设计易于管理,提高设计的重用性 获得更好的综合结果 简化约束和scripts,使综合操作更容易;

35、提高编译速度划分应综合考虑以下几个方面 逻辑的功能 设计的目标 编译的技术下面就以下几个方面做简单介绍 划分的方法 划分的原则 RTL编码指南第32页/共126页Partitioning for synthesis划分的方法在编写HDL代码之前,根据功能做初步划分;DC可在综合和对划分进行修改;在DC中改变划分的命令:group,ungroup Group:将指定的实例组合为一个模块,生成新的层次划分;Ungroup:移去以前的模块划分。在执行group和ungroup命令之前,包含实例的设计模块需设置,命令如下:dc_shellcurrent_design topU0U1U2topU0U1U

36、2sub1topGroup U1 U2 design_name sub1 Ungroup-all第33页/共126页Partitioning for synthesis划分遵循的原则:相关的组合逻辑在一个模块内;设计可重用性;根据功能划分模块;结构逻辑 和随机逻辑分开;一个合理的尺寸(最大10K门);在顶层分为I/Opads,DFT,clock,core logic;在顶层不要加粘合逻辑;状态机和别的逻辑分开;在一个block中不要有多个时钟;用于时钟同步的块要隔离;划分时,应考虑Layout;与技术库相关的实例化的cell应在单独模块内;第34页/共126页Partitioning for

37、synthesis编码指南 RTL级的HDL描述实际是电路结构的文本描述,它是技术无关的,类似于网表。HDL语言先于综合工具出现,综合工具只能根据HDL代码进行逻辑推断,对完成同一功能而书写方式不同的HDL代码,综合工具会产生不同逻辑电路。所以不能依靠DC去修正不符合规范的代码。写代码时,需清楚描述的硬件电路拓扑结构。RTL描述内容如下:寄存器的结构;电路的拓扑;寄存器之间的功能;DC仅对寄存器之间的逻辑进行优化,不会对寄存器的排列进行优化。第35页/共126页Partitioning for synthesis编码指南HDL代码的编写应注意技术独立性,尽量减少引用在某些库中定义门的hard_

38、coded。若必须引用,将这些引用门放在一个单独的模块内。Clock 逻辑Clock逻辑及reset生成应放在一个模块中,便于综合时对时钟约束的定义;Clock命名在设计的各层次应保持一致性;在一个模块内不要由多个时钟;对于时钟源的mux,用于测试时控制时钟,最好人为实例化,便于set_disable_timing的使用;在top level不要有粘和逻辑;一个文件仅包含一个模块,模块名与文件名相同;I/O pad应为单独的模块;最小化不必要的层次,过多的层次会降低电路的性能,因DC逻辑优化不能跨越模块的层次;所有模块的输出直接来自寄存器的输出;状态机对verilog,State命名使用“pa

39、rameters”;组合逻辑和时序逻辑分开;第36页/共126页综合环境建立在综合之前必须用setup文件配置综合的环境,下面,我们就以下几个方面对setup文件进行介绍:setup文件的位置 setup文件的内容 setup文件举例第37页/共126页综合环境建立setup文件的位置:由一个setup文件提供,文件名必须为“.synopsys_dc.setup”,通过向相关环境变量赋值,定义技术库的位置及综合需要参数。setup文件的位置如下:Synopsys installation directory:它用于卸载Synopsys 技术独立库及别的参数,不包含设计相关的数据。Users h

40、ome director:用的setup信息。Project working directory:设计的setup信息 DC按以上顺序依次读取setup文件,最后一个读取的setup文件将覆盖前面读取的setup文件。将设计相关的startup文件放于Project working directory下。第38页/共126页综合环境建立Startup文件必须定义如下变量:Search_path:指明库文件的位置 Target_library:既技术库,由生产厂家提供,该库中的cells,被 DC用于逻辑映射。Target library的文件名应包含在Link library的文件清单中,用于

41、DC读取门级网表。Link_ library:该库中的cells,DC无法进行映射,例如:RAM,ROM及Pad,在RTL设计中,这些cells以实例化的方式引用。Symbol_library:该库文件包含技术库中cells的图形表示,用于DA生成门级示意图。Target_library和Link _library为设计者提供了将门级网表从一种技术在映射 到另一种技术的方法,将旧的Target library文件名包含在Link_library的文件清单中,而Target_library包含新的Target library文件名,利用translate命令实现。第39页/共126页综合环境建立

42、设计相关的startup 文件的例子:.synopsys_dc.setup 文件 company =“zte corporation”;designer =“name”;technology=“0.25 micron”search_path=search_path+“.”“/usr/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,

43、pad_lib.sdb 其它的环境变量的设置参看DC的操作手册。第40页/共126页逻辑综合的过程DC通过Script文件,自动完成模块的综合过程,其内容如下:RTL design entry Environment constraints Design and clock constraints Compile design into mapped gates Optimizing design analyze the synthesis results and debug potential problems.Save design netlist Report constraints (

44、Optional)Apply critical path constraints (Optional)Second compile to improve critical paths (Optional)Second path compile constraint report 第41页/共126页RTL design Entry功能:向DC输入HDL描述的设计,命令:read和analyze&elaborate,推荐用analyze&elaborateanalyze&elaborate允许设计者在设计的GTECH建立之前,首先去分析设计的语法错误和进行HDL代码转换。GTECH由“soft

45、macros”such as adders,comparators等组成,这些组件来自synopsys 的synthetic lib,每种组件具有多种结构。Analyze做语法的检查并产生一个“.syn”文件,存储于work路径下的定义的设计库内,可供后来elaborate使用。对于一个analyzed设备,只需用elaborate重新输入,节省时间。Read就不行。以下是两个命令的比较:类别 analyze&elaborate read 格式 verilog 或VHDLverilog、VHDL、EDIF、db等所有格式 用途综合verilog 或VHDL的RTL设计读网表,设计预编译 设计库

46、用-library选项定义设计库名,存储“.syn”文件用缺省的设置,不能存储中间结果Generics(vhdl)可用不可用Architecture(vhdl)可用不可用第42页/共126页Environment constraints功能:定义设计的工艺参数,I/O端口属性,统计wire-load模型。下图解释了描述设计环境约束的DC命令:set_max_capacitance set_max_transition&set_max_fanout on input&output ports or current_design;Block BClockDividerLogicBlock Aset

47、_load on output set_operating_conditions on the whole designclkset_drive on Clock set_driving_cell on input signals set_load on inputs set_wire_load for each block,including top level Top level第43页/共126页Environment constraintsSet_operating_conditions 用于描述操作条件:process,voltage,temperature,cell和wire 的d

48、elay和操作条件呈线性关系。如:Set_operating_conditions WORST(或TYPICAL、BEST)命令set_operating_conditions min BEST max WORST 用于指示DC对设计的WORST和BEST条件,同时优化。第44页/共126页Environment constraintsSet_wire_load -mode 向DC提供wire_load信息,通常技术库里包含许多负载模型,每一种wire-load模型都代表一定模块的尺寸,模拟模块内部nets的delay,用户也可以创建自己的wire_load模型去模拟各设计模块的net loa

49、ding。这有三种wire-load mode:top,enclosed,segmented,用于模拟各设计层次的net wire_load的关系。Top:所有层次子模块的wire_load和top-level相同,如果用户计划flatten设计去layout可选择此模式编译子模块;Enclosed:子模块net的wire_load和enclosed 它的最小模块相同,推荐用于在layout后logical and physical hierarchy相似的设计;Segmented:子模块之间net的wire_load和enclosed该net的模块相同,需技术库提供Segmented wir

50、e_load,一般不常用;wire_load模型的选择很重要,太悲观或太乐观的模型都将产生综合的迭带,在 pre-layout的综合中应选用悲观的模型。命令格式如下:dc_shellset_wire_load MEDIUM mode top第45页/共126页Environment constraints第46页/共126页Environment constraints Set_load 定义nets或ports的电容负载,为了保证输出路径的时序,例如:第47页/共126页Environment constraintsSet_drive:主要用于模块的input port,0表是最大的驱动强度

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

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

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


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

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


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