数字后端简要流程_第1页
数字后端简要流程_第2页
数字后端简要流程_第3页
数字后端简要流程_第4页
数字后端简要流程_第5页
已阅读5页,还剩46页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、 HDL代码逻辑综合布局布线形式验证逻辑综合:决定设计电路逻辑门之间的相互连接。逻辑综合的目的:决定电路门级结构,寻求时序、面积和功耗的平衡,增强电路的测试性。逻辑综合的过程(constraint_driven) :Synthesis = Translation + Logic Optimization + Mapping 首先,综合工具分析HDL代码,用一种模型(GTECH) ,对HDL进行映射,这个模型是与技术库无关的,也不包含Timing和Load信息;然后,在设计者的控制下,对这个模型进行逻辑优化;最后一步,进行逻辑映射和门级优化,将逻辑根据约束,映射为专门的技术目标单元库(targe

2、t cell library)中的cell,形成了综合后的网表。初始化设计环境,技术库文件及其它设计环境设置。search_path:指明文件的位置。target_library:既技术库,由生产厂家提供,该库中的cells,用于逻辑映射。Target library的文件名应包含在Link library的文件清单中,用于读取门级网表。link_library:该库中的cells,DC无法进行映射,例如:RAM,ROM及Pad,在RTL设计中,这些cells以实例化的方式引用。symbol_library:该库文件包含技术库中cells的图形表示,用于生成门级示意图。read:读入HDL代码

3、定义设计的工艺参数,I/O端口属性,wire-load模型,下图解释了描述设计环境约束的DC命令:set_operating_conditionsset_max_capacitance set_max_transition &set_max_fanout on input &output ports or current_design; Block BClockDividerLogicBlock Aset_load on outputsset_drive on Clock set_driving_cell on inputsset_wire_load_model set_ope

4、rating_conditions用于描述cells操作条件: process、voltage 和temperature。例如:set_operating_conditions -max slowset_wire_load_model用于设置Nets的寄生RC模型,一般选用悲观的模型。例如:set_wire_load_model -name smic18_slowset_load用于定义nets或ports的电容负载,为了保证输出路径的时序,default条件下为0。例如:set_load 0.6 all_outputs()set_drive用于定义模块的input ports,0表示最大的驱

5、动强度,通常用于clock ports和reset,例如:set_drive 0 clk,rst。set_driving_cell用于定义input ports,模拟cell的驱动阻抗,为了保证输入路径的时序和输入信号的transition time。例如:set_driving_cell -lib_cell BUFX2 -pin Y -library slow all_inputs()set_min_library允许用户同时设置worst-case和best-case libraries,从而在初步编译时,DC修正hold-time冲突时,验证setup-time冲突。也可用于在编译时修正

6、hold-time冲突。例如:set_min_library slow.db -min_version fast.dbDRC的设计规则约束:set_max_transition、set_max_capacitance和set_max_fanout。这些约束用于的input ports,output ports或current_design,一般在技术库内部设置。当技术库的内部设置不能满足时,可用以上命令设置。例如:set_max_transition 0.3 current_designset_max_capacitance 1.5 current_designset_max_fanout 3

7、.0 all_outputs()描述设计的目标,包括时序和面积约束,要注意约束必须是可实现的,否则会导致面积超额,功耗增加或时序不能满足要求。设计约束的DC命令如下:Block BClockDividerLogicBlock Acreate_clock& set_clock_uncertaintyset_input_delay on input signals set_max_area for each blockTop levelset_output_delay on input signals set_max_area用于约束current_design的最大面积。0表示在满足时序

8、、功耗的前提下,尽可能的减小面积。例如:set_max_area 0时序约束包括3个部分:all inputs、register to register和all outputs。输入路径的约束: set_input_delay:定义信号相对于时钟的到达时间。指一个信号,在时钟沿之后多少时间到达。例如:set_input_delay -max 20 -clock CLK get_ports Aset_input_delay -min 0.8 -clock CLK get_ports A输出时序约束:set_output_delay:定义从输出端口数据不可用开始到后一个时钟有效沿的时间。例如:se

9、t_output_delay -max 20 -clock CLK get_ports Bset_output_delay -min -0.5 -clock CLK get_ports B时钟描述:时钟的描述在设计中非常关键,一般通过clock period和clock source(port/pin) 、duty cycle、offset/skew和clock name进行描述。DC时钟约束命令:create_clock:用于定义时钟的周期和波形(占空比及起始沿)例如: create_clock -period 40 -waveform0 20对于仅包含组合逻辑的模块,为了定义该模块的延时约

10、束,需要创造一个虚拟时钟定义。例如:create_clock -name V_clk -period 20 set_clock_transition:在pre_layout必须设置一个固定的transition值(由技术库提供),因为时钟网有很大的fanout.这样可使DC根据该时钟计算实际的延时值。set_clock_skew:设置时钟的skew及delay,pre_layout和post_layout命令选项不一样。-propagated选项让DC计算时钟的skew。例如:set_clock_skew -delay 2.5 -minus_uncertainty 2.0 -plus_unce

11、rtainty 0.2 CLK-minus_uncertainty用于setup-time的计算,-plus_uncertainty用于hold-time的计算。一个cell的delay是根据input signal的斜率和output pin的电容负载决定。对于时钟信号,因为clock network的fanout很大,从而造成clock network末端门的时钟信号的clock transition time很慢,是DC计算的门延迟失真。set_dont_touch_network常用于port或net阻止DC隔离该net,和该net向连的门具有dont_touch属性,常用于CLK和R

12、ST。例如:set_dont_touch_network CLK,RST当一个电路包含门时钟逻辑时,若在时钟的输入设置set_dont_touch_network,则阻止DC隔离该门逻辑,导致DRC发现时钟信号冲突,对门RESET同样。 set_dont_touch应用于current_design,cell,net,references。阻止DC对模块中的这些元素进行技术映射。其它的一些约束条件其它的一些约束条件set_dont_use用于将技术库中的某些设计中不需要的cell滤除,比如Latch、Delay Cell,禁止DC映射;例如: set_dont_use mylib/SD*set

13、_false_path指示DC对指定的路径不要按照时序约束优化。比如:异步路径或约束不可实现的路径。false path路径的鉴别在设计中很关键,如果不对false path路径进行标识,DC会对所有的路径进行优化,从而影响关键时序路径。此命令也用于当因为有false path关键逻辑,时序静态分析失败时。set_false_path -from get_clock CLKA -to get_clock CLKBset_multicycle_path:因为DC假设所有的路径都是单周期的,为了满足时序,对多周期路径会做不必要的优化,从而影响相邻路径或面积。所以这个命令用于隔离多周期路径,通知DC

14、通过这条路径所需的周期数。例如:set_multicycle_path 2 -from FFA/CP -through Multyply/Out -to FFB/Dset_max_delay:1、对于仅包含组合逻辑的模块,用此命令约束所有输入到输出的总延时。例如: set_max_delay 5 -from all_inputs() -to all_outputs2、对于含有多个时钟的模块,可用通常的方法定义一个时钟,用此命令进行约束定义时钟和其他时钟之间的关系。例如:set_max_delay 0 from CLK2 to all_register(clock_pin)set_min_del

15、ay:1、对于仅包含组合逻辑的模块,定义指定路径的最小延时。例如:set_min_delay 3 -from all_inputs()2、和set_fix_hold一起使用,只是DC添加一定的延迟,满足最小延迟需求。编译就是将GETCH逻辑网络映射为技术库的gate cell,使设计满足用户的约束。对于一个层次设计分两步实现:1、映射各子模块到逻辑门,不考虑约束;2、根据时序和面约束优化逻辑,修正模块分界间的违例。Design SetupFloor PlanTiming SetupPlacementCTSRouteDFM&Data OutCreate LibraryAttach Ref

16、 LibRead NetlistExpand NetlistOpen Lib&Create CellBind Netlist To CellPreserve The HierarchyMark The HierarchySave The Cell Reference LibraryWorking LibraryAttach TLU+ ModelDesign Setup:布局布线的准备工作,读入网表,跟Foundry提供的STDCell、Pad库以及Macro库进行映射。Load TDF FileCreate Core Power RingsSetup FloorplanLogic Co

17、nnect PGPreroute Macros&PadsCreate Core Power StrapsDump FloorplanSave AsInsert Pad FillersAdd P/G RingsPlace Macro(Flylines)Preroute STDVerify P/G StructureFloor Plan:整体的布局规划,设置Core的大致面积、管脚位置以及Macro位置等一些粗略的布局信息。Timing SetupLoad SDC FileTiming Data CheckTiming SetupTiming ReportSave AsTiming Set

18、up:读入时序约束文件(.sdc),设置时序信息,主要是Environment、Optimization、Parasitics、Model四个比较常用的设置。Detach Scan ChainsSetup Placement/Timing OptionsAuto-PlaceCongestionOKAny setup, or many max tran/cap violationsTNS WNSPass Timing sanity checkAny setup, or many max tran/cap violationsFrom FloorplanHigh-effort PPOCritical Range OptTo CTSBack to synthesisPlacement:这一步是详细的布局,一是要满足设计的时序要求,二是保证后面的布线能够顺利进行。CTSSetup Clock Common OptionsClock Tree SynthesisTiming SetupReconnect Scan ChainsPostPlace OptimizationClock Tree OptimizationTiming ReportSa

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论