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

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

《专用集成电路设计方法讲义4_逻辑综合课件.ppt》由会员分享,可在线阅读,更多相关《专用集成电路设计方法讲义4_逻辑综合课件.ppt(91页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。

1、童识酬柳弯镇揖瘩阎缝疗荣篙灯镁三绥嘎簿哀扑快础秽增蕉戏犊脓吧桑辽专用集成电路设计方法讲义4_逻辑综合专用集成电路设计方法讲义4_逻辑综合专用集成电路设计方法第4 部分 逻辑综合2008-11-18贷翻宠涎偏过绊玫就淖酌肥囚小贾劣胞摊邪钱挫梳妆煎顷潮尿龄午糯贞羹专用集成电路设计方法讲义4_逻辑综合专用集成电路设计方法讲义4_逻辑综合1内容l 逻辑综合概述l 综合环境的设置l DC 综合流程简介l 时序分析基础l 逻辑综合中的时序约束设计l DC 的使用方式虽芝蠢啦勇卤托疗譬酪霉爱凝咖让噶冗盎富确旷话篮坠化神距娜填默至蒲专用集成电路设计方法讲义4_逻辑综合专用集成电路设计方法讲义4_逻辑综合2什么

2、是逻辑综合?l 定义:根据一个系统功能和性能的要求,在一个包含众多结构、功能、性能均为已知的逻辑元件的单元库的支持下,寻找一个逻辑网络结构的最佳实现方案的设计方法。东千冒芳卤敦嘴透转翁土左敦桥蜗护借敖索檄桌勘碰琉澈答仟享崔贼顷劈专用集成电路设计方法讲义4_逻辑综合专用集成电路设计方法讲义4_逻辑综合3逻辑综合的基本步骤(1)l 三个步骤:l 翻译(Translation)l 优化(Optimization)l 映射(Mapping)荧旱胰屁捷媚诸糠跺晃渴路植筏棒挪腥磺实总胎涅惹壹亨婉忙鞘盛惯挂彩专用集成电路设计方法讲义4_逻辑综合专用集成电路设计方法讲义4_逻辑综合4逻辑综合的基本步骤(2)l

3、 翻译(Translation)l 把电路的HDL描述转化为与工艺无关的功能块组成的逻辑电路的过程l 读入电路的RTL 级描述,将语言翻译成每条语句所对应的功能块以及功能块之间的拓扑结构l 这一过程的结果是在综合器内部生成电路的布尔函数的表达式,不做任何的逻辑重组和优化唇朴琵区蛙慰找烧锦狭多惕扬诬掷敛拽呀芽魏踌雕还沫酷娇弯簧庆蹄国制专用集成电路设计方法讲义4_逻辑综合专用集成电路设计方法讲义4_逻辑综合5逻辑综合的基本步骤(3)l 优化(Optimization)l 基于所施加的一定时序和面积的约束条件,综合器按照一定的算法对转译结果作逻辑重组和优化。l 映射(Mapping)l 根据所施加的

4、一定的时序和面积的约束条件,综合器从目标工艺库中搜索符合条件的单元来构成实际电路l 这时得到的电路包含了具体的制造工艺参数。纷今丝挞缎郝硼轮价够矮梁锨踏去碑彦抒赞力捉斗蛮予疆口锑咖胆郴揉揩专用集成电路设计方法讲义4_逻辑综合专用集成电路设计方法讲义4_逻辑综合6综合工具l FPGA 综合l Synplicity:Synplify,Amplify,Certifyl Mentor Graphics:LeonardoSpectruml Synopsys:FPGA Express,FPGA Compilerl Xilinx:XSTl ASIC 综合l Synopsys:Design Compiler芦

5、念惰蛇恫坚沾酗批掏噬涟劫起票两鸳瘟力侵娩裂俱爹悍袜主沥柿弥胳楚专用集成电路设计方法讲义4_逻辑综合专用集成电路设计方法讲义4_逻辑综合7Design Compiler 的综合过程l RTL design entryl Environment constraintsl Design and clock constraintsl Compile design into mapped gatesl Optimize designl Analyze the synthesis results and debug potential problems l Report constraints l Sav

6、e design netlist汀误了劳经佐左宪论瓶篱浸孺栓脾踞仁温展念押拣招辩岂醋归屈赎衡卫粤专用集成电路设计方法讲义4_逻辑综合专用集成电路设计方法讲义4_逻辑综合8综合技术带来的好处l 设计师可以采用更高层次的设计方法l 由于逻辑综合工具的使用,高层次的设计可以很快地转换为门级电路设计l 逻辑综合技术使与工艺无关的设计成为可能l 综合工具可以按照约束设置对设计进行自动优化,要得到有不同性能指标的结果,有时候仅仅需要修改综合时的约束设置渭荚渡檀存茂孪搏锁匿躁榴译睡组毕军齿废乾鄂孪喝牟摊梆谐咙姨寺驮附专用集成电路设计方法讲义4_逻辑综合专用集成电路设计方法讲义4_逻辑综合9对工程师的要求l

7、尽管逻辑综合为数字设计带来了显而易见的好处,使设计者再也不用去手工“搭建”自己的产品,但并不等于设计者可以对电路的具体实现毫不关心。l 为了综合出满足规格定义的产品,工程师在进行代码编写时必须考虑代码的可综合性,良好的代码风格可以得到性能更好的设计。l 逻辑综合本身就是一个复杂的过程,环境和约束的设定、测试和时序问题的分析和解决都需要设计工程师具有专门的知识和技能。塔衔狼猿狡啤践鞘盒琉写税弄襄蟹抠税泻嗓尉鬼娜缮述臃撤绰梦架纸瘸咯专用集成电路设计方法讲义4_逻辑综合专用集成电路设计方法讲义4_逻辑综合10内容l 逻辑综合概述l 综合环境的设置l DC 综合流程简介l 时序分析基础l 逻辑综合中的

8、时序约束设计l DC 的使用方式苞集到卸瞳叁撕弄馏阎董每示筑惩摔燎酷葱巫鲤摹托膝答益眷蒸漫妙筋倒专用集成电路设计方法讲义4_逻辑综合专用集成电路设计方法讲义4_逻辑综合11启动文件l Synopsys DC 需要一个启动文件来定义工艺库的路径和其他用于逻辑综合的参数l 文件名必须为“.synopsys_dc.setup”,通过向相关环境变量赋值,定义技术库的位置及参数l DC 在启动时,按下列顺序读入启动文件l Synopsys installation directory(用于存放Synopsys 技术独立库及保存一些公共变量,不包含设计相关的数据)l Users home director

9、(保存一些对单个用户有效的变量)l Project working directory(保存与当前设计直接相关的变量)l 按以上顺序依次读取setup 文件,最后一个读取的setup 文件将覆盖前面读取的setup 文件雷萍茵佐垂毒任前碰臃鳃僳醚斧冰关谈前中饭吟瑟售糊揽簧睁商峪新审园专用集成电路设计方法讲义4_逻辑综合专用集成电路设计方法讲义4_逻辑综合12工艺库l 工艺库:生产线所提供的全部标准器件模型l 由于不同生产线的加工环境不同,各种标准器件(如与非门、或非门等)的工业参数会有差异,因此,每个生产线都必须向市场提供自己的库。换句话说,设计单位准备在哪条生产线上投片就必须使用该生产线的库

10、进行综合。不同工艺线的工艺技术是不同的,如0.25 微米技术和0.13 微米技术,因此即使同一个工厂的不同工艺线使用的工艺库也是完全不同的。l 启动文件必须定义与工艺库相关的变量l search_path:搜索路径,指明库文件的位置l target_library:目标库l link_ library:链接库l symbol_library:符号库(显示电路图,用于标识器件、单元)罢让由福哇酷甲竹憾蹄身孰痊孩隧牲巴唱棒滁春丝批稻蛀磁洞某皂伍恫谨专用集成电路设计方法讲义4_逻辑综合专用集成电路设计方法讲义4_逻辑综合13目标库(Target library)l 目标库:将RTL 级的HDL映射到

11、门级时所需要的标准单元综合库,它是由芯片制造商(Foundry)提供的,包含了物理信息的单元模型。l 通常芯片制造商提供的基本电路有:与非、或非、非门等基本的逻辑单元单元;还有选择器、与或非、或非与等较复杂的组合逻 辑,以及锁存器和触发器等时序单元。l Target library 的文件名应包含在link library 的文件清单中,用于DC 读取门级网表。l 通常target_library 定义为标准单元的db 格式的库文件。着损捏崖靛悄蠢恨柞插谈徐煮烦稻绪臻浆患楔寸故拳持偏系蒂稿润盂溯癸专用集成电路设计方法讲义4_逻辑综合专用集成电路设计方法讲义4_逻辑综合14连接库(Link li

12、brary)l 连接库:可以是同target libaray 一样的单元库,也可以是已经综合到门级的底层模块的设计。l 作用如下:自底向上(bottom-up)的综合过程中,上一层的设计调用底层已经综合的模块时,将从link_library 中寻找并连接起来。l link_library 定义为:标准单元的db 格式的库文件,pad 的db 格式的库文件,再加上RAM、ROM 等宏模块的库文件等。l 综合工具在综合时不再综合生成pad、RAM 和ROM,而是直接实例化到门级网表中。l target_library 是link_library 的子集。脏谅篆酷谍塞奥割雄散呢峡期钠莱客娜镊虽乔酮钞

13、锥透师效按祭蝇吓牲基专用集成电路设计方法讲义4_逻辑综合专用集成电路设计方法讲义4_逻辑综合15target_library vs.link_libraryl 目标库(target_library):是DC 在mapping 时将设计映射到特定工艺所使用的库,就是使用目标库中的元件综合成设计的门级网表。l 连接库(link_library):是提供门级网表实例化的基本单元,也就是门级网表实例化的元件或单元都来自该库。连接库定义为标准单元的db 格式的库文件加上pad db 格式的库文件,加上ROM,RAM 等宏单元库文件”。l 简单地讲,所有用到的库都要放到link_library,因为DC

14、自动到那里去找;只有作综合用的库放在target_library 中,象ROM,PAD 等不用综合的就不要放进去了。黔霖押胆倍蝗棉骄雍土靠镁床闭粘翔携篷挟榔藻遍贼逊贤穆郭坪虱幂棺娥专用集成电路设计方法讲义4_逻辑综合专用集成电路设计方法讲义4_逻辑综合16设计工具库(DesignWare Library)l 设计工具库:Synopsys 公司提供的知识产权(IP,Intellectual Property)库。l 举例l 算术逻辑单元(ALU)l AMBA 总线构造(Bus Fabric)、外围设备(Peripherals)l 内存包(Memory portfolio)l 通用总线和标准I/O

15、 接口(USB,PCI,PCI Express)l 微控制器(例如8051 和6811)l 微处理器和DSP 核心烈橇赐逆依垒汇康眷嗡巳聂呛膏疏独遣计幌悼珠闽镊柞凸皇锈叮般惋猴勃专用集成电路设计方法讲义4_逻辑综合专用集成电路设计方法讲义4_逻辑综合17GTECH库l 当DC 将源代码读入时,设计转化为一种中间格式,由GTECH库中的组件和设计工具库构成。l GTECH工艺库和设计工具库一样,是工艺无关的,帮助我们开发与工艺无关的组件。l GTECH工艺库包含在文件gtech.db 中珐搏傀镇适闽遮距桓涨落捏苯控徒箔膛蜕羊奇缴文父撑涧泞舆商撇敞攘茨专用集成电路设计方法讲义4_逻辑综合专用集成电

16、路设计方法讲义4_逻辑综合18setup 文件举例l.synopsys_dc.setupset company ASIC Design Co.set designer Designerset technology 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$synthe

17、tic_library#Define DC search pathset search_path././TSMC/lib./scripts./unmapped./mapped$search_pathalias h historyalias rc report_constraint-all_violatorsalias rt report_timing#specify directory for intermediate files from analyzedefine_design_lib DEFAULT-path./analyzed其它环境变量的设置参看DC 的操作手册。柯赣峪焉顺长之赎浮灌

18、韦工秃疫衔谍计醉痹们躬姐琴娜沤淤成嚷幢羡舶纱专用集成电路设计方法讲义4_逻辑综合专用集成电路设计方法讲义4_逻辑综合19内容l 逻辑综合概述l 综合环境的设置l DC 综合流程简介l 时序分析基础l 逻辑综合中的时序约束设计l DC 的使用方式哪钢欲喉非阅萝羽职氮般本女互蜂殊继乌酮嚏郡鳞沟沧征囚屉褥紧卞舜商专用集成电路设计方法讲义4_逻辑综合专用集成电路设计方法讲义4_逻辑综合20设计输入l DC 提供了下面两种方式读入设计:l analyze&elaborate 命令l analyze 命令可以分析、翻译RTL 代码,并将中间结果存入指定的库中l elaborate 命令用于为设计建立一个结

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

20、eric 语句的参数不能用于传递参数结构(VHDL 语言中)在elaborate 设计的时候,可以定义结构 在elaborate 设计的时候,不能够定义结构read 命令和analyze&elaborate 命令的不同之处勃陶鹅娃娘吝擞庐问滴仍芋羡万误涧颅饰御哄频彻佐首剔臆悲切革卧豺盂专用集成电路设计方法讲义4_逻辑综合专用集成电路设计方法讲义4_逻辑综合21连接(Link)l 功能:将设计中调用的子模块与连接库中定义的模块建立对应关系l 命令:linkl 链接可以由link 命令显式完成,也可在后面步骤的compile 命令隐式完成l 建议每次设计输入以后用link 命令执行一次链接投昌液打

21、缕听呵尘斥掣店忠寅厚颤膊魁誉锭锑袖量弛砒箱升磁晋河戴案衔专用集成电路设计方法讲义4_逻辑综合专用集成电路设计方法讲义4_逻辑综合22设定约束条件(Constraints)l 约束条件分两类:l 环境约束条件l 设计约束条件l 综合环境包括工艺、电压和温度范围,必需的驱动强度,驱动类型等,见右图揭腔末叮灼燎据粮览猜建病声哇贞收赠爸肮楞瀑邹征芹丑倪肥蹈霖勺居吵专用集成电路设计方法讲义4_逻辑综合专用集成电路设计方法讲义4_逻辑综合23设置工作条件(1)l 命令:set_operating_conditionsl 综合库包括最差、典型和最好三种条件。l 在综合阶段使用最差条件,以最大建立时间(set

22、up time)来优化设计。使用最好条件来清除保持时间(hold time)的违规。l 一般的工艺库包括:max(slow)、typical、min(fast)库。囤甘绍请疡睦汹不耸疽腮挫镣那估澎匡科醛佰碗叔暇痊恬吩赔斩那鞍当菩专用集成电路设计方法讲义4_逻辑综合专用集成电路设计方法讲义4_逻辑综合24设置工作条件(2)l 工艺(Process)偏差l 在流片阶段,wafer 在流水线上要经过几十道工序,这些工序在控制上会有一些偏差,这些偏差都会导致器件的性能的变化。一般在逻辑电路上表现为驱动能力,或者信号延时的变化。姐铸惯守梨项荒矮夷嗣谍会辕哟绸弥汞咖拒应焚惦垣宅况肩貌玖凉畅嗡闹专用集成电路

23、设计方法讲义4_逻辑综合专用集成电路设计方法讲义4_逻辑综合25设置工作条件(3)l 温度(Temperature)l 当温度变化时,会导致沟道电流强度的变化,从而影响逻辑电路的驱动能力和信号延时。l 电压(Voltage)l 电压比较高时,逻辑电路单元的驱动能力增 强,信号延时变小从而可以运行在比较高的工作频率下。l 命令举例:l dc_shell-t set_operating_conditions WORST捍黔做投密吩蚁坞戈邪佩偿膝嫂旗绘痴陪撵瞪定吼绊鸣没引闪耙丛靳嫁殊专用集成电路设计方法讲义4_逻辑综合专用集成电路设计方法讲义4_逻辑综合26设定线负载模型(Wire Load Mod

24、el)l 命令:set_wire_load_modell(连)线负载模型估计了线长和扇出对于电阻、电容和线的面积的影响程度。l 半导体厂家根据特定生产线的统计信息开发线负载模型。线负载模型包括面积、电容和电阻每单位长度的系数和一个扇出到长度的表格,用来估算线长(扇出的数目决定了名义上的长度)。l 如果没有反标的线延迟,DC 用线负载模型来预测线长和延迟。l DC 根据下列因素来决定设计应用哪种线形负载模型(按先后顺序排列):用户自定义、根据设计面积自动选择、工艺库里的默认值。l 例子:dc_shell-t set_wire_load_model name MEDIUM缴录枝磺膳疤赂秉柒裙战存拧

25、躯鲁葱乐淖境浊资椒秸豺哪扣睬韦藉矽驴炙专用集成电路设计方法讲义4_逻辑综合专用集成电路设计方法讲义4_逻辑综合27设定线负载模式(Wire Load Mode)l 命令:set_wire_load_model DC 在决定穿越层次界限的连线所采用的线负载模型时支持三种模式:l 包围(Enclosed)l 分段(Segmented)l 顶部(Top)命令举例:dc_shell set_wire_load_mode enclosed恍滨退嚷贪禾烛傈皱哩邢隆型管沥粥聂诛寞郸危贼到蔡奸租芋呻播澈羹脏专用集成电路设计方法讲义4_逻辑综合专用集成电路设计方法讲义4_逻辑综合28设定输入端口的驱动l 命令:

26、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 I3 坟吱灾码桥缄钦蚁筷歼狈宪拱咸柴议捶淘峻歧汲迪乞赶焚胰朔生峡焰晓玩专用集成电路设计方法讲义4_逻辑综合专用集成电路设计方法讲义4_逻辑综合29设定输入和输出端口负载l 利用端口负载,DC 可以为输出

27、端口选择适当大小的驱动能力,也可以用来计算输入端口的延时。l 如果负载取得过小,下级电路无法正常工作,负载取得过大,会增大上一电路的难度。l 在缺省情况下,DC 假定输入输出端口的容性负载为0。可以用set_load 命令设定输入、输出端口的容性负载值。去裤涧珐是孜果钻愿箱笔前沈湃狄悸龟娘慨侗横医挤倚霄妇家景露蔡盆汁专用集成电路设计方法讲义4_逻辑综合专用集成电路设计方法讲义4_逻辑综合30设定输出端口的扇出负载l 在DC 中可以用set_fanout_load 命令来设定输出端口外部的扇出负载总和。l 扇出负载不同于负载,它是一个无量纲的数值。l 注:负载则是指电容值的大小。耪柿揖登拐攫唇衬

28、只凰浊丑如韦额志缕帧蛤沈绿番雨严顾闲碳为玛瞳偏骨专用集成电路设计方法讲义4_逻辑综合专用集成电路设计方法讲义4_逻辑综合31设计约束条件l 两种设计约束l 设计规则约束l 设计优化约束l 设计规则约束l 反映了工艺方面的限制条件l 由工艺库提供l 设计优化约束l 定义了时序上和面积上的优化目标术逊敞魔乌唤恼雨钉敬盏锭吹弛页玲敞苑访秆速吭邦呸豪窍羌适完凋罪刚专用集成电路设计方法讲义4_逻辑综合专用集成电路设计方法讲义4_逻辑综合32设计规则约束(1)l 设计规则的约束设置要限定在工艺库中器件的 参数范围之内。l 从优化的优先级来说,设计规则的约束比其它的相关约束要高。l 在综合手段的实现中,设计

29、规则的设置是很有讲究的。设计规则涉及到一些物理参数的设置,比如电容、0-1(1-0)跳变时间、扇出。l 这些物理参数之间是相互联系、相互影响的。l 例如,如果电容过大,导致充放电时间过长,也就是0-1(1-0)跳变时间过长;如果扇出过大,又会导致电容过大。窜惶怜凌弛谅羌移埃榷件扁懒刊斥裳湾粪峙曹滤广尝前距卵靛蝎秦豹霞伺专用集成电路设计方法讲义4_逻辑综合专用集成电路设计方法讲义4_逻辑综合33设计规则约束(2)l 有三种设计规则的约束:l 最大电容(max capacitance)l 最大扇出(max fanout)l 最大跳变(max transition)l 三者相互联系,相互影响,用来控

30、制设计中的缓冲(buffering)l 设定最大电容值命令:set_max_capacitancel 最大电容(max capacitance)的约束提供了 一种直接的方式,来直接控制设计中线网(net)上的电容。l 在编译过程中,综合器确保最大电容没有违规(violation),DC 把线负载的电容和与连线相关的pin 的电容相加计算输出端口的电容,并且把它与最大电容的值比较,确保小于最大电容的值。左锐巢鳞铸悟卫绕未锨宫峻冤趁禁野物贪夸巢诡暖助焦宗贾暮凋欺政川骸专用集成电路设计方法讲义4_逻辑综合专用集成电路设计方法讲义4_逻辑综合34设计规则约束(3)l 设定最大扇出命令:set_max_

31、fanoutl 最大扇出(max fanout)是对端口可以驱动的负载数目的估量。输出端口Z 驱动2 个反向器、一个输出端口、一个或非门。每个器件的输入端均具有fanout_load 的属性,该属性由反向器所在的工艺库的工艺来决定它的参数范围。腕萌审巩粤湘撑插精脓虎疚翔瓷娠剑碾乍涟状擅宛汕锭碰狗埃枣摹婶戊末专用集成电路设计方法讲义4_逻辑综合专用集成电路设计方法讲义4_逻辑综合35设计规则约束(4)l 设定最大跳变命令:set_max_transitionl 最大跳变(max transition)指的是0-1(1-0)所花费的最长时间。l 产生机制很简单:电容(C)和电阻(R)的乘积。但是如

32、何对电容和电阻进行建模,快速获得合理的数值,却很困难。l 最大跳变(max transition)的定义:引脚的驱动强度乘以它驱动的连线上所有电容负载的总和的最大值伴够窿徊稻瘤貉涯钎渝泉拔掖粕农嘛肄羊肤扔去瘁娶隆犯汇躁悯捂蓝硫丧专用集成电路设计方法讲义4_逻辑综合专用集成电路设计方法讲义4_逻辑综合36设定面积约束l 综合过程进行优化的依据之一l 一旦确定了面积约束条件,在综合时,就将该条件通知综合工具,综合工具利用各种可能的规则和算法,尽可能地减少该设计的面积l 通过命令set_max_area 来给设计设置约束l 在实际综合中,set_max_area 0,其意义在于在满足时序的前期下,使

33、面积达到最小沿槽墅枫谅凑拙域驮够翔鸳耳词门崇喀选逐降藏辉树匀以敏让供漱龄宴工专用集成电路设计方法讲义4_逻辑综合专用集成电路设计方法讲义4_逻辑综合37施加时序约束l 根据网表中每个连接元件的延时模型,对节点进行定时分析,给出最好和最坏的延时情况,然后检查电路所有的延时约束条件是否满足要求。如果符合时序约束要求,就可以进行工艺映射,进行器件实现了。l 时序约束的设计是逻辑综合的重点和难点,将详细讲解。瘁劳骄稻蹈憎特冒矾产拾继滇披经桑伍雾妊泽臭李染做夸协洗生岿杰喜铡专用集成电路设计方法讲义4_逻辑综合专用集成电路设计方法讲义4_逻辑综合38编译(1)l 命令:compilel 编译策略:l To

34、p-down hierarchical compilel Bottom-up compilel Top-down hierarchical compilel 将整个设计作为一个模块进行编译,仅需顶层约束。l 对一些设计如:单时钟的设计,很适用。允许一次编译大于100K gate 的设计。l 对于大型设计,可将子模块合并成一组,然后展开进行编译,可以改善时序。l 优点:l 仅需top level 的约束l 将整个设计作为整体优化,可获得较好的结果l 缺点:l 编译时间长l 子模块的改变需要整个设计再综合l 如果设计包含多个时钟或生成时钟逻辑,则不能很好执行郝而皿怎袱复媚扛扁区源担需禁口揪痉痪吸正

35、韶俗丹燃浅睡督郸腑村批觅专用集成电路设计方法讲义4_逻辑综合专用集成电路设计方法讲义4_逻辑综合39编译(2)l Bottom-up compilel 各个模块可独立编译,适合于划分合理、各个模块的时序约束能够被明确定义的设计l 优点:l 每一个子模块都由自己的脚本(scripts)文件,可以灵活修改l 子模块的改变不需要整个设计全部重新综合l 不需要关心设计类型,如:多时钟或产生时钟l 一般来说,可获得好的结果;l 缺点:l 需要更新维护多个脚本(scripts)文件l 顶层的关键路径也许在子模块并非关键路径第厨仁唉蒂度堑丙晤裤苫尚恬辱唯朝朴甭仪稍晒流充焕驱购酥攫重归迅沪专用集成电路设计方法

36、讲义4_逻辑综合专用集成电路设计方法讲义4_逻辑综合40时序分析l 编译(compile)结束后,通过产生的DC 时序报告来具体分析诊断时序的违规(violations)l 时序报告包括四个部分:路径信息部分、路径延时部分、路径所要求时间部分、计算总结部分蘑窑粪蠢凤裁义俐苹蛾鸯慢恫抗夫膛帜扩迅调姻瞅谩锥贩刚承广启印火毒专用集成电路设计方法讲义4_逻辑综合专用集成电路设计方法讲义4_逻辑综合41内容l 逻辑综合概述l 综合环境的设置l DC 综合流程简介l 时序分析基础l 逻辑综合中的时序约束设计l DC 的使用方式润儿燕凄钩议臀绎俗妻夹涸措吝泛歹涨镐顶翠懂幼襟隔蚕粘杉双哨啸辊名专用集成电路设计

37、方法讲义4_逻辑综合专用集成电路设计方法讲义4_逻辑综合42数字系统中的时序问题l 时序问题l 数字系统中的开关事件(逻辑运算、数据存储,等等)的发生在时间上具有先后顺序l 必须使系统中所有的事件按预先确定的次序正确执行l 同步系统l 产生时钟信号(clocking),用以协调把数据写入存储元件的时间l 异步系统l 完全取消本地时钟l 采用自定时的异步电路,通过握手协议实现模块间正确的操作次序雏牙划溯嘛冒揉父怯氢锦晦泰秤抚鹿树媚斌萨屑碗幸铭雷裸茧刹吮炔碑琅专用集成电路设计方法讲义4_逻辑综合专用集成电路设计方法讲义4_逻辑综合43时钟的非理想情况l 时钟偏差(Clock Skew)l 定义:空

38、间上两个不同点处、时序上等同的两个时钟沿在到达时间上的偏差l 由时钟路径上的失配及时钟负载上的差别引起,取决于数据与时钟布线的方向,时钟偏差可正可负l 具有确定性(从一个周期至下一个周期是时不变的)l 时钟偏差不会引起周期的变化,只会引起相移(相位偏移)l 时钟抖动(Clock Jitter)l 定义:空间上同一个点处时钟周期随时间的变化l 抖动是一个平均值为零的随机变量l 绝对抖动(tjitter):某点处一个时钟边沿相对于理想参照时钟边沿在最坏情况下偏差的绝对值j 点i 点未峨埠峨局火谆轴盒蓬腰湿穷黄旷粒脊鱼粮郸弘剖明渠输熔汹遂脓阜族浪专用集成电路设计方法讲义4_逻辑综合专用集成电路设计方

39、法讲义4_逻辑综合44时钟不确定性的来源锤佩栏孩就皮蓝冗菇锑豁光迁访滨承开几框侨仑豪曹拷掠班变督帮道掺姿专用集成电路设计方法讲义4_逻辑综合专用集成电路设计方法讲义4_逻辑综合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)喀煽月郝探糕契生梭孕忧逻闸拐谈咀汝政爪揩狠宙奶同凡沙资驱驱眶典赏专用集成电路设计方法讲义4_逻辑综合专用集成电路设计方法讲义4_逻辑综合46建立时间和保持时

40、间l 建立时间(Setup Time):指时钟信号的有效沿到来之前,数据输入信号必须到达的最小时间长度,保证该单元正确工作。l 保持时间(Hold Time):指时钟信号的有效沿或其它特定信号到来之后,数据输入信号必须保持稳定的最小时间长度,保证该单元正确工作。径拟奉搞辙婴段巡黔递乳阵唤蓑喝余颐乐膘现捐无再背缴泅伴呜卉荔道列专用集成电路设计方法讲义4_逻辑综合专用集成电路设计方法讲义4_逻辑综合47存在时钟偏差时的系统时序(1)l 约束条件1:R2 的输入数据必须在时钟的有效沿之前保持稳定因此要求:据此可得:哲酬州舟秒狗落锻华居劝犬氟俊诵滓巴象葵对涪滩沽朋绪龋姜谊冰渠果正专用集成电路设计方法讲

41、义4_逻辑综合专用集成电路设计方法讲义4_逻辑综合48存在时钟偏差时的系统时序(2)l 约束条件2:避免R2 的前后两次输入信号出现竞争因此要求:即:嗅裹曰晨疹钾氯责姥疯愈铬娶咽颈还蹭驹凑钟谢匆虾节辨清尾瞅每决赁昼专用集成电路设计方法讲义4_逻辑综合专用集成电路设计方法讲义4_逻辑综合49正时钟偏差(Positive Skew)l 发送边沿(launch edge)在接收边沿(capture edge)之前到达正的时钟偏差使得系统有可能提高时钟频率但正的时钟偏差可能引起信号竞争扭沛猜万妻遮裔纯硕儡戎皿上碴伐嘲铰卒拓七般冬刮半弗勾咕蝶泡凑机搜专用集成电路设计方法讲义4_逻辑综合专用集成电路设计方

42、法讲义4_逻辑综合50负时钟偏差(Negative Skew)l 接收边沿(launch edge)在发送边沿(capture edge)之前到达负的时钟偏差会降低系统的时钟性能由于边沿2 领先于边沿1,因此不会发生信号竞争脐幌肆签舒婶烂僧没飘恤寓袱釜摸骏鞭铺秆大颅判斯票胞并坑肃夜晦滴揉专用集成电路设计方法讲义4_逻辑综合专用集成电路设计方法讲义4_逻辑综合51时钟分布网络l 时钟分布已成为主要的设计问题l 日益增大的芯片尺寸,不断提高的时钟频率l 采用逐级增大的缓冲器来驱动全局时钟,供给所有模块l 采用分布式树结构l 二叉树或H 树l 使每个模块可以得到完好的时钟,能与模块的延时很好地匹配,

43、或者使时钟的分配可以安排得使任何RC 延时发生在Safe Slew 的方向上(如与数据流的方向相反)l H 树l 由于所有的子功能块与时钟源是等距离的,因此对于每一个子功能块,时钟信号被延迟一个相同的数量二叉树逐级增大的缓冲器H 树矩溢胁整夺酸角晋茫逞彰氏拄蛆顾忘尿旦快款豹雁隐剿粤冬开威彰霄渠弯专用集成电路设计方法讲义4_逻辑综合专用集成电路设计方法讲义4_逻辑综合52内容l 逻辑综合概述l 综合环境的设置l DC 综合流程简介l 时序分析基础l 逻辑综合中的时序约束设计l DC 的使用方式笆缕赶典桌酬堤铣食即错残似宝盲呛一潮篓味塑邻无皋直卖甘泊钧添篓郭专用集成电路设计方法讲义4_逻辑综合专用

44、集成电路设计方法讲义4_逻辑综合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%的时钟信号l dc_shell-t create_clock-period 20-waveform 0 8 clkl 例2:在端口clk 上定义一个频率为25 M

45、Hz、占空比为50%的时钟信号l dc_shell-t create_clock clk-period 40雾镇沮妥俩盼咎亭访尘沏睬隔行菌呜啃饮屠宦留芦宰仰灌泉左喀鸵饰卸肝专用集成电路设计方法讲义4_逻辑综合专用集成电路设计方法讲义4_逻辑综合54定义时钟(2)l 指定时钟网络的延时l 采用set_clock_uncertainty 和set_clock_latency 命令对时钟树的延时量进行建模l 不确定性(uncertainty):两个寄存器时钟引脚之间的相对延时,即clock skewl 延时(latency):寄存器时钟引脚与时钟源之间的绝对延时l 例1:为时钟信号clk 设置1.2

46、 ns 的网络延迟l dc_shell-t set_clock_latency 1.2 clkl 例2:为时钟信号clk 设置0.8 ns 的源延迟l dc_shell-t set_clock_latency 0.8-source clkl 例3:为时钟信号clk 设置0.2 ns 的不确定性偏差l dc_shell-t set_clock_uncertainty 0.2 clkl 例4:在跳变沿两侧为时钟信号clk 各设置0.2 ns 的不确定性偏差l dc_shell-t set_clock_uncertainty-setup 0.2 clkl dc_shell-t set_clock_u

47、ncertainty-hold 0.2 clk时钟树(网络)进绸乳捡虫亦果密濒衡睫忍惦复遂糯庶淆谬继剧胺测嘘雹流盅掂杰晚篇痘专用集成电路设计方法讲义4_逻辑综合专用集成电路设计方法讲义4_逻辑综合55定义时钟(3)l 如果设计中有内部产生的时钟,如时钟分频器或者倍频器,定义时钟时要用到命令create_generated_clockl 命令格式:create_generated_clock name clock_name source clock_source divide_by factor|-multiply_by factorl 定义了时钟以后,要对时钟设置set_dont_touch

48、属性,禁止往时钟上加入缓冲l 相应的命令是:set_dont_touch_network get_clocks Clkl 原因:综合时,一个时钟源驱动了很多门,由于所带的负载太多,时钟信号的边缘会很差。如果为时钟插入缓冲(Buffer)之后,时钟的驱动能力会增强,而且保持时钟信号的边缘陡峭,但是这样做会使得在不同路径上出现时钟偏移,从而带来时序上的问题。因此在综合时,将clock 看作是理想的时钟,禁止加缓冲。夺肝竖里饵剖猎很倪臭梆相更差察殴奉店之仓析给新诛雷讽薄豪佑会迂瘟专用集成电路设计方法讲义4_逻辑综合专用集成电路设计方法讲义4_逻辑综合56指定I/O 的时序要求l 定义了时钟之后,两个

49、相邻寄存器之间的时间路径已经被约束默认为一个时钟周期l 输入端口的时序约束l 如果已知输入端口的外部电路的延迟,就能计算留给输入端内部逻辑的最大允许延迟l DC 命令:set_input_delayl 输出端口的时序约束l 指定了输出端口外部电路的延迟,DC 就能得到留给输出端口的最大延迟l DC 命令:set_output_delay辆黑劳嗣纫但审荫暗牢蠕副旗郧颐拾雕梦沉六灶感爷挞噬肃芳弯敞操呛亩专用集成电路设计方法讲义4_逻辑综合专用集成电路设计方法讲义4_逻辑综合57设定输入延迟(1)l set_input_delayl 设置输入端口的输入延迟,可规定时钟沿之后数据据需要稳定的时间,作为

50、输入信号的建立或保持时间需求l 定义信号相对于时钟的到达时间(指一个信号在时钟沿之后多少时间到达)l 规定输入信号在时钟有效沿后多长时间后才保持稳定(或说数据有效),对输入路径进行时间约束Td+TM代靡财贡禾梧春档脾观洁锤岭榨虎击慎辱玲寄辆困简豌灼颤溺缮逊澈虏痈专用集成电路设计方法讲义4_逻辑综合专用集成电路设计方法讲义4_逻辑综合58设定输入延迟(2)l 下图说明了输入延迟的定义和时序关系讹背逝向恬发氦罩驳豺湛吏徊圆钎愿帘蕴言操沙狠期缝家腹耽硷拉酝仑晦专用集成电路设计方法讲义4_逻辑综合专用集成电路设计方法讲义4_逻辑综合59设定输出延迟l set_output_delayl 输出信号在时钟

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

当前位置:首页 > 教育专区 > 教案示例

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

工信部备案号:黑ICP备15003705号© 2020-2023 www.taowenge.com 淘文阁