专用集成电路设计方法讲义4_逻辑综合.ppt

上传人:豆**** 文档编号:34215514 上传时间:2022-08-14 格式:PPT 页数:91 大小:2.62MB
返回 下载 相关 举报
专用集成电路设计方法讲义4_逻辑综合.ppt_第1页
第1页 / 共91页
专用集成电路设计方法讲义4_逻辑综合.ppt_第2页
第2页 / 共91页
点击查看更多>>
资源描述

《专用集成电路设计方法讲义4_逻辑综合.ppt》由会员分享,可在线阅读,更多相关《专用集成电路设计方法讲义4_逻辑综合.ppt(91页珍藏版)》请在得力文库 - 分享文档赚钱的网站上搜索。

1、专用集成电路设计方法讲义4_逻辑综合 Still waters run deep.流静水深流静水深,人静心深人静心深 Where there is life, there is hope。有生命必有希望。有生命必有希望内容l逻辑综合概述l综合环境的设置lDC综合流程简介l时序分析基础l逻辑综合中的时序约束设计lDC的使用方式2什么是逻辑综合?l定义:根据一个系统功能和性能的要求,在一个包含众多结构、功能、性能均为已知的逻辑元件的单元库的支持下,寻找一个逻辑网络结构的最佳实现方案的设计方法。3逻辑综合的基本步骤 (1)l三个步骤:l翻译 (Translation)l优化 (Optimizatio

2、n)l映射 (Mapping)4逻辑综合的基本步骤 (2)l翻译 (Translation)l把电路的HDL描述转化为与工艺无关的功能块组成的逻辑电路的过程l读入电路的RTL级描述,将语言翻译成每条语句所对应的功能块以及功能块之间的拓扑结构l这一过程的结果是在综合器内部生成电路的布尔函数的表达式,不做任何的逻辑重组和优化5逻辑综合的基本步骤 (3)l优化 (Optimization)l基于所施加的一定时序和面积的约束条件,综合器按照一定的算法对转译结果作逻辑重组和优化。l映射 (Mapping)l根据所施加的一定的时序和面积的约束条件,综合器从目标工艺库中搜索符合条件的单元来构成实际电路l这时

3、得到的电路包含了具体的制造工艺参数。6综合工具lFPGA综合lSynplicity: Synplify, Amplify, CertifylMentor Graphics: LeonardoSpectrumlSynopsys: FPGA Express, FPGA CompilerlXilinx: XSTlASIC综合lSynopsys: Design Compiler7Design Compiler的综合过程lRTL design entrylEnvironment constraintslDesign and clock constraintslCompile design into ma

4、pped gateslOptimize designlAnalyze the synthesis results and debug potential problems lReport constraints lSave design netlist8综合技术带来的好处l设计师可以采用更高层次的设计方法l由于逻辑综合工具的使用,高层次的设计可以很快地转换为门级电路设计l逻辑综合技术使与工艺无关的设计成为可能l综合工具可以按照约束设置对设计进行自动优化,要得到有不同性能指标的结果,有时候仅仅需要修改综合时的约束设置9对工程师的要求l尽管逻辑综合为数字设计带来了显而易见的好处,使设计者再也不用去

5、手工“搭建”自己的产品,但并不等于设计者可以对电路的具体实现毫不关心。l为了综合出满足规格定义的产品,工程师在进行代码编写时必须考虑代码的可综合性,良好的代码风格可以得到性能更好的设计。l逻辑综合本身就是一个复杂的过程,环境和约束的设定、测试和时序问题的分析和解决都需要设计工程师具有专门的知识和技能。10内容l逻辑综合概述l综合环境的设置lDC综合流程简介l时序分析基础l逻辑综合中的时序约束设计lDC的使用方式11启动文件lSynopsys DC需要一个启动文件来定义工艺库的路径和其他用于逻辑综合的参数l文件名必须为“.synopsys_dc.setup”,通过向相关环境变量赋值,定义技术库的

6、位置及参数lDC在启动时,按下列顺序读入启动文件lSynopsys installation directory (用于存放Synopsys技术独立库及保存一些公共变量,不包含设计相关的数据)lUsers home director (保存一些对单个用户有效的变量)lProject working directory (保存与当前设计直接相关的变量)l按以上顺序依次读取setup文件,最后一个读取的setup文件将覆盖前面读取的setup文件12工艺库l工艺库:生产线所提供的全部标准器件模型l由于不同生产线的加工环境不同,各种标准器件(如与非门、或非门等)的工业参数会有差异,因此,每个生产线都

7、必须向市场提供自己的库。换句话说,设计单位准备在哪条生产线上投片就必须使用该生产线的库进行综合。不同工艺线的工艺技术是不同的,如0.25微米技术和0.13微米技术,因此即使同一个工厂的不同工艺线使用的工艺库也是完全不同的。l启动文件必须定义与工艺库相关的变量lsearch_path: 搜索路径,指明库文件的位置ltarget_library: 目标库llink_ library: 链接库lsymbol_library: 符号库(显示电路图,用于标识器件、单元)13目标库 (Target library)l目标库:将RTL级的HDL映射到门级时所需要的标准单元综合库,它是由芯片制造商 (Foun

8、dry)提供的,包含了物理信息的单元模型。l通常芯片制造商提供的基本电路有:与非、或非、非门等基本的逻辑单元单元;还有选择器、与或非、或非与等较复杂的组合逻 辑,以及锁存器和触发器等时序单元。lTarget library的文件名应包含在link library的文件清单中,用于DC读取门级网表。l通常target_library定义为标准单元的db格式的库文件。14连接库 (Link library)l连接库:可以是同target libaray一样的单元库,也可以是已经综合到门级的底层模块的设计。l作用如下:自底向上 (bottom-up)的综合过程中,上一层的设计调用底层已经综合的模块时

9、,将从link_library中寻找并连接起来。llink_library定义为:标准单元的db格式的库文件,pad的db格式的库文件,再加上RAM、ROM等宏模块的库文件等。l综合工具在综合时不再综合生成pad、RAM和ROM,而是直接实例化到门级网表中。ltarget_library是link_library的子集。15target_library vs. link_libraryl目标库 (target_library):是DC在mapping时将设计映射到特定工艺所使用的库,就是使用目标库中的元件综合成设计的门级网表。l连接库 (link_library):是提供门级网表实例化的基本单

10、元,也就是门级网表实例化的元件或单元都来自该库。连接库定义为标准单元的db格式的库文件加上pad db格式的库文件,加上ROM,RAM等宏单元库文件”。l简单地讲,所有用到的库都要放到link_library,因为DC自动到那里去找;只有作综合用的库放在target_library中,象ROM, PAD等不用综合的就不要放进去了。16设计工具库 (DesignWare Library)l设计工具库:Synopsys公司提供的知识产权(IP, Intellectual Property)库。l举例l算术逻辑单元 (ALU)lAMBA总线构造 (Bus Fabric)、外围设备 (Peripher

11、als)l内存包(Memory portfolio)l通用总线和标准I/O接口(USB, PCI, PCI Express)l微控制器 (例如8051和6811)l微处理器和DSP核心17GTECH库l当DC将源代码读入时,设计转化为一种中间格式,由GTECH库中的组件和设计工具库构成。lGTECH工艺库和设计工具库一样,是工艺无关的,帮助我们开发与工艺无关的组件。lGTECH工艺库包含在文件gtech.db中18setup文件举例l.synopsys_dc.setupset company ASIC Design Co.set designer Designerset technology

12、TSMC 0.25umset target_library tcb773stc.dbset link_library * tcb773stc.db set symbol_library tcb773s.sdb set synthetic_library standard.sldb dw_foundation.sldbset link_library $link_library $synthetic_library# Define DC search pathset search_path ././TSMC/lib ./scripts ./unmapped ./mapped $search_pa

13、thalias h historyalias rc report_constraint -all_violatorsalias rt report_timing# specify directory for intermediate files from analyzedefine_design_lib DEFAULT -path ./analyzed其它环境变量的设置参看DC的操作手册。19内容l逻辑综合概述l综合环境的设置lDC综合流程简介l时序分析基础l逻辑综合中的时序约束设计lDC的使用方式20设计输入lDC提供了下面两种方式读入设计:lanalyze & elaborate命令lan

14、alyze命令可以分析、翻译RTL代码,并将中间结果存入指定的库中lelaborate命令用于为设计建立一个结构级的,与工艺无关的描述,为下一步的工艺映射做好准备lread命令lread一步完成analyze & elaborate的工作类别 analyze & elaborate read输入格式 Verilog和VHDL RTL级代码所有格式:Verilog、VHDL、EDIF和db等等主要用途逻辑综合RTL级Verilog和VHDL代码读入网表文件、预编译好的设计等等设计库用-library选项定义设计库名 (而不是直接从dc_shell中执行),存储“.syn”文件使用缺省的设置,不能

15、保存中间结果类属 (VHDL语言中)在elaborate设计的时候,可以设置generic语句的参数不能用于传递参数结构 (VHDL语言中)在elaborate设计的时候,可以定义结构在elaborate设计的时候,不能够定义结构read命令和analyze & elaborate命令的不同之处21连接 (Link)l功能:将设计中调用的子模块与连接库中定义的模块建立对应关系l命令:linkl链接可以由link命令显式完成,也可在后面步骤的compile命令隐式完成l建议每次设计输入以后用link命令执行一次链接22设定约束条件 (Constraints)l约束条件分两类:l环境约束条件l设计

16、约束条件l综合环境包括工艺、电压和温度范围,必需的驱动强度,驱动类型等,见右图23设置工作条件 (1)l命令:set_operating_conditionsl综合库包括最差、典型和最好三种条件。l在综合阶段使用最差条件,以最大建立时间 (setup time)来优化设计。使用最好条件来清除保持时间 (hold time)的违规。l一般的工艺库包括: max (slow)、typical、min (fast)库。24设置工作条件 (2)l工艺 (Process)偏差l在流片阶段,wafer在流水线上要经过几十道工序,这些工序在控制上会有一些偏差,这些偏差都会导致器件的性能的变化。一般在逻辑电路

17、上表现为驱动能力,或者信号延时的变化。25设置工作条件 (3)l温度 (Temperature)l当温度变化时,会导致沟道电流强度的变化,从而影响逻辑电路的驱动能力和信号延时。l电压 (Voltage)l电压比较高时,逻辑电路单元的驱动能力增 强,信号延时变小从而可以运行在比较高的工作频率下。l命令举例:ldc_shell-t set_operating_conditions WORST26设定线负载模型 (Wire Load Model)l命令:set_wire_load_modell(连)线负载模型估计了线长和扇出对于电阻、电容和线的面积的影响程度。l半导体厂家根据特定生产线的统计信息开发

18、线负载模型。线负载模型包括面积、电容和电阻每单位长度的系数和一个扇出到长度的表格,用来估算线长 (扇出的数目决定了名义上的长度)。l如果没有反标的线延迟,DC用线负载模型来预测线长和延迟。lDC根据下列因素来决定设计应用哪种线形负载模型 (按先后顺序排列):用户自定义、根据设计面积自动选择、工艺库里的默认值。l例子:dc_shell-t set_wire_load_model name MEDIUM27设定线负载模式 (Wire Load Mode)l命令:set_wire_load_modelDC在决定穿越层次界限的连线所采用的线负载模型时支持三种模式:l包围 (Enclosed)l分段 (

19、Segmented)l顶部 (Top)命令举例:dc_shell set_wire_load_mode enclosed28设定输入端口的驱动l命令:set_driving_celll为了准确计算输入电路的时序,DC需要知道到达输入端口的信号的转换时间 (transition time). 默认情况下,DC假设外部信号的转换时间为0;也可以通过set_driving_cell在输入端口设置一个驱动单元。例子:dc_shell-t set_drive 1.5 I1 I2dc_shell-t set_driving_cell -cell IV I329设定输入和输出端口负载l利用端口负载,DC可以

20、为输出端口选择适当大小的驱动能力,也可以用来计算输入端口的延时。l如果负载取得过小,下级电路无法正常工作,负载取得过大,会增大上一电路的难度。l在缺省情况下,DC假定输入输出端口的容性负载为0。可以用set_load命令设定输入、输出端口的容性负载值。30设定输出端口的扇出负载l在DC中可以用set_fanout_load命令来设定输出端口外部的扇出负载总和。l扇出负载不同于负载,它是一个无量纲的数值。l注:负载则是指电容值的大小。31设计约束条件l两种设计约束l设计规则约束l设计优化约束l设计规则约束l反映了工艺方面的限制条件l由工艺库提供l设计优化约束l定义了时序上和面积上的优化目标32设

21、计规则约束 (1)l设计规则的约束设置要限定在工艺库中器件的 参数范围之内。l从优化的优先级来说,设计规则的约束比其它的相关约束要高。l在综合手段的实现中,设计规则的设置是很有讲究的。设计规则涉及到一些物理参数的设置,比如电容、0-1(1-0)跳变时间、扇出。l这些物理参数之间是相互联系、相互影响的。l例如,如果电容过大,导致充放电时间过长,也就是0-1(1-0)跳变时间过长;如果扇出过大,又会导致电容过大。33设计规则约束 (2)l有三种设计规则的约束:l最大电容 (max capacitance)l最大扇出 (max fanout)l最大跳变 (max transition) l三者相互联

22、系,相互影响,用来控制设计中的缓冲 (buffering)l设定最大电容值命令:set_max_capacitancel最大电容(max capacitance)的约束提供了 一种直接的方式,来直接控制设计中线网(net)上的电容。l在编译过程中,综合器确保最大电容没有违规(violation),DC把线负载的电容和与连线相关的pin的电容相加计算输出端口的电容,并且把它与最大电容的值比较,确保小于最大电容的值。34设计规则约束 (3)l设定最大扇出命令:set_max_fanoutl最大扇出 (max fanout)是对端口可以驱动的负载数目的估量。输出端口Z驱动2个反向器、一个输出端口、一

23、个或非门。每个器件的输入端均具有fanout_load的属性,该属性由反向器所在的工艺库的工艺来决定它的参数范围。35设计规则约束 (4)l设定最大跳变命令:set_max_transitionl最大跳变 (max transition)指的是0-1 (1-0)所花费的最长时间。l产生机制很简单:电容 (C)和电阻 (R)的乘积。但是如何对电容和电阻进行建模,快速获得合理的数值,却很困难。 l最大跳变 (max transition)的定义:引脚的驱动强度乘以它驱动的连线上所有电容负载的总和的最大值36设定面积约束l综合过程进行优化的依据之一l一旦确定了面积约束条件,在综合时,就将该条件通知综

24、合工具,综合工具利用各种可能的规则和算法,尽可能地减少该设计的面积l通过命令set_max_area来给设计设置约束l在实际综合中,set_max_area 0,其意义在于在满足时序的前期下,使面积达到最小37施加时序约束l根据网表中每个连接元件的延时模型,对节点进行定时分析,给出最好和最坏的延时情况,然后检查电路所有的延时约束条件是否满足要求。如果符合时序约束要求,就可以进行工艺映射,进行器件实现了。l时序约束的设计是逻辑综合的重点和难点,将详细讲解。38编译 (1)l命令:compilel编译策略:lTop-down hierarchical compilelBottom-up compi

25、lelTop-down hierarchical compilel将整个设计作为一个模块进行编译,仅需顶层约束。l对一些设计如:单时钟的设计,很适用。允许一次编译大于100K gate的设计。l对于大型设计,可将子模块合并成一组,然后展开进行编译,可以改善时序。l优点:l仅需top level的约束l将整个设计作为整体优化,可获得较好的结果l缺点:l编译时间长l子模块的改变需要整个设计再综合l如果设计包含多个时钟或生成时钟逻辑,则不能很好执行39编译 (2)lBottom-up compilel各个模块可独立编译,适合于划分合理、各个模块的时序约束能够被明确定义的设计l优点:l每一个子模块都由

26、自己的脚本 (scripts)文件,可以灵活修改l子模块的改变不需要整个设计全部重新综合l不需要关心设计类型,如:多时钟或产生时钟l一般来说,可获得好的结果;l缺点:l需要更新维护多个脚本(scripts)文件l顶层的关键路径也许在子模块并非关键路径40时序分析l编译 (compile) 结束后,通过产生的DC时序报告来具体分析诊断时序的违规(violations)l时序报告包括四个部分:路径信息部分、路径延时部分、路径所要求时间部分、计算总结部分41内容l逻辑综合概述l综合环境的设置lDC综合流程简介l时序分析基础l逻辑综合中的时序约束设计lDC的使用方式42数字系统中的时序问题l时序问题l

27、数字系统中的开关事件(逻辑运算、数据存储,等等)的发生在时间上具有先后顺序l必须使系统中所有的事件按预先确定的次序正确执行l同步系统l产生时钟信号(clocking),用以协调把数据写入存储元件的时间l异步系统l完全取消本地时钟l采用自定时的异步电路,通过握手协议实现模块间正确的操作次序43时钟的非理想情况l时钟偏差(Clock Skew)l定义:空间上两个不同点处、时序上等同的两个时钟沿在到达时间上的偏差l由时钟路径上的失配及时钟负载上的差别引起,取决于数据与时钟布线的方向,时钟偏差可正可负l具有确定性 (从一个周期至下一个周期是时不变的)l时钟偏差不会引起周期的变化,只会引起相移 (相位偏

28、移)l时钟抖动 (Clock Jitter)l定义:空间上同一个点处时钟周期随时间的变化l抖动是一个平均值为零的随机变量l绝对抖动 (tjitter):某点处一个时钟边沿相对于理想参照时钟边沿在最坏情况下偏差的绝对值jittji),(itjtjittert 2j点i点44时钟不确定性的来源45时序参数l时钟周期:Tl建立(set-up)时间:tsul保持(hold)时间:tholdl时钟至输出(clk-q)时间:tclk-q (tclk-q,min , tclk-q,max)l数据至输出(d-q)时间:td-q (td-q,min , td-q,max)46建立时间和保持时间l建立时间 (Se

29、tup Time):指时钟信号的有效沿到来之前,数据输入信号必须到达的最小时间长度,保证该单元正确工作。l保持时间 (Hold Time):指时钟信号的有效沿或其它特定信号到来之后,数据输入信号必须保持稳定的最小时间长度,保证该单元正确工作。47存在时钟偏差时的系统时序(1)l约束条件1:R2的输入数据必须在时钟的有效沿之前保持稳定sucombqclkclktttTmax,max,因此要求:sucombqclkclktttTmax,max,min,据此可得:48存在时钟偏差时的系统时序(2)l约束条件2:避免R2的前后两次输入信号出现竞争因此要求:即:min,min,combqclkholdt

30、ttholdcombqclktttmin,min,49正时钟偏差(Positive Skew)l发送边沿 (launch edge)在接收边沿 (capture edge)之前到达sucombqclkclktttTmax,max,min,)0(正的时钟偏差使得系统有可能提高时钟频率holdcombqclktttmin,min,但正的时钟偏差可能引起信号竞争50负时钟偏差(Negative Skew)l接收边沿 (launch edge)在发送边沿 (capture edge)之前到达sucombqclkclktttTmax,max,min,负的时钟偏差会降低系统的时钟性能holdcombqcl

31、ktttmin,min,由于边沿2领先于边沿1,因此不会发生信号竞争)0(51时钟分布网络l时钟分布已成为主要的设计问题l日益增大的芯片尺寸,不断提高的时钟频率l采用逐级增大的缓冲器来驱动全局时钟,供给所有模块l采用分布式树结构l二叉树或H树l使每个模块可以得到完好的时钟,能与模块的延时很好地匹配,或者使时钟的分配可以安排得使任何RC延时发生在Safe Slew的方向上(如与数据流的方向相反)lH树l由于所有的子功能块与时钟源是等距离的,因此对于每一个子功能块,时钟信号被延迟一个相同的数量二叉树逐级增大的缓冲器H 树52内容l逻辑综合概述l综合环境的设置lDC综合流程简介l时序分析基础l逻辑综

32、合中的时序约束设计lDC的使用方式53定义时钟(1)l定义时钟的周期与波形 (占空比)l命令格式:create_clock -name clock_name -add source_objects -period period_value -waveform edge_listl-period选项指定时钟周期,单位nsl-waveform选项指定时钟边沿的开始位置,单位nsl例1:在端口clk上定义一个周期为20 ns、占空比为40%的时钟信号ldc_shell-t create_clock -period 20 -waveform 0 8 clkl例2:在端口clk上定义一个频率为25 MH

33、z、占空比为50%的时钟信号ldc_shell-t create_clock clk -period 4054定义时钟(2)l指定时钟网络的延时l采用set_clock_uncertainty和set_clock_latency命令对时钟树的延时量进行建模l不确定性(uncertainty):两个寄存器时钟引脚之间的相对延时,即clock skewl延时(latency):寄存器时钟引脚与时钟源之间的绝对延时l例1:为时钟信号clk设置1.2 ns的网络延迟ldc_shell-t set_clock_latency 1.2 clkl例2:为时钟信号clk设置0.8 ns的源延迟ldc_shel

34、l-t set_clock_latency 0.8 -source clkl例3:为时钟信号clk设置0.2 ns的不确定性偏差ldc_shell-t set_clock_uncertainty 0.2 clkl例4:在跳变沿两侧为时钟信号clk各设置0.2 ns的不确定性偏差ldc_shell-t set_clock_uncertainty -setup 0.2 clkldc_shell-t set_clock_uncertainty -hold 0.2 clk时钟树(网络)55定义时钟(3)l如果设计中有内部产生的时钟,如时钟分频器或者倍频器,定义时钟时要用到命令create_genera

35、ted_clockl命令格式:create_generated_clock name clock_name source clock_source divide_by factor | -multiply_by factorl定义了时钟以后,要对时钟设置set_dont_touch属性,禁止往时钟上加入缓冲l相应的命令是:set_dont_touch_network get_clocks Clkl原因:综合时,一个时钟源驱动了很多门,由于所带的负载太多,时钟信号的边缘会很差。如果为时钟插入缓冲 (Buffer)之后,时钟的驱动能力会增强,而且保持时钟信号的边缘陡峭,但是这样做会使得在不同路径上

36、出现时钟偏移,从而带来时序上的问题。因此在综合时,将clock看作是理想的时钟,禁止加缓冲。56指定I/O的时序要求l定义了时钟之后,两个相邻寄存器之间的时间路径已经被约束默认为一个时钟周期l输入端口的时序约束l如果已知输入端口的外部电路的延迟,就能计算留给输入端内部逻辑的最大允许延迟lDC命令:set_input_delayl输出端口的时序约束l指定了输出端口外部电路的延迟,DC就能得到留给输出端口的最大延迟lDC命令:set_output_delay57设定输入延迟 (1)lset_input_delayl设置输入端口的输入延迟,可规定时钟沿之后数据据需要稳定的时间,作为输入信号的建立或保

37、持时间需求l定义信号相对于时钟的到达时间 (指一个信号在时钟沿之后多少时间到达)l规定输入信号在时钟有效沿后多长时间后才保持稳定(或说数据有效),对输入路径进行时间约束Td + TM58设定输入延迟 (2)l下图说明了输入延迟的定义和时序关系59设定输出延迟lset_output_delayl输出信号在时钟有效沿前多长时间开始保持稳定(或者说数据有效),对输出路径进行时间约束60设定I/O延迟l举例:ldc_shell-t set_input_delay 20 -clock CLK DATA_INldc_shell-t set_output_delay 15 -clock CLK DATA_O

38、UT在工程设计中,input delay和output delay通常取时钟周期的40 - 60%61指定组合逻辑通路的延时要求l采用set_max_delay和set_min_delay命令来定义某条组合逻辑路径 (不含时序单元)的最大和最小延时l例1:RESET信号的延时不能超过5 nsldc_shell-t set_max_delay 5 -from RESETl例2:从IN2至OUT2的路径的最小延时是10 nsldc_shell-t set_min_delay 10 -from IN2 -to OUT262说明时序例外情况l应用于异步路径或不遵循单时钟时序的路径l用set_false

39、_path命令指定设计中的假路径,从而在时序优化时不考虑它们U1配置寄存器,可以从双向总线(DATA)对其进行读写由于不允许同时进行读写,U1/GU1/D是一条功能上的假路径dc_shell-t set_false_path -from U1/G -to U1/D63时序约束设计举例lcreate_clock -period 20 -waveform 5 15 clkalcreate_clock -period 30 -waveform 10 25 clkblset_input_delay 10.4 -clock clka in1lset_input_delay 6.4 -clock clkb

40、 -add_delay in1lset_output_delay 1.6 -clock clka -min out1lset_output_delay 4.8 -clock clka -max out164内容l逻辑综合概述l综合环境的设置lDC综合流程简介l时序分析基础l逻辑综合中的时序约束设计lDC的使用方式65两种使用方式 (1)l图形界面方式l在Unix下执行dc_shell, 启动DC的命令行界面l执行design_analyzer& 即可启动相应的图形界面66两种使用方式 (2)l脚本 (Scripts)方式l在Unix环境下,输入dc_shell启动DC工具ldc_shell i

41、nclude scripts/.sc reports /.rpt67图形界面:设置库文件lStepup-Defaults68图形界面:设计读入 (1)l设计的读入:analyze + elaborate69图形界面:设计读入 (2)l设计的读入:read70图形界面:链接l链接l将设计中调用的子模块与链接库中定义的模块建立对应关系71图形界面:添加约束 (1)l环境约束72图形界面:添加约束 (2)l连线负载模型73图形界面:添加约束 (3)l设置输出负载设置74图形界面:添加约束 (4)l设置输入驱动75图形界面:添加约束 (5)l创建时钟76图形界面:添加约束 (6)l设置输入延时77图形

42、界面:添加约束 (7)l设置输出延时78图形界面:添加约束 (8)l组合电路的时延约束79图形界面:添加约束 (9)l设计的面积约束80图形界面:设计综合l设计综合81图形界面:结果报告l设计结果报告报告面积和时序信息82图形界面:设计保存l设计的保存83图形界面:时序描述文件导出l时序描述文件的导出l描述了设计的时序情况主要用于进行综合后的动态仿真84图形界面:时序约束文件导出l时序约束文件的导出l带有关键路径的时延约束信息,主要供后端工具进行时延驱动的布局布线85脚本方式 (1)l设计读入l生成未映射的db设计文件的脚本文件:db_gen.scr/* this script reads t

43、he vhdl files and generates db files */* ddfs MODULE */remove_design -designsanalyze -format vhdl -lib DEFAULT source/froma.vhd, source/fromb.vhd, source/croma.vhd, source/cromb.vhd, source/ddfs.vhd reports/analyze_elaborate.rptelaborate ddfs -arch ddfs -lib DEFAULT -update reports/analyze_elaborate

44、.rptcurrent_design ddfswrite -format db -hierarchy -output unmapped/ddfs.db reports/analyze_elaborate.rptquit86脚本方式 (2)l子模块约束脚本文件:constraints.scrMAX_INPUT_LOAD = load_of(REF_LOAD) * 2CLOCK_PERIOD = 10 /* the goal is 10ns */CLOCK_UNCERTAINTY = 0.4INPUT_DELAY = 3.0OUTPUT_DELAY = 3.0reset_designcreate_

45、clock -period CLOCK_PERIOD find(port, clk)set_dont_touch_network find(port,clk)set_clock_uncertainty CLOCK_UNCERTAINTY find(port,clk)set_input_delay INPUT_DELAY -max -clock clk all_inputs() - find(port, clk)set_output_delay OUTPUT_DELAY -max -clock clk all_outputs()set_operating_conditions OPERATING

46、_CONDITIONSset_wire_load WIRE_LOAD_MODELset_driving_cell -lib_cell REF_DRIVER_CELL -pin REF_DRIVER_PIN all_inputs() -find(port, clk )set_max_capacitance MAX_INPUT_LOAD all_inputs() - find(port, clk)set_load MAX_INPUT_lOAD all_outputs()87脚本方式 (3)l顶层模块约束脚本文件:constraints_ddfs.scrMAX_INPUT_LOAD = load_o

47、f(REF_LOAD) * 2CLOCK_PERIOD = 10 /* the goal is 10ns */CLOCK_UNCERTAINTY = 0.4INPUT_DELAY = 3.0OUTPUT_DELAY = 3.0reset_designcreate_clock -period CLOCK_PERIOD -name clk_sys find(port, clk)set_dont_touch_network find(port, clk)set_clock_uncertainty CLOCK_UNCERTAINTY find(port,clk)set_input_delay INPU

48、T_DELAY -max -clock clk_sys all_inputs() - find(port, clk)set_output_delay OUTPUT_DELAY -max -clock clk_sys all_outputs()set_operating_conditions OPERATING_CONDITIONSset_wire_load WIRE_LOAD_MODEL/* set_driving_cell -lib_cell REF_DRIVER_CELL -pin REF_DRIVER_PIN all_inputs() -find(port, clk) */* set_m

49、ax_capacitance MAX_INPUT_LOAD all_inputs() - find(port, clk) */set_load MAX_INPUT_lOAD all_outputs()88脚本方式 (4)l逻辑综合脚本文件:runit.scr/* Following dirctories must be maked before excuting this file */SOURCE_DIR = unmapped/SCRIPT_DIR = scripts/MAPPED_DIR = mapped/REPORTS_DIR = reports/SIMULATION_DIR = sim

50、ulation/“/* Following variables is set according the specified library you used */OPERATING_CONDITIONS = TYPICALWIRE_LOAD_MODEL = 0 x150kREF_DRIVER_PIN = YNREF_DRIVER_CELL = ND02D1REF_LOAD = csmc06core.db:csmc06core/IN01D1/A“remove_design -designsread -format db unmapped/ddfs.db89脚本方式 (5)l逻辑综合脚本文件:r

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 教育专区 > 小学资料

本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知得利文库网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

工信部备案号:黑ICP备15003705号-8 |  经营许可证:黑B2-20190332号 |   黑公网安备:91230400333293403D

© 2020-2023 www.deliwenku.com 得利文库. All Rights Reserved 黑龙江转换宝科技有限公司 

黑龙江省互联网违法和不良信息举报
举报电话:0468-3380021 邮箱:hgswwxb@163.com