1、第8章 设计方法、流程和工具 集成电路设计系列 庄奕琪庄奕琪 主讲主讲 本章概要本章概要 设计方法 设计流程 验证方法 设计工具 1 IC设计方法 制造能力与设计能力的差距 1 10 100 1,000 10,000 100,000 1,000,000 10,000,000 2003 1981 1983 1985 1987 1989 1991 1993 1995 1997 1999 2001 2005 2007 2009 10 100 1,000 10,000 100,000 1,000,000 10,000,000 100,000,000 x x x x x x x x 10,000 1,0
2、00 100 10 1 0.1 0.01 0.001 0.01 0.1 1 10 100 1,000 10,000 100,000 10,000 100,000 1,000,000 10,000,000 100,000 1,000,000 10,000,000 100,000,000 集成规模集成规模(每个数字IC芯片上的晶体管数)(M)设计能力设计能力(每个设计人员每月设计的晶体管数(K)m25.0m35.0m10.0集成规模每年增长48 设计能力每年增长21 设计能力的增加跟不上芯片规模的提升设计能力的增加跟不上芯片规模的提升 1K-5K 10K-100K 100K-1M 1M-10M 1
3、991 1993 1995 1997 1999 2001 2003 2005 Equations Schematics RTL Behavioral VHDL/Verilog Intellectual Property(IP)Application Compilers(FIR)Hardware/Software Co-Design 1 Usable Gates 1 IC设计方法 设计方法的发展 1 IC设计方法 设计策略 层次化层次化(Hierarchy)按芯片结构层次化 按抽象程度层次化 按设计域层次化 规则化规则化(Regularity)尽量使管子的尺寸相同(管级)尽量使门的结构相同(逻辑
4、级)尽量减少使用的管子、门、模块的种类 模块化模块化(Modularity)每个模块具有相对独立的功能及通用的接口 可使多个设计者同时工作 多个设计可使用同一模块 局域化(局域化(Locality)模块只与其附近的模块有关系 避免长线互连造成的延迟等问题 1 IC设计方法 层次化设计:按设计内容层次化 顶层模块 模块A 模块B 模块C A1 A2 A3 B1 B2 C1 C2 简化复杂系统 多个设计者并行工作(某些)模块可重用,基于单元库的设计 易于实现计算机辅助设计 1 IC设计方法 层次化设计:按设计域层次化 结构域结构域 行为域行为域 物理域物理域 系统级系统级:系统技术规格和体系结构,
5、C,FORTRAN,MATLAB 行为级行为级:功能算法,数学模型(算法级,功能级),HDL RTL(Register Transfer Level)级:寄存器组合逻辑描述,HDL 门级门级:基本逻辑门级组件描述,网表 开关级开关级:晶体管级,如CMOS倒相器由一个pMOS管和一个nMOS管构成,与非门/或非门则由2个nMOS管和一个pMOS管构成,电原理图 物理级物理级:物理结构,纵向结构实现工艺,横向结构版图,工艺流程与版图 1 IC设计方法 层次化设计:按抽象程度层次化 1 IC设计方法 RTL级 下一个层次可以调用上一个层次的单元,但不能够修改上一个层次单元的内容 1 IC设计方法 层
6、次化设计:上下层次的关系 1 IC设计方法 实例1:4bit 2:1MUX(1)1 IC设计方法 实例1:4bit 2:1MUX(1)基本门级实现 求和及进位电路 1位加法器 4位加法器 4位加法器在结构位加法器在结构域的层次化设计域的层次化设计 1 IC设计方法 实例2:加法器(1)4位加法器在物理域的层次化设计位加法器在物理域的层次化设计 4位加法器 1位加法器 1 IC设计方法 实例2:加法器(2)16位加法器完整版图 带曼彻斯特进位链的4位加法器 进位产生与传播电路 曼彻斯特进位电路 输出缓冲及防闩锁电路 1 IC设计方法 实例2:加法器(3)1 IC设计方法 实例3:三角波发生器(1
7、)逻辑的层次化设计逻辑的层次化设计 实例3:三角波发生器(2)版图的层次化设计版图的层次化设计 单元版图单元版图 简单单元简单单元 复杂单元复杂单元 1 IC设计方法 版图的层次化设计 层次化结构层次化结构 层次消失层次消失 不可逆 flatten 1 IC设计方法 版图的展平操作 2选选1MUX(由反相器构成)(由反相器构成)D触发器(由三个触发器(由三个2选选1MUX构成)构成)1bit全加器(由二个全加器(由二个2选选1MUX构成)构成)1 IC设计方法 模块化设计示例 1 IC设计方法 可用性设计 目标 加快设计、验证和调试的过程 减少编码到验证之间的迭代次数 要求 完整的设计文档 规
8、范的编码 详细的解释 完备的验证环境和方法 强壮的脚本 1 IC设计方法 可重用设计:必要性 必要性 加快研发时间 降低研发成本 提升系统集成能力 实例 一个好的设计师每天大约可设计100个逻辑门或30行RTL代码(2005年前)100K门的设计大约需要1人工作1000天或者5人工作100年 10M门的设计大约需要1人工作10万天或者500人工作1年 1 IC设计方法 可重用设计:要求 面向一般用途面向一般用途:IP核具有通用性或者可配置性,适于多种应用 支持多种工艺库支持多种工艺库:软核可面向不同的工艺库进行综合,硬核可通过有效策略映射到别的工艺上 兼容多种设计环境兼容多种设计环境:如可同时
9、支持Verilog和VHDL代码,可在多种主流EDA仿真器上运行 使用标准接口使用标准接口:仅在特殊情形下才设计一些特殊、定制的接口 通过独立且可靠的验证通过独立且可靠的验证:IP核本身可独立进行并完全通过了全面、严格的测试和验证 核的适用范围必须限定核的适用范围必须限定:包括核的参数、配置方法、接口要求等 1 IC设计方法 IP核的来源 公司历史研发的积累 优点:费用低 缺点:不能满足大多数SoC设计的需要 公司内部专门研发 优点:针对性强 缺点:需要专门的可重用设计团队,需要花费比一般设计更多的时间 购买第三方IP 优点:速度快,选择范围大 缺点:费用高,需对第三方IP的规范性和质量进行判
10、断或验证 2 IC设计流程 IC开发流程 n+n+S G D+C,MATLAB 系统技术规格和体系结构 功能算法,数学模型 HDL(行为级)HDL(门级)/网表 HDL(开关级)/电原理图 基本逻辑门,RTL 晶体管电路 物理描述(版图,工艺)Bottom-up 设计设计 Top-Down设计设计 逻辑逻辑 综合综合 物理物理 综合综合 描述描述 仿真仿真 验证验证 综合综合 物理器件 HDL的作用的作用 2 IC设计流程 IC设计流程 2 IC设计流程 由底向上设计 流程流程 基本门(电路与版图)逻辑组合功能模块子系统系统总成 基于原理图,与实现工艺有关,要求设计者有微电子背景 特点特点 优
11、点:底层优化程度高,设计中大规模集成电路时的经济性好 缺点:整体把握性差,修改困难,工作量大,设计周期长,自动化程度低,资料不可重用,难以设计超大规模系统 流程 系统设计行为设计RTL级设计逻辑综合(依赖EDA工具完成)门级网表工艺实现(依赖工艺库完成,ASIC和FPGA)基于HDL语言,RTL之前与实现工艺无关,顶层设计可无微电子背景 特点 优点:整体把握好,顶层优化程度高,逐级仿真,及时修正,设计周期短,自动化程度高,资料可重用,适合超大规模系统设计(10万门)缺点:依赖EDA工具,依赖底层工艺库,设计中大规模经济性不好 2 IC设计流程 自顶向下设计 2 IC设计流程 基于标准单元的设计
12、流程 Hardware Design Specification:确定芯片总体结构、规格参数、模块划分、总线选用等 Module Design&IP Reuse:完成需自行开发模块的设计,或/和选用可复用IP模块 Top level Integration:整合所有功能模块,基于HDL,形成完整设计 Pre-layout Simulation:完成基于HDL的RTL级功能仿真,前仿真没有时序信息 Logic Synthesis:将HDL描述的电路转换成特定工艺约束条件的网表 Floorplan:确定各个模块在版图上的位置,包括I/O端口的布置、供电网络的分布等 Power Analysis:确
13、定电源引脚的位置、电源线的分布、电源线宽度等 Placement&Optimization:根据时序收敛要求,对单元的布局进行优化调整 2 IC设计流程 基于标准单元的设计流程(续1)Design for Test:插入可测试结构,以提高电路的可控性和可观测性 Clock Tree Synthesis:形成全局或局部的时钟分布网络,保证时钟的同步 Routing:完成所有节点的连接,全局布线静态时序分析详细布线 Static Timing Analysis(STA):计算所有路径上的延迟,看时序是否收敛 Signal Integrity:判断有无因时序、串扰等引入的信号完整性问题 Parasi
14、tic Extraction:提取版图上内部互连所产生的寄生电阻寄生电容,转换成延迟后供STA和后仿真使用 Post-layout Simulation:利用布局布线完成后获得的精确延迟参数和网表进行仿真,验证功能和时序的正确性 形式验证形式验证 Formal Verification:判断当前设计与正确设计的逻辑功能是否相同 Standard Delay Format:用于输入延时信息的数据文件 2 IC设计流程 基于标准单元的设计流程(续2)Engineering Change Order:发现个别路径有时序或逻辑错误时,对设计进行小范围的修改 Physical Verification:
15、对版图进行设计规则检查和网表-版图一致性检查等 Tape Out:将设计数据交付芯片制造厂 能力与需求的折中 人力、研发成本、制造成本、周期、工具、灵活性等 性能与成本的折中 集成度、工艺、封装、测试、可靠性、速度、芯片尺寸、功耗等 不同层次的规格必须统一 层次:系统、子系统、板级、模块级、芯片级 规则:下层定义需服从上层定义,否则会导致严重的设计延误 顶层规格定义必须经过系统仿真 2 IC设计流程 规格的确定 2 IC设计流程 规格定义的重要性 集成电路的规格制定并不如想象的那么简单 2 IC设计流程 综合的作用与分类 综合的作用 自动将上一个设计层次的数据转换成下一个层次的设计数据 可大大
16、减少人工消耗,提高设计效率 综合的分类 逻辑综合:将电路的HDL行为描述自动转换为门级网表 物理综合:将门级网表自动转换为版图数据 reg en_clk_eight;always(posedge clk_sys or negedge reset)begin if(!reset)FM0_enable_reg=1b0;else FM0_enable_reg=FM0_enable;end逻辑综合实例 作用 将基于HDL描述的RTL级代码自动转换成特定约束条件下的门级网表 约束条件包括时序、面积、功耗等,其中时序最关键 流程 翻译(展平):RTL描述门级布尔描述 优化:化简布尔方程 映射:基于相应的工艺库,将优化的布尔描述映射为实际的逻辑电路 2 IC设计流程 逻辑综合:作用与流程 逻辑综合流程 2 IC设计流程 逻辑综合:优化策略及工具 优化目标 以速度为第一目标,先不考虑成本 以成本为第一目标,先不考虑速度 以速度和成本折中为目标,综合考虑两个指标 优化策略 器件复用:不同的电路尽可能使用相同的器件,以减少芯片的面积,但可能会降低速度 时序重排:重排延时不同的逻辑单元的前后位置,以减少关键