1 / 72

逻辑综合基本概念

逻辑综合基本概念. 主要内容. 1 、逻辑综合基本概念 a) Synopsys 综合工具及相关工具 b) 逻辑综合环境 c) 对象、变量和属性 d) 查找设计对象 e) Synopsys 格式 f) 数据组织格式 g) 设计输入 2 、逻辑综合入门 a) 使用图形界面和菜单方式 b) 书写脚本( scripts) 方式. 综合的定义. 逻辑综合:决定设计电路逻辑门的相互连接。 逻辑综合的目的:决定电路门级结构、寻求时序和与面积的平衡、寻求功耗与时序的平衡、增强电路的测试性。

eros
Download Presentation

逻辑综合基本概念

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. 逻辑综合基本概念

  2. 主要内容 1、逻辑综合基本概念 a) Synopsys综合工具及相关工具 b) 逻辑综合环境 c) 对象、变量和属性 d) 查找设计对象 e) Synopsys格式 f) 数据组织格式 g) 设计输入 2、逻辑综合入门 a) 使用图形界面和菜单方式 b) 书写脚本(scripts)方式

  3. 综合的定义 • 逻辑综合:决定设计电路逻辑门的相互连接。 • 逻辑综合的目的:决定电路门级结构、寻求时序和与面积的平衡、寻求功耗与时序的平衡、增强电路的测试性。 • 逻辑综合的过程:首先,综合工具分析HDL代码,用一种模型(GTECH) ,对HDL进行映射,这个模型是与技术库无关的;然后,在设计者的控制下,对这个模型进行逻辑优化;最后一步,进行逻辑映射和门级优化,将逻辑根据约束,映射为专门的技术目标单元库(target cell library)中的cell,形成了综合后的网表。

  4. Synopsys产品 • Library Compiler • Design Compiler和Design Vision • Physical Compiler • Prime Time • DFT Compiler • Formality

  5. 1.1 Synopsys综合工具及相关工具 包括:设计编译器(Design Compiler)和设计分析 器(Design Analyzer) • 是逻辑综合工具,根据设计规范和时序约束,提供最佳的门级综合网表,除了高层次综合能力,还包含一个静态分析引擎。

  6. Design Compiler(DC) 􀂃 是Synopsys逻辑综合工具的命令行接口, 在Unix环境下输入dc_shell或dc_shell –t启动。 • dc_shell是基于Synopsys自身语言的原有格式 • dc_shell –t使用标准的TCL语言。 Design Vision(DA) • Design Vision是DC图形化的前端版本,通过调用Design_Vision&启动,支持电路原理图生成,可以通过点对点高亮来显示及分析关键路径。

  7. 设计编译器(DC)和设计分析器(DA) • 包括非常强大的逻辑综合软件包,提供了基于设计规范的门级逻辑综合和时序约束。 • 除了高层次逻辑综合,它还具有静态时序分析机制、测试综合、FPGA解决方案和与版图工具连接等。 • DA:图形界面,直观、容易入门 • DC:自动化设计程度高.提高设计效率、减小 人为因素

  8. Design Compiler工具的输入与输出

  9. 相关工具(1):库编译器(Library Compiler) • 工艺库建库工具 • 任何ASIC设计都具有一组逻辑单元的工艺库。库包括库申明、库属性、库应用环境和每个单元的功能描述、时间延时、面积和其他相关的信息。 • LC首先分析库的文本信息(.lib格式)的完整性和正确性,然后转换成所有Synopsys应用程序都能使用的格式(.db格式)。 • 在Unix环境下,库编译器是输入lc_shell启动的。所有的LC性能也能够在dc_shell(Design Compiler环境)中使用。

  10. 相关工具(2) Physical Compiler • 是Synopsys的一个新工具,是DC的一个超集。除了包含DC全部的综合与优化功能外,还提供根据时序和面积约束同时优化放置单元的能力。 • PHC由输入psyn_shell调用,也可以通过psyn_gui使用单独的GUI版本,虽然比较慢, psyn_gui为用户提供了逻辑与电路原理之间的切换。 • Psyn_shell可以使用DC_shell命令,反之不可

  11. 相关工具(3): PrimeTime • DC可以完成模块级的静态时序分析。 • PrimeTime是Synopsys高效的、整个芯片级设计进行的静态时序分析工具。静态时序分析是针对版图前和版图后的门级网表进行的。 • PT比DC内部的静态时序分析机制快得多。它也提供了更强的分析能力,包括文本的和图形界面的。与Synopsy其它工具不同,它是基于Tcl语言的,因此具有更加强大的分析和调试设计的能力。 • 是一个独立运行的工具,既可以命令方式调用,也可以图形方式调用。Unix命令行键入pt_shell,使用图形方式则需要键入Primetime。

  12. 相关工具(4):测试编译器(Test Compiler) • TC是Synopsy测试插入工具,用来在设计中插入DFT(Design For Test)电路,如扫描链插入和边界扫描。 • TC和DC工具相结合使用。 • 所有TC命令都是直接在dc_shell中执行。

  13. DFT Compiler: • 是包含在DC中的测试插入工具,用于设计插入DFT特性,如扫描插入或边界扫描。 • 所有的DFT命令直接从DC_shell和psyn_shell调用。

  14. Formlity • 是Synopsys的形式验证工具,是逻辑等价检测工具,具有增强的图形调试能力。

  15. DC简介 • Synopsys Design Compiler,是一个基于UNIX系统,通过命令行进行交互的综合工具,除了综合之外,它还含有一个静态时序分析引擎及FPGA和LTL(links-to-layout)的解决方案。 • script文件:由DC的命令构成,可使DC自动完成综合的整个过程。 • DC支持的对象、变量、属性 • DC支持的文件格式及类型 • DC在HDL代码中的编译开关,控制综合过程 • Translate_off/translate_on:指示DC终止或开始verilog 源代码转换的位置。 • full_case:阻止case语句在不完全条件下生成latch。

  16. DC Overview

  17. 综合阶段 • 包括三个阶段: • 转换(translation) :将高层语言描述的电路用门级的逻辑来实现 • 优化(optimization):去掉电路中的冗余单元,并对不满足限制条件的路径进行优化 • 映射(mapping):映射到由制造商提供的工艺库上。

  18. 运行接口

  19. b)逻辑综合环境 (1)启动文件(startup files) DC : .synopsys_dc.setup 定义工艺库的路径和其他用于逻辑综合的参数。 在启动软件的时候,DC按下列顺序读入启动文件的: 1) Synopsys安装目录下的启动文件: $synopsys/admin/setup 2) 用户根目录下的启动文件; 3) 项目工作目录下的启动文件;

  20. .synopsys_dc.setup启动文件 company =“Fudan University”; designer =“Your name”; technology =“0.6 micro csmc”; search_path =search_path+{“.” ~/csmc06/lib” }; target_library ={csmc06core.db}; link_library ={*, csmc06core.db, csmc06pad.db}; symbol_library ={csmc06core.sdb, csmc06pad.sdb};

  21. (2)系统库变量 search_path:定义库文件所在的搜索路径 连接库(link_library):是提供门级网表实例化的 基本单元,也就是门级网表实例化的元件或单元都 来自该库。连接库定义为标准单元的db格式的库文 件加上pad db格式的库文件,加上ROM,RAM等 宏单元库文件 目标库(targe_library):是DC在mapping时将设 计映射到特定工艺所使用的库,就是使用目标库中 的元件综合成设计的门级网表

  22. 系统库变量 • 符号库(symbol_library):是工艺库元件的图形符号表示,用来图形化显示生成的门级网表。

  23. c)对象、变量和属性 • 为了使逻辑综合过程更加方便,Synopsys支持许多的对象、变量和属性。 • 使用这些参数,设计人员可以写出强大的dc_shell脚本文件来自动进行逻辑综合。

  24. (1)设计对象:8种类型 • 设计(Design) • 单元(Cell) • 参考(Reference) • 端口(Port) • 管脚(Pin) • 线网(Net) • 时钟(Clock) • 库(Library)

  25. (1)设计对象:8种类型

  26. EX: Design module top(A,B,C,D,CLK,OUT1); 􀂾input A,B,C,D,CLK; 􀂾output OUT1; 􀂾…. 􀂾 INV U2(.A(BUS0),.Z(INV0)); 􀂾…. endmodule Port cell pin reference

  27. (2)变量 • 变量是DC用于存储信息的符号。 • 变量,一种标识符,DC用于存储信息,可做为命令的操作参数。 • DC预定义的变量,可用它获得综合过程中的有关信息,如dc_shell_status; • DC预定义的变量总有一个缺省值,用户可定义另外的值,如; • dc_shell>vhdlout_use_package={library IEEE.std_logic_1164;\ • library STD_LIB;}

  28. 信息是与生成最后网表的指令相关的,或者它包含使用者用于自动逻辑综合所定义的值。信息是与生成最后网表的指令相关的,或者它包含使用者用于自动逻辑综合所定义的值。 • 有些变量是DC预先定义的,可以被设计人员用来获得存储在变量中的当前值。 • 所有的DC变量列表可以通过使用dc_shell命令获得:list –variables all • Ex:bus_naming _style “%s[%d]” company “Fudan University”

  29. 用户定义的变量,用于自动化综合的过程。如,可定义一个变量,存储某个时钟域的flop的个数。用户定义的变量,用于自动化综合的过程。如,可定义一个变量,存储某个时钟域的flop的个数。 • 定义变量:dc_shell>designer=“myname”; • 获得UNIX的环境变量: dc_shell>designer=get_unix_variable(“USER”) • 显示变量的值: dc_shell>List target_library • target_library=“cbacore.db” • 列出所有的变量: dc_shell>List – variable all • 移去变量: dc_shell> remove_ variable designer,变量没有移去之前,不得重新定义。 • 注:变量值不会被保存在设计数据库中。

  30. 变量也可以从DC中去除掉:remove_variable variable name

  31. (3)属性 • 属性在本质上和变量相似,都为了存储信息。然而,属性存储特定设计对象的信息,如线网、单元和时钟。 • 属性可以通过以下命令进行设置和读出: set_attribute <object list> <attribute name> <attribute value> get_attribute <object list> <attribute name> • EX:get_attribute find( port, din*) load dc_shell>get_attribute STD_LIB default_max_transition

  32. d)查找设计对象 • DC中最有用的命令之一就是find命令。 • 在逻辑综合过程,定位到对象是非常必要的。 • Find命令用来定位设计中的或者库中的单元。 • Find <type> <name list> -hierarchy (1)Type指的是对象类型:设计、端口、参考、单元、时钟、连线、管脚和库。

  33. (2)Name list 可选项,它用来定义dc_shell环境下的设计或者库。如果省略,将针对这个对象类型的所有对象。 (3)Find命令中最重要的参量是-hierarchy选项。它可以用来强制在整个层次设计中查找。 • EX:dc_shell>find port //列出当前设计的所有端口

  34. 其他有用的命令 • 寻找库(csmc06core库)中max_transition的值和库中倒相器IN01D1的面积属性。 get_attribute csmc06core default_max_transition get_attribute csmc06core/IN01D1 area help attribute命令可以列出DC中所有属性。

  35. 例如:

  36. 其他有用命令: report_port –verbose report_clock reset_design和list -libraries

  37. e)Synopsys格式 • 所有synopsys工具都支持和共享一种内部共同结构称为“.db”格式。 • db格式文件是编译的二进制格式,它可以表示文本数据、RTL级代码、映射后门级网表和synopsys库 • db文件还能包含施加在设计中的任何约束 • 所有synopsys工具都能支持所有HDL:包括Verilog、VHDL和EDIF等,包括读入和写出这些格式。

  38. f)数据组织格式 􀂾使用文件的后缀进行分类: • 􀂾Scripts文件: <filename>.scr • 􀂾RTL级Verilog文件: <filename>.v • 􀂾综合后Verilog网表: <filename>.sv • 􀂾RTL级VHDL文件: <filename>.vhd • 􀂾综合后VHDL文件: <filename>.svhd • 􀂾EDIF文件: <filename>.edf • 􀂾Synopsys数据文件: <filename>.db • 􀂾报告文件: <filename>.rpt • 􀂾日志文件: <filename>.log

  39. g)设计输入 • 􀂾DC提供了下面两种方式读入设计: • 􀂾read命令 • 􀂾analyze&elaborate命令(先分析语法等,再构成具体逻辑)

  40. g) read与analyze&elaborate的不同之处

  41. 2、逻辑综合入门 a) 使用图形界面和菜单方式 • 逻辑综合工具Synopsys Design Analyzer • 在Unix环境下,输入da&启动Design Analyzer

  42. 1)、设置库文件 • Stepup->Defaults

  43. 2)、读入设计文件 • File->Analyze

  44. File->Elaborate

  45. 工作温度条件及线模型约束

  46. Attributes ->Operatin Environment-> Wire Load

  47. Attributes ->Operatin Environment->Operating Condition

  48. Environmental attributes • Set load

  49. Environmental attributes小结 • 􀂾Set_operating_conditions • 􀂾Set_wire_load • 􀂾Set_load

More Related