




已阅读5页,还剩4页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
实验一DC(design compile)的基本使用流程Design Compiler是Synopsys综合软件的核心产品。它提供约束驱动时序最优化,并支持众多的设计类型,把设计者的HDL描述综合成与工艺相关的门级设计;它能够从速度、面积和功耗等方面来优化组合电路和时序电路设计,并支持平直或层次化设计。Design Compiler的功能利用Design Compiler,设计者可以:l 利用用户指定的门阵列、FPGA或标准单元库,生成高速、面积优化的ASIC;l 能够在不同工艺技术之间转换设计;l 探索设计的权衡,包括延时、面积和在不同负载、温度、电压情况的功耗等设计约束条件;l 优化有限状态机的综合,包括状态的自动分配和状态的优化;l 当第三方环境仍支持延时信息和布局布线约束时,可将输入网表和输出网表或电路图整合在一起输入至第三方环境;自动生成和分割层次化电路图其完整的流程见图-1。l图 11) 建立设计环境1)在工作目录下创建db(存放DC综合生成的项目db文件)、lib_syn(存放库文件)、log(存放综合程序运行报告)、netlist(存放综合网表)、rpt(存放综合结果的数据报告)、script(存放脚本文件)文件夹,并将.synpsys_dc文件拷到工作目录下。2)DC启动时,会自动搜索工作目录下的.synpsys_dc文件, 根据文件中的内容来设定综合环境。因此,在启动DC前,可以先修改.synpsys_dc中库文件的路径(也可以在进入DC后设置)。set search_path $search_path ./ref/db ./scripts 指明库所在的路径set target_library sc_max.db 目标库set link_library * sc_max.db 链接库set symbol_library sc.sdb 特征库在上述环境建立所需的各类库中,一般由生产商提供目标库,库中的各类cell用于逻辑映射,链接库则包括一些已经做好的设计和子模块,还包括了当前设计的目标库,门级网表实例化元件和单元都来自于它。2) 读入设计(以下命令都可在DC中的里执行)1)RTL代码的读入Design Compiler使用HDL Compiler将RTL级设计和门级网表作为设计输入文件读入。通过analyze和elaborate命令读入RTL级设计,通过read_file或read命令读入门级网表。Design Compiler支持所有主要的门级网表格式。如果你用read_file或read命令读入RTL设计,等于实现了组合3analyze和elaborate命令的功能。2)指明设计顶层current_design命令利用这个命令可设置任何一个内存中的设计为当前设计:dc_shell current_design ANY_DESIGNCurrent design is ANY_DESIGN3)链接库文件要完成一个设计,它就必须与涉及到的库元件和设计链接。对于每一个子设计,必然有一个基准,将子设计或元件与链接库相连。这个过程称为设计链接或基准分解。Design Compiler执行下列步骤来完成基准分解:(1)决定当前设计和它的层次引用哪些库元件和子设计;(2)搜索链接库,查找这些引用;(3)将设计与查找到的引用链接。Design Compiler首先搜索local_link_library参数定义的库和设计文件,然后再搜索link_library变量中定义的库和设计文件。在一个分层的设计中,Design Compiler只考虑顶层设计的局部链接库,而忽略与子设计相关的局部链接库。Design Compiler使用第一找到的基准。如果它查找到了具有相同名称的额外的基准,将会产生一个警告信息来识别这个忽视的、重复的基准。如果Design Compiler没有找到基准,警告信息建议该基准不能被分解。图2.6显示了在链接库、单元和基准之间的链接过程,在这个例子里,Design Compiler在LIBRARY_2工艺库里找到了库元件NAND2;在设计文件里找到了子设计MULTIPLIER。图2.6 分解基准你可以手动地或自动地进行设计的链接。(1)手动链接用link命令来手动地链接设计。在开始链接过程前,link命令移走现有的链接。(2)自动链接下列的dc_shell命令自动链接设计: compile create_schematic group check_design report_timing, report_constraints, and other report_* commands compare_design当执行自动链接时,它并不移走现有的链接。自动链接过程只工作于未链接的元件(4)设计唯一实例化uniquify3) 定义时序约束、面积约束和综合环境约束1) 设定时钟约束create_clock -period 10 get_ports clk,其中“get_ports clk”为时钟的来源,“-period 10”为时钟的周期。通过时钟定义约束了寄存器到寄存器之间的延迟。见图4。图 2set_dont_touch_network get_clocks clk一般需要告诉综合器不要对时钟网络进行缓冲驱动,这一工作将在后续的版图布局布线中进行。set_clock_uncertainty setup 0.3 get_clocks clkset_clock_uncertainty hold 0.3 get_clocks clk这两句是设定时钟的建立时间和保持时间。set_clock_latency -rise 3 get_clocks clkset_clock_latency -fall 3 get_clocks clk这两句是设定时钟的上升时间和下降时间。set_input_delay -max 0.6 -clock clk get_ports “A”set_output_delay -max 0.8 -clock clk get_ports “B”这两句是设定特定端口“A”(或“B”)的输入延时(或输出延时)。如图5。图 32)设定面积约束 set_max_area 0,规定最大面积。3)设定输出负载set_load 5 get_ports OUT1这句定义了输出负载为5,当不知道输出负载的值为多少时,可以用以下命令。 set_load load_of ssc_core_slow/AN2/A get_ports OUT1 或set_load expr load_of ssc_core_slow/AN2/A*2.2 get_ports OUT1前一句是指OUT1的输出负载等同于A,后一句是指OUT1的输出负载等同于A*2.2。4)设定模块的输入驱动强度信息set_driving_cell -lib_cell ND2 get_ports IN1,综合工具需要知道输入的驱动能力来计算输入的变化时延,见图6。图 45)设定综合的操作条件 set_operating_condition best 或set_operating_condition slow6)设定布线延时set_wire_load_model “tc6a120m2”,通过设定线载模型来设定布线延时。4) 编译和优化选择编译策略你可以用来优化层次化设计的两种基本编译策略被称为自顶向下和从下上。在自顶向下的策略里,顶层设计和它的子设计一起进行编译。所有的环境和约束设置都根据顶层设计来定义。因此,它会自动的考虑内部模块的依赖性。但对于大型设计,这种方法并不实用,因为所有的设计必须同时贮存在内存里。(1) 在从下到上的策略里,分别对子设计进行约束和编译。在成功编译后,这些设计都被赋予一个dont_touch参数,防止在随后的编译过程中对它们进行进一步的改变。然后这些编译过的子设计组合成更高层次的设计,再进行编译。编译过程一直持续到顶层设计被综合。由于Design Compiler不需要同时将所有未编译的子设计装载进内存,这种方法允许你编译大型设计。然而,在每一个阶段,你必须估计每个内部模块的约束,更有代表性的是,你必须不停地编译、改进那些估计,直到所有的子设计界面都是稳定的。每一个策略都有其优点和缺点,这取决于你设计的特殊性和设计目标。你可以选择任意一个策略来进行整个设计,或者混合使用,对每一个子设计采用最合适的策略。(2) 优化设计利用compiler命令启动Design Compiler的综合和优化进程。有几个可选的编译选项。特别的,map_effort选项可以设置为low、mediu或high。初步编译,如果你想对设计面积和性能有一个快速的概念,将map_effort设置为low;默认编译,如果你在进行设计开发,将map_effort设置为medium;当在进行最后设计实现编译时,将map_effort设置为high。通常设置map_effort为medium。1) 检查设计层次关系并进行单元映射check_designcompile2) 修复hold时序并重新编译 set_fix_hold get_clocks clk compile only_hold_time五、导出分析报告使用report_lib命令来报告库中的内容。report_lib命令能够报告下列资料:库单位;操作条件;线形负载模型和单元1、 检查整体设计导出报告2、 导出设计面积报告 3、 导出设计违例报告4、 导出setup时序违例的详细报告 5、 导出hold 时序违例的详细报告 六、导出设计 write_lib命令能够以Synopsys数据库、EDIF和VHDL格式来保存一个编译过的库。生成综合网表和pnr 所需的时序约束文件七、脚本文件介绍我们可以在一个脚本文件里保存那些综合过程中用过的设计参数和约束。脚本文件是用来管理设计参数和约束的理想工具。设计实例的脚本文件下面这个例子是一个简单的脚本,执行了自顶向下的编译过程。脚本中包含注释,标明流程中的每一个步骤。/* specify the libraries */ 指定库target_library = my_lib.dbsymbol_library = my_lib.sdblink_library = * + target_library/* read the design */ 读入设计文件read -format verilog Adder16.v/* define the design environment */ 设置设计环境set_operating_conditions WCCOMset_wire_load_model 10x10set_load 2.2 soutset_load 1.5 coutset_driving_cell -cell FD1 all_inputs()set_drive 0 clk/* set the optimization constraints */ 设计最优化约束create_clock clk -period 10set_input_delay -max 1.35 -clock clk ain, binset_input_delay -max 3.5 -clock clk cinset_output_delay -max 2.4 -clock clk coutset_max_area 0/* map and optimize the design */ 映射和优化uniquifycompile/* analyze and debug the design */ 分析和除错report_constraint -all_violatorsreport_area/* save the design database */ 保存设计数据write -format db -hierarchy -output Adder16.db你可以按下列方式之一执行这个脚本:(1)进入dc_shell,然后一行行地输入命令;(2)进入dc_shell,利用include命令执行脚本文件:dc_shell include run.scr(3)利用dc_shell的选项-f,在UNIX命令行执行脚本文件: % dc_shell -f run.scr实验二 扫描链基于扫描路径法的可测性设计技术是可测性设计(DFT)技术的一个重要的方法,这种方法能够从芯片外部设定电路中各个触发器的状态,并通过简单的扫描链的设计,扫描观测触发器是否工作在正常状态,以此来检测电路的正确性。1 、扫描链原理数字电路由大量的组合元件和时序元件组成,时序元件具体体现为单个的触发器。系统时钟(来控制各个触发器的数据端口相应数据的输入输出。基于扫描路径法的可测性设计就是将电路中的时序元件触发器替换为相应的可扫描的时序元件扫描触发器;然后将上一级扫描触发器的输出端连接到下一级的数据输入端,从而形成一个从输入到输出的测试串行移位
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 煤矿泵房考试试题及答案
- 2025年口腔执业医师资格考试综合试题及答案
- 壁画制作工安全规范考核试卷及答案
- 内燃机装配工特殊工艺考核试卷及答案
- 2025年口腔执业助理医师资格考试模拟试题及答案
- 矿井维修钳工技能鉴定培训考试题含答案
- 河北省2025年职业病诊断医师资格考试物理因素所致职业病复习题及答案
- 推土机司机职业资格定期复审考核试卷及答案
- 生活垃圾焚烧操作工设备维护与保养考核试卷及答案
- 2025年医院感染控制与预防知识考核模拟试题及答案解析
- 给排水管类取样送检指南
- 真空包装机作业指导书
- 质子泵抑制剂临床使用管理办法
- 2023年上海16区高考一模英语听力合集附音频含答案含原文
- 中医医院处方笺模板
- GB/T 4170-2006塑料注射模零件技术条件
- GB/T 12363-2021锻件功能分类
- 水调歌头-公开课教学设计 省赛一等奖
- 《番茄工作法图解》课件
- 报价单模板及范文(通用十二篇)
- 蒂森克虏伯电梯MC2-C调试介绍
评论
0/150
提交评论