物理设计(ICC)
ICC使用小结

ICC使用小结(1)ICC的输入文件MilkyWay(physical library),TLUPlus文件(interconnect文件),lib文件(logical library),netlist,constraints(sdc),floorplan文件(.fp或.def)由于ICC会使用MilkyWay数据格式,因此有必要先熟悉MilkyWay格式的产生。
(2)ICC的步骤流程ICC的流程如下:(1)import design(netlist/sdc/database)——(2)create_floorplan 或adjust floorplan——(3)placement ——(4)cts——(5)route——(6)final signoff (3)具体每一步过程及注意点(操作点)(4)Import design具体操作:set_link_library xxxset_target_library xxxcreate_mu_lib design_library –technology xxx.tf –mw_reference_library ref_library open set_tlu_plus_file –max_tluplus max_file –min_tluplus min_file –tech2itf_map map_fileread_verilog xxx.vcurrent_design xxxlinkread_def xxx.defderive_pg_connection –power_net xxx_power_net –power_pin xxx_power_pin –ground_net xxx_ground_net –ground_pin xxx_ground_pinderive_pg_connection –power_net xxx_power_net –power_pin xxx_power_pin –ground_net xxx_ground_net –ground_pin xxx_ground_pin -tieread_floorplan xxx.fp或新创建一个floorplan接下来的任务了。
Synopsys系列工具简介

Synopsys系列工具简介Synopsys的产品线覆盖了整个IC设计流程,使客户从设计规范到芯片生产都能用到完备的最高水平设计工具。
公司主要开发和支持基于两个主要平台的产品,Galaxy设计平台和Discovery验证平台。
这些平台为客户实现先进的集成电路设计和验证提供了整套综合性的工具。
Synopsys解决方案包括:System Creation(系统生成)System Verification and Analysis(系统验证与分析)Design Planning(设计规划)Physical Synthesis(物理综合)Design for Manufacturing(可制造设计)Design for Verification(可验证设计)Test Automation(自动化测试)Deep Submicron, Signal and Layout Integrity(深亚微米技术、信号与规划完整性技术)Intellectual Property and Design Reuse Technology(IP 核与设计重用技术)Standard and Custom Block Design(标准和定制模块设计)Chip Assembly(芯片集成)Final Verification(最终验证)Fabrication and Packaging(制造与封装设计工具)Technology CAD(TCAD)(工艺计算机辅助设计技术)主要包括以下工具:1.VCS (Verilog Compiled Simulator)2.DC (Design Compiler)3.ICC (IC Compiler)4.PT (PrimeTime)5.Hercules (Hercules Physical Verification)6.Star-RCXT (parasitic extraction tool)7.LEDA (LEDA Checker and LEDA Specifier)8.Formality (RTL to gate-level equivalence checking of cell-based designs)9.TetraMAX ATPG (Provides manufacturing test patterns for scan designs)1.VCS (Verilog Compiled Simulator)VCS是编译型Verilog模拟器,它完全支持OVI标准的Verilog HDL语言、PLI和SDF。
一种利用IC Compiler实现复杂情况下off-track布线的方法

/inform ation/snug/2009/ic-compiler一种利用IC Compiler实现复杂情况下off-track布线的方法徐君中国科学院计算技术研究所微处理器中心xujun@ict.ac,cn摘要随着芯片设计日渐复杂以及设计者对芯片面积最小化、性能最大化的不懈追求, 物理设计面临着越来越大的挑战, 这时候就需要工具具有良好的扩展性,通过提供给用户足够的接口,使用户能够充分利用这些接口满足自己特殊的设计要求。
本文将介绍借助ICC的可编程能力实现项目对布线的特殊需求的一种方法。
在龙芯3号二级缓存模块的物理设计阶段,我们面临着宏单元过多、布线资源严重匮乏的局面,为了将宏单元的连线以最有效的方式引出,只能让连线走在非track通道上。
我们借助ICC的可编程能力开发脚本完成了连线的非track部分,又利用ICC提供的命令将这些连线巧妙地连接到相应的元器件引脚上,最终很好的达成了我们的设计目标。
1. 引言我们经常面临一些复杂情况下的布线挑战,既要保证面积够小从而缩减成本,又要保证连线够短从而提高性能。
这时候单纯地依靠几个命令或某种流程已无法满足我们的设计需要。
我们期望工具可以提供给用户必要的接口,使我们可以从实际项目出发,扩展出我们需要的功能。
Synopsys的IC Compiler恰好满足了我们的这一需求,它以TCL语言作为用户界面,通过提供给用户对象属性以及基本命令,展现出强大的可扩展性。
较之上一代主要基于Scheme语言的Astro而言,它更加灵活、鲁棒、容易操作和掌握。
本文使用的方法成功地用于龙芯3号二级缓存模块物理设计,具有一定的通用性和启发性。
本文组织如下:第一部分提出问题,介绍项目概况,阐述我们面临的设计难点;第二部分介绍我们如何开发点工具,实现off-track布线;第三部分介绍我们如何利用工具提供给我们的命令,将我们所做的off-track连线成功的连到相应标准单元的引脚上,完成整个布线过程;文章的最后是结论。
数字芯片是怎样设计出来的?

芯片在我们的生活和工作中无处不在。
例如,交通智能卡就嵌入了一颗带有微处理器、储存单元、芯片操作系统的芯片;而手机的主板则集成了数百颗芯片,有的负责无线电收发、有的负责功率放大、还有的负责存储照片和文件、处理音频,完成指纹、虹膜、面部的识别。
当然,手机中最重要,也是价格最昂贵的还属CPU,它是手机的控制中枢和逻辑计算的中心,通过运行存储器内的软件及数据库来操控手机。
根据处理的信号类型不同,芯片可以分为数字芯片和模拟芯片。
要制造出芯片,首先要完成芯片设计。
本文将概要介绍数字芯片设计的十大流程,以及各大流程中使用的主流EDA软件。
iphone13pro的A15芯片芯片设计可以分为前端设计(即逻辑设计)和后端设计(即物理设计)。
前端设计包括以下四个步骤:前端设计(1)算法或硬件架构设计与分析在明确芯片的设计需求之后,系统架构师会把这些市场需求转换成芯片的规格指标,形成芯片的Spec,也就是芯片的规格说明书。
这个说明书会详细描述芯片的功能、性能、尺寸、封装和应用等内容。
系统架构师会根据芯片的特点将芯片内部的规格使用划分出来,规划每个部分的功能需求空间,确立不同单元间联结的方法,同时确定设计的整体方向。
这个步骤对之后的设计起着至关重要的作用,区域划分不够的,无法完成该区域内的功能实现,会导致之前的工作全部推翻重来。
设计出来的东西,必须能够制造出来,所以芯片设计需要与产业链后端晶圆的制造和封装测试环节紧密合作,工程师不但需要考虑工艺是否可以实现相应电路设计,同时需要整合产业链资源确保芯片产品的及时供给。
这里的算法构建会用到编程语言(MATLAB,C++,C,System C, System Verilog等),对于不同类型的芯片,工程师们会有不同的偏好选择。
(2)RTL code(Register Transfer Level,寄存器传输级)实现由于芯片的设计及其复杂,设计人员并不在晶体级进行设计,而是在更高的抽象层级进行设计。
集成电路EDA与验证技术课件:物理层设计工具IC Compiler

物理层设计工具IC Compiler
2.设置逻辑库 ICC中针对逻辑库的设置主要是search_path, target_library,link_library这三个系统变量及命令 set_min_library。其中search_path是一个查找目录,需要包 含所有逻辑库文件所在的目录,这样在设置targe_library和 link_library中的db文件时,只需文件名即可,不需要再加上 其存放的路径。
物理层设计工具IC Compiler
6.读入SDC文件 前面已经介绍过,门级网表只是描述了设计中各个单元 之间的电路连接关系,SDC文件则是保证电路功能正确运行 的约束文件。该步骤就是运行命令行,将SDC文件读入该设 计所使用的命令:
read_sdc $sdc_file check_timing
7.6 布局 7.7 时钟树综合 7.8 布线 7.9 芯片ECO与DFM 7.10 小结
பைடு நூலகம்
物理层设计工具IC Compiler
7.1 IC Compiler(ICC)工具发展历史
ICC与Encounter是两大EDA软件巨头博弈的产物。它们 的发展历史,也可以看作微电子EDA业界风云变幻的历史。
早在20世纪80年代后期,微电子EDA厂商即呈现出两 强对峙的局面:Synopsys基本垄断了前端技术,占有将近六 成市场;Cadence基本垄断了后端技术与验证技术,占有将 近八成的市场。
物理层设计工具IC Compiler
图7.9 读入设计网表
物理层设计工具IC Compiler
通过该步骤,设计的网表就读入到已经打开的 $my_mw_lib设计库中。Layout窗口就会将设计所要用到的 所有单元都堆在坐标原点处。读入设计网表之后的Layout窗 口如图7.10所示。
【极术公开课】新一代布局总线系统IC Compiler II 初识

极术公开课本PPT由极术社区提供,如需要观看回放请前往极术社区1Confidential © 2019 Arm China移知|半导体教育领航者初识ICC21.为什么学ICC22.NDM 与ICC23.融合技术CONTENTS为什么要学ICC2◼设计规模的挑战◼多电源域◼多电压域◼多模式◼先进工艺的挑战FINFETFDSOI◼先进工艺的挑战不断涌现的新的概念CCS NLDM OCV AOCV POCV LVF ECSM MCMMDoublepattern◼两个方向◼在原有的框架基础上进行改进◼稳定性◼学习成本低◼后期效果差◼重新设计新的框架◼学习成本提高◼初期的阵痛◼PPA 差◼bug 多◼后期效果好EDA 工具的发展ICCICCIIICCII vs ICC◼学ICC还是学ICCII?◼2014年, ICCII量产版正式发布(建议ICC)◼2020年,ICCII已经完善了6年(建议ICCII)◼Fusion Compiler=DCII+ICCII◼目前不建议◼PR部分完全与ICCII相同,脚本完全一样。
◼数据结构与ICCII一致NDM与ICCIINDM◼New Data Model:统一的数据结构◼Timing View◼包含timing power function等逻辑信息。
◼用于ICCII的时序分析,功耗分析及其优化◼Layout View◼物理形状信息(无连接信息),相当于GDS。
◼用于产生GDS◼Design View◼物理形状以及pin和连接信息◼可以用来产生Frame View◼可以用来产生flatten的网表,spef ◼Frame View◼物理信息的抽象形式。
◼进行PR优化时使用。
◼提高运行速度block library◼Design view (.design) –a complete physical view that contains the full designinformation of the cell, including placed block instances and routed nets. This is the default view type◼Frame view (.frame) –a limited physical view that contains only the information needed to perform placement of the block as an instance and routing to the ports of the instance: the block outline, pins, via regions, and routing blockages.◼Abstract view (.abstract) –a simplified view that contains only the interface information of a subdesign, used for placement and timing analysis at the next higher level of the design.◼Outline view (.outline) –a simplified view of a large child block that contains only the hierarchy information, without nets or leaf-level library cells, used for floorplan creation.新的基础架构◼ICCII是基于新的框架结构,用新的面向对象语言重写。
芯片设计前端总结

芯片设计前端总结1. 引言芯片设计前端是指芯片设计流程中的前期工作,包括需求分析、算法设计、RTL设计等。
本文总结了芯片设计前端的常见任务和流程,并对其中的关键环节进行了详细介绍。
2. 芯片设计前端任务芯片设计前端工作的主要任务包括:2.1 需求分析在芯片设计前期,需求分析是一个至关重要的任务。
设计团队需要与客户沟通,确定芯片的功能要求、性能指标、接口标准等。
需求分析的结果将极大地影响后续设计工作的进展。
2.2 算法设计芯片设计前端还需要进行算法设计,这意味着将系统级的功能转化为硬件级的实现方式。
算法设计需要考虑性能、功耗、面积等因素,以及与后续设计阶段的接口匹配。
2.3 RTL设计RTL(Register Transfer Level)设计是芯片设计的关键环节之一。
在这个阶段,设计人员需要根据算法设计的结构和功能需求,使用硬件描述语言(如Verilog、VHDL等)进行电路的逻辑设计。
2.4 验证与仿真验证与仿真是芯片设计前端不可或缺的一环。
在完成RTL设计后,设计团队需要进行功能验证、时序验证等,以确保设计的正确性和性能满足设计要求。
仿真工作可以通过软件工具模拟芯片的工作情况,提前发现问题并加以解决。
3. 芯片设计前端流程芯片设计前端的流程如下:1.需求分析:与客户沟通,明确芯片设计需求。
2.算法设计:将功能要求转化为硬件级的实现方式,考虑性能、功耗等因素。
3.RTL设计:使用硬件描述语言进行电路的逻辑设计。
4.验证与仿真:对设计进行功能验证、时序验证等工作。
其中,需求分析阶段为芯片设计前端工作的起点,验证与仿真阶段为芯片设计前端工作的终点,而算法设计和RTL设计则是中间的核心环节。
整个流程需要设计团队密切合作,不断迭代和优化设计,以确保最终的芯片设计能够满足客户的需求。
4. 关键技术和工具在芯片设计前端工作中,有一些关键的技术和工具是必不可少的:4.1 硬件描述语言硬件描述语言(HDL)是芯片设计前端的重要工具。
icc2后端设计流程

icc2后端设计流程1. 逻辑综合(Logic Synthesis):在这一阶段,工程师将设计的RTL(Register Transfer Level,寄存器传输级)描述转化为逻辑门级的电路描述。
逻辑综合工具会将RTL的代码转换为等效电路,以满足电路规格和性能要求。
2. 物理布局(Physical Layout):在该阶段,工程师需要将逻辑综合生成的电路结构进行合理的布局。
物理布局涉及到将电路元件(如逻辑门、寄存器、电缆等)放置在芯片上的位置。
合理的物理布局可以提高电路的性能和可靠性。
3. 综合布局(Floorplanning):在这一阶段,工程师需要确定将电路元件放置在芯片上的具体位置和面积大小。
综合布局要考虑到电路元件之间的连线和信号传输的最短路径。
4. 时序优化(Timing Optimization):在这一步骤中,工程师会使用时序优化工具来改善电路的时序特性,以保证电路在特定的时钟频率下正常工作。
通过对逻辑电路的优化,减少路径的延迟,并对布局进行调整,以提高时序约束。
5. 连线(Routing):在电路的物理布局确定后,需要进行连线,将各个电路元件之间的信号线连接起来。
连线过程中需要考虑到信号的延迟、功耗等因素。
6. 引脚分配(Pin Assignment):在这一阶段,为电路设计分配引脚。
引脚分配需要考虑电路的输入和输出连接,以便正确与其他器件进行通信。
7. 功耗优化(Power Optimization):在电路设计完成后,工程师还需要进行功耗优化。
这包括减少电路中的冗余部分、优化电路的布局,以及采用低功耗的设计方法,以降低功耗并提高电路的能效性。
以上是ICC2后端设计流程的主要步骤。
在每个阶段中,工程师需要借助ICC2提供的工具和算法来完成任务。
这些流程顺序要根据具体的电路规模和设计要求来确定,工程师还需要进行多次迭代和调整,以优化电路设计的性能和可靠性。
通过ICC2后端设计流程,工程师可以高效地完成集成电路的设计和验证工作。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
布图规划 先从脚本中把derive_pg_connection – power_net VDD –power_pin VDD – ground_net VSS –ground_pin VSS和 derive_pg_connection –power_net VDD – ground_net VSS –tie 粘入icc_shell,这两 句告诉工具电源地的连接信息。 再定义pad 的摆放read_io_constraints ../inputs/io.tdf,io.tdf文件中定义了pad的摆 放。 再按视频中方式initialize floorplan
22
利用理想的时钟网络显然过于乐观,为了进一步接近实际的时 钟,skew , latency ,transition 的影响应当被模拟进来
23
24
布局
实际的时钟树网络无法保证时钟源点到该时钟域内所有寄存 器的clk端的延时是绝对相等的,时钟源点到不同寄存器的 clk端的延时之差称之为skew(偏斜),我们用 set_clock_uncertainty这个命令去模拟skew的影响。如 set_clock_uncertainty 0.3,单位是ns(取决.tf工艺文件里面 所设单位) 时钟域内寄存器的clk端可以称之为汇点(sink),时钟源点 (source)到汇点的延时称为latency,我们 可以用 set_clock_latency 命令去模拟源点到汇点的延时,如: set_clock_latency 1 实际的时钟信号跳变时间是不可能为零的,所以我们可以用 set_clock_transition去模拟这个跳变时间 如 set_clock_transition 0.1
11
布图规划
3、Pads fillers Pads fillers 为图中Filler所示,其作用为连接两个 两邻的pads(从衬底到各层金属的相连) P/G rings 所有信号pads、电源地pads、fillers、corners都 是有电源地的引脚的,用金属线把这些引脚相连 ,形成pad area上的一个环,称为P/G rings,如果 所有的pads都是无缝排列的,那么pads上的自身 的金属已经相互连接成了P/G ring。
13
布图规划 Floorplan 请参看PNR/scripts/run_icc_record.tcl中 ####Floorplan阶段脚本 Shell 下键入icc_shell -64bit |tee log.1027 启动ICC 把run_icc_record.tcl中####Floorplan以上 部分复制粘贴入icc_shell中即可完成参考库 的调用、设计库的创建的工作。 由于floorplan阶段手工活较多,故在此叙述 也较详细,并辅以视频。
Pad cell 包括信号pad、电源地pad
Macro 即设计中用到的一些宏模块
7 下页以图讲解stand cell、pad cell、macro
四个conner位于芯片的四个角, 起到连接四边IO pad 的作用。
8
布图规划 floorplan(布图规划)的主要内容包含了对芯片 大小(die size)的规划、芯片设计输入输出(IO )单元的规划、宏模块的规划、电源网络的设计 等 floorplan在整个流程中具有十分重要的地位 ,因 为floorplan一旦确定,则整个芯片的面积就定下 来了,同时它也与整个设计的timing和布通率( 布线能否布通)有着密切的关系。基本上流程中 的反复主要是发生在这一步中。如果这一步做得 比较好,则后面once pass的几率就比较高,反之 如果回溯到这一步,则花费的时间开销就会很大 。 floorplan是物理设计中手工程度很大的工作
18
布局
ICC 会计算每个单元的延时和每条线的延时 单元的延时信息由foundry提供的单元库文件提供 为了计算线延时,ICC必需知道每条线的寄生电阻和寄生 电容
19
布局
在布局阶段,实际的金属线是不存在的,故需要有 一种估计的方法估计线延时。 在由RTL代码到门级网表的综合过程中,也需要用 到STA,综合阶段对延时的估计基于WLM(Wire Load Model)。根据fanout估计R和C,这显然和最 终的版图的实际结果有很大出入。
32
时钟树综合(CTS)
由于时钟树的重要性,工具采用不同于一般布线规则的 时钟树自己的布线规则
33
时钟树综合(CTS)
首先定义non default routing rule
3
4 图1
5 图2
6
库的建立
做物理设计首先要建立reference library Reference library 包括以下几部分:stand cell library、pad library、macro cell(或IP library)。 Stand cell 包括inverters、buffers、ands、ors、nands、 muxes、flip-flops等
25
布局
Core area 内标准单元并不是可以随意摆放的,所有 的标准单元被设计成等高不等宽的,这样所有的标准 单元可以被放入同样的placement row里面,如图所 示
26
Timing driven placement
Placement 是时序驱动的,关键路径上单元会被放得近一些,placement 是时序驱动的同时,也是拥塞驱动(congestion driven)的,标准单元的信 号连接最终需要布线的,如果一个区域内布线要求大于布线资源的话,就 导致了拥塞,显然标准单元过密集得摆放在一起就容易导致拥塞,timing 和congestion 就变成了一对折衷的因素了。
16
实验中的电源地网络
17
布局 在floorplan结束后,芯片的大小,电源网络 ,macro的位置已经确定了,接下来的工作 是标准单元的布局工作。 布局工作是时序驱动(timing driven)的,即 布局出来的结果要满足时序的要求。 ICC时序分析采用静态时序分析(STA), STA必须要获得单元延时(cell delay)和线延 时(net delay)
9
布图规划
通常情况下,一个芯片由core area 和pad area组成
10
布图规划
Pad area 由以下几个部分组成: 1、Input/Output/InOut pads 如右图中Reset 2、Power pads and conner pads 右图上右上角那个CornerUR为一个corner pads Conner pads 的作用是连接其两边的Pads(连接衬 底以及衬底以上的各个层) VDD VSS 为Power pads ,其对外连接供电的封装 引脚,对芯片则起到供电的作用,Power pads 可 以分为对core 供电的pads 和对IO pads 供电的 pads ,所有的Pad都是由晶体管以及各层金属构成 的,Pad 也是一个cell。
20
布局
布局过程中,每个单元是有自己的物理位置的,我们就不再采 用WLM去估计延时了,我们采用虚拟布线(virtual routing)技术 去估计延时。
21
布局
综合阶段的时钟信号和高扇出信号被定义成理想 的和don’t_touch(综合工具不对其进行插buffer的 操作)的 布局阶段对高扇出(如reset、set、enable等)要进 行高扇出综合(HFS)。 ICC 布局阶段的一个命令place_opt内嵌了自动高 扇出综合(Automatic High Fanout Synthesis) 时钟树的处理是在place之后,CTS(Clock Tree Synthesis)阶段进行时钟树综合的 在布局阶段我们需要模拟时钟树的影响
12
布图规划 Floorplan 阶段在core area 内要确定macro 的位置,可以通过飞线显示macro的pins与 io或其它macro的pins的连接关系,来帮助 确定macro的位置 Floorplan要进行预布线,即布电源地网络 。概述里面已经讲到从 floorplanplacementclock tree synthesisrouting的流程。有两个地方做 了布线的工作即floorplan阶段的电源地网络 的布线、routing阶段的信号的详细布线。
物理设计
物理设计是把电路信息转换 成foundry厂可用于掩膜的 版图信息的过程,它包括数 据准备、布局、时钟树综合 、布线及DRC、LVS等步骤 如右图所示
参考单元库
时序约束文件
门级网表 数据准备
工艺文件
布局规划
布线
布局
静态时序分析,后仿真
常用的布局布线工具有 Synopsys公司的IC Compiler、 Astro和 Candance公司的SOCEnconter。
2
时钟树综合
DRC、LVS
流片
IC Compiler是synopsys公司继Astro之后推出的另一款P &R工具(芯片设计的物理实施通常被简称为布局布线, place and route),本课件中出现的一些图中的Astro 工 具可以当作IC Compiler来理解。 如下页图1所示,输入IC Compiler 的有:门级网表、库 文件、时序约束。 输出IC Compiler 的是layout(常用格式是GDSII)。
27
布局 在macro周围我们会打上placement blockage,工具不会在placement blockage 区域内摆放标准单元,macro处pin处需要 较多的布线资源,如果macro周围较近区域 被放置了标准单元,就可能导致拥塞的产 生。故需要在macro周围打上blockage,在 实验视频中可以看到这一步。
28
时钟树综合(CTS)
在大规模集成电路中,大部分时序元件的数据传输是由时 钟同步控制的时钟频率决定了数据处理和传输的速度,时 钟频率是电路性能的最主要的标志。在集成电路进入深亚 微米阶段,决定时钟频率的主要因素有两个,一是组合逻 辑部分的最长电路延时,二是同步元件内的时钟偏斜 (clock skew),随着晶体管尺寸的减小,组合逻辑电路的开 关速度不断提高,时钟偏斜成为影响电路性能的制约因素 。时钟树综合的主要目的是减小时钟偏斜。 以一个时钟域为例,一个时钟源点(source )最终要扇出到 很多寄存器的时钟端(sink),从时钟源扇出很大,负载很 大,时钟源是无法驱动后面如此之多的负载的。这样就需 要一个时钟树结构,通过一级一级的buffer去驱动最终的 叶子结点(寄存器)。