芯片后端验证
layout view 上亦會以閃動方式顯示錯 誤。
1芯4 片后端验证
版图验证工具-DIVA
分析错误(Explain)
1芯5 片后端验证
版图验证工具-DIVA
click 於閃動處以得悉所違犯 rule 的說明
在 CIW 上所看到違犯 rule 的 項目
2芯片后端验证
版图验证工具-DIVA
❖ Diva -Design Interactive Verification Automation
DIVA 是 Cadence软件中的验证工具集, 用它可以找出并纠正设计中的错误.它除了可 以处理物理版图和准备好的电气数据,从而进 行版图和线路图的对查(LVS)外。还可以在 设计的初期就进行版图检查,尽早发现错误并 互动地把错误显示出来,有利于及时发现错误 所在,易于纠正。
版图验证
❖ IC 后端流程图:
1芯片后端验证
Cadence 版图验证工具
Diva
Diva 是 Cadence 的版图编辑大师Virtuoso集 成的交互式版图验证工具,具有使用方便、操 作快捷的特点,非常适合中小规模单元的版图 验证。
Dracula
Dracula(吸血鬼)是 Cadence 的一个独立的 版图验证工具,按批处理方式工作,功能十分 强大,目前是完整芯片验证的标准。
❖ 提取层次
Flat Hierarchical Micro
1芯8 片后端验证
版图验证工具-DIVA
Extractor 界面
1芯9 片后端验证
版图验证工具-DIVA
Extract 主要 是抽取出一 些參數來提 供 LVS 時做 比對用。
查看 CIW 上出現 no error 後再到 library browser 就可看到一個 extracted view
同 样 , 可 以 选 择 Verify-Markers-Explain 来 看 错 误的原因提示。选中该菜单后,用鼠标在版图上出错 了的地方单击就可以了。也可以选择Verify-MarkersDeபைடு நூலகம்ete把这些错误提示删除。
1芯3 片后端验证
版图验证工具-DIVA
在 CIW 上可以看到檢查過程的訊息, 並
local。
remote 表示在远程机器上运行。 Remote Machine Name 远程机器的名字。
1芯2 片后端验证
版图验证工具-DIVA
❖ Diva 查错:
错误在版图文件中会高亮显示,很容易观察到。 另外也可以选择Verify-Markers-Find菜单来帮助找错。 单击菜单后会弹出一个窗口,在这个窗口中单击apply 就可以显示第一个错误。
ERC
LVS
6芯片后端验证
版图验证工具-DIVA
❖ DRC:对 IC 版图做几何空间检查,以确保线路能够被
特定加工工艺实现。
❖ ERC:检查电源、地的短路,悬空器件和节点等电气
特性。
❖ LVS:将版图与电路原理图做对比,以检查电路的连
接,与MOS的长宽值是否匹配。
❖ LPE:从版图数据库提取电气参数(如MOS的W、L值
2芯0 片后端验证
版图验证工具-DIVA
❖ LVS
2芯1 片后端验证
BJT、二极管的面积,周长,结点寄生电容 等)并以Hspice 网表方式表示电路。
7芯片后端验证
版图验证工具-DIVA
❖ DIVA工具流程
8芯片后端验证
版图验证工具-DIVA
❖ Design Rule Checking
9芯片后端验证
版图验证工具-DIVA
DRC 界面
1芯0 片后端验证
版图验证工具-DIVA
3芯片后端验证
版图验证工具-DIVA
Diva 工具集组成: 1.设计规则检查(iDRC) 2.版图寄生参数提取(iLPE) 3.寄生电阻提取(iPRE) 4.电气规则检查(iERC) 5.版图与电路图一致比较(iLVS)
4芯片后端验证
版图验证工具-DIVA
❖ Remark:
1. Diva中各个组件之间是互相联系的,有时 候一个组件的执行要依赖另一个组件先执 行。例如:要执行LVS就先要执行DRC。
检查。
11芯片后端验证
版图验证工具-DIVA
Switch Names
在DRC文件中,我们设置的switch在这里都会出现。这个选项可 以方便我们对版图文件进行分类检查。这在大规模的电路检查中 非常重要。
Echo Commands 选上时在执行DRC的同时在CIW窗口中显示DRC文
件。
Rules File 指明DRC规则文件的名称,默认为divaDRC.rul Rules Library 这里选定规则文件在哪个库里。 Machine 指明在哪台机器上运行DRC命令。 local 表示在本机上运行。对于我们来说,是在本机运行的,选
,必須一一解決,直到 DRC
check 完全 no error 為止,並做
Save。
按 Apply 會一 一解釋所違犯 的 rule
可以清除閃 動的標記
1芯6 片后端验证
版图验证工具-DIVA
❖ Extractor
1芯7 片后端验证
版图验证工具-DIVA
❖ Extractor 功能
提取器件和互联信息用于 ERC 或 LVS 提取网表 提取有寄生参数的版图网表用于模拟
2. 运行 Diva 之前,要准备好规则验证文件, 这些文件有默认名称:做DRC时的文件应 以divaDRC.rul命名,版图提取文件以 divaEXT.rul命名。做LVS时规则文件应以 divaLVS.rul命名。
5芯片后端验证
版图验证工具-DIVA
❖ DIVA功能
DRC
Extractor
Checking Method指的是要检查的版图的类型:
Flat 表示检查版图中所有的图形,对子版图块不检查。 Hierarchical利用层次之间的结构关系和模式识别优化,检查电路
中每个单元块内部是否正确。 hier w/o optimization 利用层次之间的结构关系而不用模式识别
优化,来检查电路中每个单元块 。 Checking Limit 可以选择检查哪一部分的版图: Full 表示查整个版图 Incremental 查自从上一次DRC检查以来,改变的版图。 by area 是指在指定区域进行DRC检查。一般版图较大时,可以分块
《芯片后端验证》课件
芯片后端验证的流程
1
设计与实现
2
基于需求规范进行电路、布局和时序
设计,并进行物理层面的实现。
3
性能评估
4
对芯片的功能、性能和可靠性进行全 面评估和测试,确保达到设计要求。
需求分析
确定和收集芯片设计和验证的需求, 包括功能、性能和电气规范。
Synopsys Verification IP自动 化测试平台
用于创建和执行自动化测试环境,加速芯片 验证过程。
Keysight SystemVue射频系统 仿真器
用于对射频芯片进行系统级仿真和验证,检 测和调试射频问题。
芯片后端验证的案例分析
海思鸿芯麒麟9000芯片 的后端验证
详细介绍了海思鸿芯麒麟9000 芯片在后端验证过程中遇到的 问题和解决方案。
仿真与验证
使用电路仿真、综合、时序分析和特 定电路分析等技术,对芯片进行验证 和调试。
芯片后端验证的技术
电路仿真技术
通过模拟和验证电路的行为,检测和解决潜 在的设计错误和问题。
时序分析技术
分析电路内部的时序关系,确保数据在正确 的时间到达目的地。
电路综合技术
通过将高级设计描述转化为可实现电路的工 具,进行电路的逻辑综合和优化。
2 各种芯片后端验证 3 未来芯片后端验证
技术的应用场景
技术的发展与应用
介绍了电路仿真、综合、
前景
时序分析和特定电路分
展望了人工智能、虚拟
析等技术的具体应用场
验证和自动验证等技术
景。
在芯片后端验证芯片的后端验证
soc验证的认识
soc验证的认识SOC验证,即系统级芯片验证(System-on-Chip Verification),是指对集成电路系统进行全面验证的过程。
在SOC设计中,集成了多个功能模块,包括处理器、内存、外设等,因此需要进行验证以确保整个系统的功能和性能符合设计要求。
SOC验证的目标是发现和解决集成电路系统中可能存在的缺陷和问题,确保系统在实际使用中能够正常运行。
SOC验证的重要性不言而喻。
首先,验证是保证集成电路系统质量的关键一环。
在SOC设计中,各个功能模块的正确性和一致性对整个系统的性能和可靠性至关重要。
通过验证,可以发现和解决设计中的错误和缺陷,提高系统的稳定性和可用性,减少后期修复和维护的成本。
SOC验证有助于提高设计效率和节约开发时间。
在SOC设计中,验证是一个复杂而耗时的过程。
通过使用SOC验证工具和方法,可以自动化验证流程,提高验证的效率,减少人力资源的投入。
同时,验证可以在设计周期的早期发现问题,避免在后期重新设计或修改,节约开发时间和成本。
SOC验证的方法和技术也在不断发展和创新。
传统的SOC验证主要依赖于仿真和测试,通过生成测试用例和模拟运行来验证系统的正确性。
然而,随着集成电路系统规模的不断扩大和复杂性的增加,传统验证方法已经不能满足需求。
因此,人们提出了基于形式化验证、模型检测、虚拟平台等新的验证方法和工具,以提高验证效率和准确性。
除了验证集成电路系统的正确性,SOC验证还需要考虑系统的安全性。
随着网络技术和物联网的发展,SOC系统的安全性面临越来越多的挑战。
黑客攻击、信息泄露、软件漏洞等安全威胁需要通过验证手段进行防范和应对。
因此,SOC验证中的安全验证成为了一个重要的研究领域,人们提出了一系列安全验证方法和技术,以确保SOC系统的安全性。
SOC验证在现代科技发展中起着重要的作用。
通过验证集成电路系统的正确性和安全性,可以提高系统的质量和可靠性,节约开发时间和成本。
SOC验证的方法和技术也在不断创新和发展,以适应日益复杂和安全的SOC系统需求。
芯片eda验证流程
芯片eda验证流程1.引言1.1 概述概述芯片是现代电子产品的核心组成部分,它们承担着诸多关键功能的实现。
然而,芯片的设计与制造是一项复杂而严谨的过程,需要多个环节的验证与测试来确保其性能和可靠性的有效发挥。
EDA(Electronic Design Automation)验证流程是芯片设计中非常重要的一环。
它是指利用计算机辅助工具和相应的软件来分析和验证芯片设计的过程。
通过EDA验证流程,设计工程师可以发现和解决设计中的问题,确保芯片设计在满足要求的情况下能够正常工作。
一般而言,EDA验证流程包括了设计规范的制定、电路仿真、逻辑综合、布局布线等多个步骤。
在设计规范制定阶段,工程师需要明确芯片的功能需求、性能指标、功耗要求等,并制定相应的设计规范和约束。
接下来,通过电路仿真和逻辑综合,设计工程师可以验证芯片的电气特性、逻辑正确性等。
最后,通过布局布线,工程师可以优化芯片的物理结构,提高电路性能和布局的可靠性。
EDA验证流程的核心在于验证与测试。
在验证过程中,设计工程师需要使用各种工具和技术,如SPICE模拟器、逻辑验证、功耗分析等,来检测芯片设计中的问题并进行修正。
同时,在测试阶段,工程师会使用特定的测试工具和技术,如加载板、测试软件等,来验证芯片的功能是否满足要求。
通过EDA验证流程,设计工程师能够全面、系统地验证芯片设计的各个环节,确保其性能和可靠性的有效发挥。
同时,EDA验证流程也为芯片设计提供了一套规范化的标准,使得设计工作更加可控和可追溯。
总而言之,EDA验证流程在芯片设计中具有重要的意义和作用,它为芯片设计的成功实施提供了有力支持。
文章结构部分的内容应该包括该长文的章节和子章节的组织方式,以及每个章节的主要内容概述。
根据给定的目录:2. 正文2.1 EDA验证流程概述2.2 EDA验证流程要点文章结构部分的内容可以如下所示:文章结构如下:1. 引言1.1 概述1.2 文章结构1.3 目的2. 正文2.1 EDA验证流程概述在这一节中,我们将介绍芯片EDA验证流程的概念和基本流程。
芯片设计后端知识点
芯片设计后端知识点芯片设计的后端阶段是一个非常重要的环节,它涉及到芯片的物理实现和验证。
在这个阶段,设计工程师需要熟悉一系列关键的知识点,以确保芯片的性能、功耗和可靠性等方面得到有效的优化。
本文将介绍几个与芯片设计后端相关的重要知识点。
一、物理实现物理实现是芯片设计的核心环节,它包括了门级综合、布局布线和时序分析等步骤。
1. 门级综合门级综合是将逻辑门级的RTL描述转化为门级网表的过程,其目的是为了将逻辑电路实现为具体的门级电路。
在门级综合过程中,需要考虑到电路延时、功耗和面积等因素,以达到设计的性能指标。
2. 布局布线布局布线是将门级网表转化为物理结构的过程,包括将逻辑电路布置在芯片上,并且进行电路的连线。
布局布线的目标是最小化电路面积,同时保证电路的正常工作。
3. 时序分析时序分析主要是为了确保电路在不同的时钟周期下能够正确工作。
在时序分析中,需要考虑到时钟信号的传输延迟、电路中的时序约束等因素。
通过时序分析,可以预测电路的性能和稳定性。
二、功耗优化功耗是芯片设计中一个非常重要的指标,尤其是在移动设备和低功耗应用中。
在芯片设计的后端阶段,需要采取一系列的措施来对功耗进行优化。
1. 时钟树设计时钟树是芯片中用于分发时钟信号的网络。
设计工程师需要通过合理的时钟树设计,减少时钟信号的传输延迟,从而降低功耗。
2. 电源网设计电源网是芯片中用于供电的网络。
设计工程师需要通过合理的电源网设计,减小供电噪声和功耗损耗,以提高芯片的可靠性和效率。
3. 功耗分析和优化在物理实现的过程中,需要进行功耗分析,以确定芯片的功耗情况,并采取相应的措施进行优化。
例如,通过减少电流泄漏、优化电路结构等方式来降低功耗。
三、时序约束时序约束是芯片设计中的重要指导,它规定了电路中各个信号的时序关系,确保电路能够按照指定的时钟周期进行工作。
1. 输入输出延迟时序约束中需要考虑到输入输出的延迟情况,即在输入信号发生变化后,相应输出信号需要在指定的时间内出现。
芯片fpga验证流程
芯片fpga验证流程1. 原理图设计FPGA验证的第一步是进行原理图设计,即将设计的电路拆分成逻辑门、时钟、控制器等基本部件,并将这些部件根据需要布局和布线。
由于FPGA具有可编程性,因此一般使用HDL(Hardware Description Language)语言进行设计和模拟。
2. 仿真验证在进行FPGA设计之前,需要进行仿真验证,以保证设计的正确性。
使用仿真工具对设计的电路进行模拟,可以快速检测出设计中的错误和不足之处。
仿真验证需要注意时钟同步、数据传输、芯片会场布局等问题。
3. 物理验证在完成电路的设计后,需要进行物理验证。
其中包括板级布局、芯片级布局、测试访问机制等物理设计。
在这一阶段中,需要考虑布局对时序、信号完整性和电磁干扰等方面的影响。
4. 静态时序分析静态时序分析是验证在各种情况下FPGA系统的信号传输时间是否能满足硬性时序要求的一项关键任务。
这一过程通常包括设置时钟时延、根据门级网络实现和约束文件添加关键路径等。
5. 时钟分析时钟是FPGA设计中非常重要的元素,“时钟域过渡捕捉”是指当信号从一个时钟域转到另一个时钟域时,捕捉到信号的过程。
在FPGA设计过程中,出现时钟域过渡捕捉错误会导致系统不可预测的行为,因此时钟分析是不可或缺的一步。
6. 功耗分析FPGA芯片设计中,功耗一般分为静态功耗和动态功耗。
在FPGA设计的过程中,需要对功耗进行有效控制,以确保芯片设计能够满足功耗规格和限制。
这一步骤的目标是将功耗保持在可行范围内,同时确保电路的性能和功能稳定。
7. 芯片测试和验证芯片测试和验证是FPGA设计流程中的最后一步,用于确定芯片设计的正确性、性能和可靠性。
在芯片测试和验证过程中,需要进行硬件测量和软件测试,依据测试结果对设计进行修改和纠正,直到达到设计要求。
以上就是FPGA验证流程的主要步骤。
在实际工作中,还需要根据实际情况进行调整和修改,以达到最佳的验证效果。
芯片设计中的仿真与验证技术研究
芯片设计中的仿真与验证技术研究随着科技的不断发展,各行各业的电子设备越来越普及,芯片设计作为其核心部件的重要性也日益突显。
在芯片设计中,仿真与验证技术是非常重要的工具,其作用在于验证芯片是否符合设计要求,降低生产成本,提高芯片的可靠性和稳定性。
本文将对芯片设计中的仿真与验证技术进行详细探讨。
一、仿真技术仿真技术是指利用计算机模拟实际系统的过程。
在芯片设计中,仿真技术主要用于验证芯片的电路设计和性能。
在设计过程中,芯片的电路结构非常复杂,需要对其进行电气和物理仿真,以确保其性能能够达到设计要求。
在仿真中,可以利用各种仿真工具进行电气仿真、物理仿真和时序仿真等多方面测试,以确保芯片的各项参数符合设计要求。
1.1 电气仿真电气仿真主要是指通过电路分析仿真软件对芯片电路进行模拟,并得到对其性能进行评估的结果。
在芯片设计中,设计者需要进行静态和动态电路仿真,以保证芯片的电路设计合理,并消除电路设计中的缺陷。
对于电路仿真,常用的仿真软件包括SPICE (Simulation Program with Integrated Circuit Emphasis)、HSPICE(Hierarchical Simulation Program with Integrated Circuit Emphasis)和PSPICE等,具有方便、快速、准确等优点。
1.2 物理仿真物理仿真主要是指通过模拟芯片电路的物理过程,对芯片的性能和信号传输进行检测。
在芯片设计中,芯片物理仿真能够帮助设计者提前发现设计缺陷,避免在实际生产过程中出现问题。
物理仿真中,常用的仿真工具有、ANSYS 和 COMSOL Multiphysics 等。
1.3 时序仿真时序仿真是指对芯片的时序性能进行仿真分析,以保证芯片在各种工作情况下性能稳定可靠。
在芯片设计中,时序仿真是非常重要的,主要是为了确保芯片在各种工作状态下都能够正常工作,并保证其性能稳定。
芯片验证策略六部曲
芯片验证策略六部曲验证的策略篇之一:设计的流程通过芯片产品开发的流程图,而在描述中我们将开发流程分为了两条主线:芯片功能的细分不同人员的任务分配即是说不同人员需要在硅前的不同阶段实现和测试芯片的模块功能。
如果我们从另外一个角度看,芯片的开发即是将抽象级别逐次降低的过程,从一开始的抽象自然语言描述到硬件的HDL语言描述再到最后的门级网表。
而在我们已经介绍过RTL设计和门级网表以后,这里需要引入一个目前更高抽象级的描述TLM(事务级模型,transaction level models)。
TLM一般会在早期用于构建硬件的行为,侧重于它的功能描述,不需要在意时序。
同时各个TLM模型也会被集成为一个系统,用来评估系统的整体性能和模块之间的交互。
同时TLM模型在早期的设计和验证中,如果足够准确的话,甚至可以替代验证人员的参考模型,一方面为硬件设计提供了可以参考的设计(来源于系统描述侧),一方面也加速了验证(无需再构建参考模型,而且TLM 模型足够准确反映硬件描述)。
TLM模型的需求和ESL开发早期的芯片开发模式是遵循先从系统结构设计、到芯片设计制造、再到上层软件开发的。
但随着产品开发的压力,一方面我们需要让系统人员、硬件人员和软件人员都保持着充沛的工作量,同时对于一个芯片项目而言,我们也希望硬件人员和软件人员可以尽可能的同时进行开发。
这听起来怎么可能?毕竟芯片还没有制造出来,没有开发板怎么去构建软件呢?在这里我们系统结构人员会在早期构建一个高抽象级的系统,同时该系统必须具备该有的基本功能和各模块的接口保持信息交互,通过将功能描述变成可运行的系统,让硬件人员和软件人员可以在早期就利用该系统进行硬件参照和软件开发。
这种可以为复杂系统建立模型,让多个流程分支并行开发的方式被称作ESL(电子系统级,electronic system-level)开发。
传统的系统设计流程传统的系统设流程是瀑布形式(waterfall)开发的,这种顺序开发的方式存在明显的边界:时间边界:不同的开发子过程之间是保持顺序执行的,几乎没有可以交叠的空间来缩短整体的项目交付时间。
芯片验证流程
芯片验证流程
芯片验证流程是指在芯片设计完成后,对芯片进行测试和验证的一系列流程。
这个过程的目的是确保芯片符合设计规格和客户需求,同时保证其稳定性和可靠性。
芯片验证流程通常包括以下几个步骤。
首先,设计验证阶段,通过电路仿真工具对电路进行验证,确保其满足设计规格。
接下来,功能验证阶段,通过使用开
发板和其他测试工具进行验证,测试芯片的各项功能是否正常。
然后,性能验证阶段,通过使用高性能测试设备,对芯片的性能进行测试和验证,如功耗、速度和可靠性等。
最后,系统验证阶段,通过使用完整的系统环境对芯片进行验证,确保其与系统其他组件的兼容性和稳定性。
在整个验证过程中,需要对芯片进行多次测试和验证,并对测试结果进行分析和评估。
如果发现问题,需要进行适当的修复和再验证。
最终,当芯片通过所有的测试和验证,并满足设计规格和客户需求时,才能进行下一步的生产制造。
总之,芯片验证流程是非常重要的,它可以帮助确保芯片的质量和可靠性,并最终保证产品的成功。
芯片验证方法
芯片验证方法芯片验证是在芯片设计完成后,通过一系列测试和验证手段来确保芯片的功能和性能符合设计要求的过程。
以下是一些常见的芯片验证方法:1.仿真验证:使用数字仿真工具,通过对设计电路进行逻辑仿真和时序仿真来验证芯片的功能和时序性能。
这种方法可以在软件环境中模拟电路的行为,快速检测设计中的错误和问题。
2.逻辑等价性检查:通过对比设计电路与参考电路的逻辑等价性,来验证设计电路的正确性。
这种方法可以检测出设计中的逻辑错误,确保设计与预期行为一致。
3.高级验证:使用专门的验证语言(如SystemVerilog和Universal Verification Methodology)编写测试程序,对芯片进行全面的功能、性能和时序验证。
这种方法可以验证复杂的功能和时序关系,并捕捉潜在的设计问题。
4.物理验证:在设计完成后,进行物理验证,包括布局和验证电路的连线、完整性和可靠性。
这种方法确保芯片的物理布局和连接满足设计规范和要求。
5.边界扫描测试:通过在芯片上插入测试电路,对芯片进行边界扫描测试,以检测芯片的逻辑错误和故障。
这种方法可以帮助发现设计中的问题,并提高芯片的可靠性。
6.功耗验证:通过对芯片进行功耗分析和验证,确保芯片在正常运行时的功耗满足设计要求。
这种方法可以优化芯片的功耗性能,并提高芯片的能效。
7.硅验证:在芯片制造完成后,进行硅验证,即将芯片进行实际测试和验证。
通过在实际硅芯片上运行测试程序,检测芯片的功能、性能和时序等方面是否符合设计要求。
这些方法可以单独或结合使用,以确保芯片设计的正确性、可靠性和性能等方面的要求。
芯片验证是一个复杂和关键的过程,需要综合使用多种验证手段和工具,以确保芯片的质量和可靠性。
IC后端流程(初学必看)
校外IC后端实践陈述之袁州冬雪创作本教程通过对synopsys公司给的lab停止培训,从verilog代码到版图的整个流程(当然只是基本流程,因为真正一个大型的设计不是那末简单就完成的),此教程的目标就是为了让大家尽快懂得数字IC设计的大概流程,为以后学习建立一个基础.此教程只是自己探索实验的成果,其实不代表内容都是正确的,只是为了说明大概的流程,外面一定还有很多未完善而且有错误的地方,我在此后的学习当中会对其逐一完善和修正.此后端流程大致包含一下内容:1.逻辑综合(工具DC 逻辑综合是干吗的就不必诠释了把?)2.设计的形式验证(工具formality)形式验证就是功能验证,主要验证流程中的各个阶段的代码功能是否一致,包含综合前RTL代码和综合后网表的验证,因为如今IC设计的规模越来越大,如果对门级网表停止动态仿真的话,会花费较长的时间(规模大的话甚至要数星期),这对于一个对时间要求严格(设计周期短)的asic设计来讲是不成容忍的,而形式验证只用几小时即可完成一个大型的验证.别的,因为版图后做了时钟树综合,时钟树的拔出意味着进入布图工具的原来的网表已经被修改了,所以有需要验证与原来的网表是逻辑等价的.3.静态时序分析(STA),某种程度上来讲,STA是ASIC设计中最重要的步调,使用primetime对整个设计布图前的静态时序分析,没有时序违规,则进入下一步,否则重新停止综合.(PR后也需作signoff的时序分析)4.使用cadence公司的SOCencounter对综合后的网表停止自动规划布线(APR)5.自动规划以后得到详细的延时信息(sdf文件,由寄生RC和互联RC所组成)反标注到网表,再做静态时序分析,与综合近似,静态时序分析是一个迭代的过程,它与芯片规划布线的接洽非常慎密,这个操纵通常是需要执行许多次才干知足时序需求,如果没违规,则进入下一步.6.APR后的门级功能仿真(如果需要)7.停止DRC和LVS,如果通过,则进入下一步.8.用abstract对此lab实验停止抽取,发生一个lef文件,相当于一个hard macro.9.将此macro作为一个模块在别的一个top设计中停止调用.10.设计一个新的ASIC,第二次设计,我们需要添加PAD,因为没有PAD,就不是一个完整的芯片,详细操纵下面会说.11.重复第4到7步1.逻辑综合1)设计的verilog代码2)综合之前,我们要选取库,写好约束条件,修改dc的启动文件,方针库选择TSMC(此设计都是用TSMC18的库)的typical.db.(选择max库会比较好)Dc的饬令众多,但是最基本的饬令差未几,此设计的约束文件饬令如下:create_clock -period 10 [get_ports clk] //用于时钟的创建set_clock_latency -source -max 0.2 [get_ports clk] //外部时钟到core的clk连线延时set_clock_latency -max 0.1 [get_ports clk] //core的clk到寄存器clk端的net连线延时set_clock_uncertainty -setup 2 [get_ports clk] //时钟延时的不确定性,求setup违规时会被计算出来set_clock_uncertainty –hold 1 【all_clocks】set_input_delay -max 0.5 -clock clk[get_ports [list [remove_from_coll [all_inputs] clk] ] //输入延时,外部信号到input端的连线延时set_output_delay -max 0.5 -clock clk [all_outputs] //输出延时set_driving_cell -lib_cell INVX4 [all_inputs] //输入端的驱动强度set_load -pin_load 0.0659726 [all_outputs] //输出端的驱动力set_wire_load_model -name tsmc18_wl10 -library typical //外部net的连线模子set_wire_load_mode enclosed //定义建模连线负载相关形式set_max_area 0compilereport_timingreport_constraintchange_names -rule verilog –hierset_fix_multiple_ports_net –all//输出网表,自动规划布线需要//输出ddc//输出延时文件,静态时序分析时需要//输出约束信息,自动规划布线需要3)逻辑综合启动design_vision.R输入约束文件.F4)时序分析综合以后我们需要分析一下时序,看时序是否符合我们的要求,综合实际上是一个setup时间的知足过程,但是我们综合的时候,连线的负载只是库提供的(即上面的wire_load),其实不是实际的延时,所以一般做完综合以后,时间余量(slack)应该为时钟的30%(经历值),以便为后面实际规划布线留下充足的延时空间.因为如果slack太小,甚至接近于0,虽然我们看起来是没有时序违规的,但是实际规划以后,时序必定无法知足.使用report_timing饬令,可以检查时序分析陈述:****************************************Report : timing-path full-delay max-max_paths 1-sort_by groupDesign : muxDate : Fri Jul 2 12:29:44 2010****************************************Operating Conditions: typical Library: typical(模子库)Wire Load Model Mode: enclosedStartpoint: data2[4] (input port clocked by clk)Endpoint: dataout_reg_15_(rising edge-triggered flip-flop clocked by clk)Path Group: clkPath Type: maxDes/Clust/Port Wire Load Model Library------------------------------------------------mux tsmc18_wl10 typical(线载模子及库)Point Incr Path--------------------------------------------------------------------------input external delay0.50 0.50 fdata2[4] (in)0.01 0.51 fmult_14/b[4] (mux_DW_mult_uns_0)0.00 0.51 fmult_14/U131/Y (INVX1) 0.54 1.05 rmult_14/U161/Y (NOR2X1) 0.14 1.18 fmult_14/U39/S (CMPR42X1) 0.68 1.87 fmult_14/U12/CO (ADDFX2) 0.32 2.19 fmult_14/U11/CO (ADDFX2) 0.23 2.42 fmult_14/U10/CO (ADDFX2) 0.23 2.65 fmult_14/U9/CO (ADDFX2) 0.23 2.88 fmult_14/U8/CO (ADDFX2) 0.23 3.10 fmult_14/U7/CO (ADDFX2) 0.23 3.33 fmult_14/U6/CO (ADDFX2) 0.23 3.56 fmult_14/U5/CO (ADDFX2) 0.23 3.79 fmult_14/U4/CO (ADDFX2) 0.23 4.02 fmult_14/U3/CO (ADDFX2) 0.23 4.25 fmult_14/U2/CO (ADDFX2) 0.22 4.47 fmult_14/product[15] (mux_DW_mult_uns_0) 0.00 4.47 fdataout_reg_15_/RN (DFFTRXL) 0.00 4.47 fdataout_reg_15_/CK (DFFTRXL) 0.00 10.20 r----------------------------------------------------------------------------------------------------------------------------------------------------我们来看以上陈述,dc陈述的时候会显示出关键途径,即延时最大的途径,时序分析包含两段,前面一段是信号的延迟时间,即data arrival time 为4.47,下面是计算要求时间,也即相对于时钟,设计所能忍受的最大延时,由于到达寄存器clk端延时,即clock network delay,所以设计增加了0.30的余量,同样由于时钟的不确定度(可以提前也可以延后0.1),我们取最坏情况,就是时钟超前0.1,则时间余量减去0.1,最后一个是门的建立时间要求,是0.19,最后得到数据的要求时间.Slack是要求时间减去到达时间的差值,slack越大越好.越大说明留给规划布线的时序越宽松.从陈述中我们看出,时序余量为5.55,说明时序达到了要求,足够知足我们以后规划布线的时序要求.当然,我们有专门的时序分析工具,primetime,下面会稍微先容.2.形式验证1)怎么包管综合前和综合后的网表逻辑功能是一致的呢,对门级网表停止动态仿真,又太华侈时间,于是,一款强大的验证工具formality,给了我们很好的帮忙.2)形式验证数据准备:综合前RTL代码,综合后的网表,综合所用到的库.3)验证过程如下:1.首先我们打开formality,饬令为fm_shell(饬令行界面),formality(图形界面).初学者一般使用图形界面,使用图形界面的时候,工具会自动发生一个log文件,记录饬令,我们可以将这个文件内容做一个fms格式,这样在下次验证的时候可使用饬令界面.2.打开formality如下第一步:首先我们加入原RTL代码,reference->read_design file->verilog->mux.v,选择好以后load file第三步:设置top名 reference->set top design 我们选择mux为top名同样的方法对网表停止设置(第二个菜单栏implementation)然后转到第四栏,点击run matching最后转到第五栏,verify,如果网表无错,会显示验证通过.3 静态时序分析静态时序分析主要针对大型ASIC设计,4 自动规划布线1)数据准备第一:需要综合后的网表以及时序约束第二:需要自动规划布线的物理库(lef文件,这里用到tsmc18_6lm_cic.lef, tsmc18_6lm_antenna_cic.lef)为了可以懂得lef文档的作用,这里对lef做简单的先容,lef一般分为两种:一种是技术物理库,主要包含工艺信息,设计规则信息,金属通孔信息等.下例是对金属一层的定义,TYPE指明METAL1是可布线层,WIDTH 定义的是METAL1的默许布线宽度,SPACING用于设定METAL1布线间距.DIRECTION HORIZONTAL指明METAL1是用于水平走线,当然这其实不料味着它不克不及垂直走线,在一些布线资源较少的区域,还是可以选择垂直布线的.详细先容,可以参考相关技术文档.LAYER METAL1TYPE ROUTING ;WIDTH 0.230 ;MAXWIDTH 9.9 ;AREA 0.202 ;SPACING 0.230 ;SPACING 0.6 RANGE 10.0 100000.0 ;PITCH 0.560 ;DIRECTION HORIZONTAL ;EDGECAPACITANCE 9.1090e-05 ;END METAL1别的一种就是单元物理库,定义了单元库中各单元的信息,文件又有两部分一种是SITE语句对规划(placement)最小单位的定义,另外一部分是采取MACRO语句对单元属性及几何形状的描绘,下例是对一个与门为例来看看lef是如何描绘它的.MACRO是单元定义的关键字,每个MACRO代表一个单元.CLASS core说明该单元是用于芯片的核心区,SIZE确定了单元的面积大小,比方5.04是代表该单元的高度,后面我们做单元供电route的时候,可以看到它们的宽度就是这个数值.再后面就是定义引脚A,B,Y,VDD,VSS等.MACRO AND2X1CLASS CORE ;FOREIGN AND2X1 0.000 0.000 ;ORIGIN 0.000 0.000 ;LEQ AND2XL ;SIZE 2.640 BY 5.040 ;SYMMETRY x y ;SITE tsm3site ;PIN YDIRECTION OUTPUT ;PORTLAYER METAL1 ;RECT 2.355 2.380 2.500 2.660 ; ENDEND YPIN BDIRECTION INPUT ;PORTLAYER METAL1 ;RECT 0.800 2.315 1.215 2.895 ; ENDEND BPIN ADIRECTION INPUT ;PORTLAYER METAL1 ;RECT 0.150 1.820 0.565 2.315 ; ENDEND APIN VSSDIRECTION INOUT ;USE ground ;SHAPE ABUTMENT ;PORTLAYER METAL1 ;RECT 1.790 -0.400 2.640 0.400 ; RECT 1.450 -0.400 1.790 0.575 ; RECT 0.000 -0.400 1.450 0.400 ; ENDEND VSSPIN VDDDIRECTION INOUT ;USE power ;SHAPE ABUTMENT ;PORTLAYER METAL1 ;RECT 1.755 4.640 2.640 5.440ENDEND VDDOBSLAYER METAL1 ;RECT 1.835 1.935 1.885 2.355 ;ENDEND AND2X1第三:时序库文件,typical.lib,也就是时序文件,定义了门的各种时序信息,某种意义来讲,这个和综合使用的db库是等价的.2)规划布线过程:第一步:打开encounter 把数据输入,别的在advanced栏的Power相应位置填上VDD,和VSS.如下图,设置完以后,记得把设置的配置文件做一个save以便于下次使用第二步:打开以后,我们可以看到芯片区域,左边粉红色的就是尺度单元,中间阿谁就是我们要设计的区域,64%是指cell面积的占有率,一般来讲节制在70%左右,布线的时候不会引起拥塞.别的我们需要对芯片停止稍微的更改,Floorplan->specify floorplan.,将core to IO那些项都填上45,留给电源环的放置.第三步:添加电源环设置如下图,NET填写VDD和VSS,layer选择顶层的两层金属,宽度设置为20(这个不定,可以根据实际设计来定),offset选择center in channel,则电源环会被设置在IO与core之间.之后电源环就加出来了,当然这是一个小电路,电源规划比较简单,对于一个复杂的电路,还需要横竖添加stripes,降低IRdrop.第四步:自动规划以及安插尺度单元,因为此设计较小,并没有block,所以可以直接停止尺度单元的放置.Place->standard cells and blocaks->OK然后我们发现尺度单元已经被加出来了:第五步:安插好了以后,我们需要将电源,地,等接口先毗连起来,首先我们在floorplan中选择global net connection,分别将VDD,VSS等都毗连起来.然后我们需要specify route将电源和地线先毗连起来,选择route->specify route因为我们这个设计只有尺度单元,所以我们只要选择尺度单元的布线即可:完成以后,点击OK,会得到下面的图:每行的row都有线毗连到外面的电源环第六步:时钟树综合(CTS),这是一个APR设计中最重要的一环,为什么要停止时钟树综合呢,简单地说,因为信号传输的延时,我们需要让相应途径的时钟途径的也具有同样的延时,通过添加时钟缓冲器的方法,来消除各途径的建立时间,详细请参考相关书籍和资料.添加好时钟树以后的版图如下:加了时钟树以后的版图密集了很多,因为加了很多buf.时钟树的剧本:AutoCTSRootPin clkPeriod 10nsMaxDelay 500ps # set_clock_latencyMinDelay 0ps # set_clock_latencyMaxSkew 100psSinkMaxTran 400psBufMaxTran 400psObstruction NODetailReport YESPadBufAfterGate NORouteClkNet NOPostOpt YESOptAddBuffer YESOptAddBufferLimit 100NoGating NOBuffer CLKBUFX1 CLKBUFXL CLKBUFX2 CLKBUFX3 CLKBUFX4 CLKBUFX8 CLKBUFX12 CLKBUFX16 CLKBUFX20 CLKINVXL CLKINVX1 CLKINVX2 CLKINVX3 CLKINVX4 CLKINVX8 CLKINVX12 CLKINVX16 CLKINVX20END然后将剧本选中,并停止时钟树综合.第七步:优化设计,饬令optDesign –postCTS,然后report_timing检查时序陈述,确定无违规,再停止完全布线.第八步:完全布线,route ->nanoroute->route之后得到的版图如下所示:第九步:保管设计,提取需要的数据.这里特别注意提取gds文件的时候,需要指定库文件中的streamOut.map文件,和merge gds(tsmc18_core.gds)文件,如图所示保管网表,并将此版图提取的网表做一次formality,与原代码匹配成功.5 第二次静态时序分析用版图实际提取的延时文件停止6 APR后仿真用modelsim对版图提取的网表和sdf文件停止仿真.7 用calibre对版图停止DRC及其LVS验证在做这步之前,我们需要把相关的文档拷贝到icfb的工作目次下Encounter导出的gds文档:这里是mux8.gds(注意merge库的map 文件)技术文档如:,可以在厂家提供的库中去找Caliber验证文件:drc,lvs文档第一步:将encounter的版图数据导入virtuoso,打开icfb&,选择file->import->stream然后将版图信息和技术文件填入:导入成功以后会出现我们所做的库,mux就是我们encounter中所画的版图.我们把版图打开:这就是我们所画的版图然后在此停止drc,和lvs,通过以后再停止下面的工作.第二步:drc检查此处有错,其实不是逻辑有问题,是因为密度不敷的问题,需要在encounter阶段加FILLER,FILLER是与逻辑无关的,因为代工厂的流片加工要求,需要加的,密度不敷,加工容易引起问题.所以如果DRC 报近似错误,如果是需要流片的版图,除非代工厂同意,否则必须清除这些错误.第三步:lvs检查1)Lvs检查之前,我们需要把综合后的verilog文件转换成网表文件,用于lvs,方法如下:终端下执行:v2lvs -v mux.v -l tsmc18_lvs.v -o CHIP.spi -s tsmc18_lvs.spi -c cic_ -ncalibre -lvs -spice layout.spi -hier -auto Calibre-lvs-cur_soce,之后会得到一个的网表文件.()2)用来lvs的网表我们选择之前导出:然后run lvs,匹配成功!8 用abstract对模块停止抽取我们把8*8乘法器模块用abstract工具导出lef,作为硬核,用于后面自动规划布线的调用,我们可以从此试验中找到模数混合自动版图的设计思想.Abstract Def=>Lef第一步:创建一个新的library,并关联一个tf文件.注:(1)不需要输入streamOut.map也不必点上(no merge)不需要更改.Top Cell Name 为空第五步:打开 library manager 在mux库里打开mux的layout,并选择tools=>layout.第六步:选择 Edit=>Search ,点击 Add Criteria ,如下设置,选择aplly ,在选择 WordStr All.第七步:保管退出第八步:打开 abstract,并打开mux库.然后把mux模块从core导入到block当中,方法:点击mux,然后cell=>move=>block=>OK.第九步:点击GDS图中label,然后点击Q检查Properity.看看是什么层,然后看看下面的net的Properity是什么层,以及是什么purpose.层:METAL3,Purpose:pin.详细含义主要看abstract UG.<1> 点击,输入Map text labels to pinsMap text labels to pins 的书写格式及含义参考abstract UG.<2>点击<3>点击<4> Export lef之后我们得到一个该模块的lef文件,下面我们就用这个模块做一次调用.9将此macro作为一个模块在别的一个top设计中停止调用.第一步:首先我们还是回到综合,我们重新设计一个top,这个top将包含新的逻辑功能,之前的mux模块,还有PAD模块.这个设计的大概框图如下:PDIDGZ为数字输入IO口PDO04CDG为数字输出IO口PVDD1DGZ 为供电PAD高电端PVSS1DGZ 为供电PAD的地电端Multiple为之前做的宏模块Mux为新加逻辑第二步,代码的改写:我们重新编写过verilog代码(带PAD),带PAD做综合有个好处,可以不必设置输入输出端口的驱动,因为PAD的驱动已经很大了,这样综合出的成果更接近实际.新的verilog代码如下:module mux_1 (clk,clr,a,b,y);//(这里我们引用了新的逻辑,注意这个mux_1和之前的没半点关系,只是为了体现调用关系随便加的一个而已)input clk,clr;input [7:0] a,b;output [15:0] y;reg [15:0] y;always @(posedge clk)beginif(!clr)beginy<=0;endelsebeginy<=a*b;endendendmodulemodulePAD(clk_pcb,clk_core,clr_pcb,clr_core,data1_pcb,data1_core,da ta2_pcb,data2_core,dataout_core,dataout_pcb);(这是PAD模块,注意连系前面的框图是想想是如何加的)input clk_pcb,clr_pcb;output clk_core ,clr_core;input [7:0] data1_pcb,data2_pcb;output [7:0] data1_core,data2_core;input [15:0] dataout_core;output [15:0] dataout_pcb;PDIDGZ PAD_CLK (.PAD(clk_pcb),.C(clk_core));PDIDGZ PAD_CLR (.PAD(clr_pcb),.C(clr_core));PDIDGZ PAD_DATA1_0 (.PAD(data1_pcb[0]),.C(data1_core[0])); PDIDGZ PAD_DATA1_1 (.PAD(data1_pcb[1]),.C(data1_core[1])); PDIDGZ PAD_DATA1_2 (.PAD(data1_pcb[2]),.C(data1_core[2])); PDIDGZ PAD_DATA1_3 (.PAD(data1_pcb[3]),.C(data1_core[3])); PDIDGZ PAD_DATA1_4 (.PAD(data1_pcb[4]),.C(data1_core[4])); PDIDGZ PAD_DATA1_5 (.PAD(data1_pcb[5]),.C(data1_core[5])); PDIDGZ PAD_DATA1_6 (.PAD(data1_pcb[6]),.C(data1_core[6])); PDIDGZ PAD_DATA1_7 (.PAD(data1_pcb[7]),.C(data1_core[7])); PDIDGZ PAD_DATA2_0 (.PAD(data2_pcb[0]),.C(data2_core[0]));PDIDGZ PAD_DATA2_1 (.PAD(data2_pcb[1]),.C(data2_core[1])); PDIDGZ PAD_DATA2_2 (.PAD(data2_pcb[2]),.C(data2_core[2])); PDIDGZ PAD_DATA2_3 (.PAD(data2_pcb[3]),.C(data2_core[3])); PDIDGZ PAD_DATA2_4 (.PAD(data2_pcb[4]),.C(data2_core[4])); PDIDGZ PAD_DATA2_5 (.PAD(data2_pcb[5]),.C(data2_core[5])); PDIDGZ PAD_DATA2_6 (.PAD(data2_pcb[6]),.C(data2_core[6])); PDIDGZ PAD_DATA2_7 (.PAD(data2_pcb[7]),.C(data2_core[7])); PDO04CDG PAD_DATAOUT_0 (.I(dataout_core[0]),.PAD(dataout_pcb[0]));PDO04CDG PAD_DATAOUT_1 (.I(dataout_core[1]),.PAD(dataout_pcb[1]));PDO04CDG PAD_DATAOUT_2 (.I(dataout_core[2]),.PAD(dataout_pcb[2]));PDO04CDG PAD_DATAOUT_3 (.I(dataout_core[3]),.PAD(dataout_pcb[3]));PDO04CDG PAD_DATAOUT_4 (.I(dataout_core[4]),.PAD(dataout_pcb[4]));PDO04CDG PAD_DATAOUT_5 (.I(dataout_core[5]),.PAD(dataout_pcb[5]));PDO04CDG PAD_DATAOUT_6 (.I(dataout_core[6]),.PAD(dataout_pcb[6]));PDO04CDG PAD_DATAOUT_7 (.I(dataout_core[7]),.PAD(dataout_pcb[7]));PDO04CDG PAD_DATAOUT_8 (.I(dataout_core[8]),.PAD(dataout_pcb[8]));PDO04CDG PAD_DATAOUT_9 (.I(dataout_core[9]),.PAD(dataout_pcb[9]));PDO04CDG PAD_DATAOUT_10 (.I(dataout_core[10]),.PAD(dataout_pcb[10]));PDO04CDG PAD_DATAOUT_11 (.I(dataout_core[11]),.PAD(dataout_pcb[11]));PDO04CDG PAD_DATAOUT_12 (.I(dataout_core[12]),.PAD(dataout_pcb[12]));PDO04CDG PAD_DATAOUT_13 (.I(dataout_core[13]),.PAD(dataout_pcb[13]));PDO04CDG PAD_DATAOUT_14 (.I(dataout_core[14]),.PAD(dataout_pcb[14]));PDO04CDG PAD_DATAOUT_15(.I(dataout_core[15]),.PAD(dataout_pcb[15]));PVDD1DGZ vdd1 (); (现在不必加的)PVDD1DGZ vdd2 ();PVDD1DGZ vdd3 ();PVDD1DGZ vdd4 ();PVSS1DGZ vss1 ();PVSS1DGZ vss2 ();PVSS1DGZ vss3 ();PVSS1DGZ vss4 ();PCORNERDG c1 ();PCORNERDG c2 ();PCORNERDG c3 ();PCORNERDG c4 ();endmodule#############################顶层模块#########################module top(clock,clear,da1,da2,dataout_out);input clock,clear;input [7:0] da1,da2;output [15:0] dataout_out;wire clk_core,clr_core;wire [7:0] data1_core,data2_core;wire [15:0] dataout_core;wire [15:0] y;PADPAD_TOP(.clk_pcb(clock),.clk_core(clk_core),.clr_pcb(clear),. clr_core(clr_core),.data1_pcb(da1),.data1_core(data1_core),.d ata2_pcb(da2),.data2_core(data2_core),.dataout_core(dataout_c ore),.dataout_pcb(dataout_out));mux_1 mux_1 (.clk(clk_core),.clr(clr_core),.a(data1_core),.b(data2_core), .y(y));mux mutiple (.clk(clk_core),.clr(clr_core),.data1(y[15:8]),.data2(y[7:0]) ,.dataout(dataout_core));(这里是对硬核的调用)endmodule第三步:逻辑综合注意的是,我们在逻辑综合之前,需要加如mux的db库文件,此文件由encounter规划布线以后发生的延时文件再颠末pt静态时序分析以后发生.我们给顶层模块加如约束:Current_design toplinkcreate_clock -period 10 [get_ports clock]set_clock_latency -source -max 0.2 [get_ports clock]set_clock_latency -max 0.1 [get_ports clock]set_clock_uncertainty -setup 0.01 [get_ports clock]set_input_delay -max 0.5 -clock clock [all_inputs]set_output_delay -max 0.5 -clock clock [all_outputs]#set_driving_cell -lib_cell INVX4 [all_inputs]#set_load -pin_load 0.0659726 [all_outputs]set_wire_load_model -name tsmc18_wl10 -library typicalset_wire_load_mode enclosedset_dont_touch mux(注意此处,就是综合的时候不针对mux停止综合,综合工具会自动逾越鸿沟对其他逻辑停止综合)set_dont_touch_network [all_clocks]compile -boundarychange_names -rule verilog -hier第四步:规划布线用综合得到的网表(top.sv)和约束文件(sdc).并将之前的mux模块的lef文档准备好.这里碰到了一个问题,在逻辑综合之前的代码我已经加如了PAD的VDD ,VSS和corner,但是综合完以后就不见了,原因不明,这时在规划之前就要手动添加上去.数据准备:时序文件:对应于上面的lib文件,typical.lib,block的lib(由PT发生),PAD的libIo文件:可以自己定义顶层端口的位置(下面会介如何做io文件)Sdc文件:综合后发生的约束文件.Io文件的设置,主要由四个方向决议,N,W,S,E就和我们英文里的四个方向的首字母一样,当然还有NW,WS,SE,NE,四个角,是用与corner的摆放,该设计有34个口,外加8个供电PAD,加上四个CORNER总共有46个PAD,主要的是42个PAD,我们可以将这42个PAD放到自己想设置的位置,对于一个真正的设计,要思索以后连线的长度,外部模块摆放位置等,来合理安插io的位置.如图所示为该设计的PAD规划图:根据此规划图,我们对此设计的io文件编辑如下,io文件对应实际规划中的规则是,N是由io文件列表的顺序从左到右的放置,W方向是由下到上的放置,S同N,E同W.Pad: PAD_TOP/PAD_DATAOUT_12 NPad: PAD_TOP/PAD_DATAOUT_13 NPad: PAD_TOP/PAD_DATAOUT_14 NPad: PAD_TOP/PAD_DATAOUT_15 NPad: PAD_TOP/PAD_CLK NPad: PAD_TOP/vss2 NPad: PAD_TOP/vdd2 NPad: PAD_TOP/PAD_DATA1_0 NPad: PAD_TOP/PAD_DATA1_1 NPad: PAD_TOP/PAD_DATA1_2 NPad: PAD_TOP/PAD_DATA1_3 NPad: PAD_TOP/c1 NEOrient: R0Pad: PAD_TOP/c2 SWPad: PAD_TOP/PAD_DATAOUT_4 WPad: PAD_TOP/PAD_DATAOUT_5 WPad: PAD_TOP/PAD_DATAOUT_6 WPad: PAD_TOP/PAD_DATAOUT_7 WPad: PAD_TOP/vdd1 WPad: PAD_TOP/vss1 WPad: PAD_TOP/PAD_DATAOUT_8 WPad: PAD_TOP/PAD_DATAOUT_9 WPad: PAD_TOP/PAD_DATAOUT_10 WPad: PAD_TOP/PAD_DATAOUT_11 WPad: PAD_TOP/c3 NWPad: PAD_TOP/PAD_DATAOUT_0 SPad: PAD_TOP/PAD_DATAOUT_1 SPad: PAD_TOP/PAD_DATAOUT_2 SPad: PAD_TOP/PAD_DATAOUT_3 WPad: PAD_TOP/PAD_CLR SPad: PAD_TOP/vdd3 SPad: PAD_TOP/vss3 SPad: PAD_TOP/PAD_DATA2_7 SPad: PAD_TOP/PAD_DATA2_6 SPad: PAD_TOP/PAD_DATA2_5 SPad: PAD_TOP/PAD_DATA2_4 SPad: PAD_TOP/PAD_DATA2_3 EPad: PAD_TOP/PAD_DATA2_2 EPad: PAD_TOP/PAD_DATA2_1 EPad: PAD_TOP/PAD_DATA2_0 EPad: PAD_TOP/vdd4 EPad: PAD_TOP/vss4 EPad: PAD_TOP/PAD_DATA1_7 EPad: PAD_TOP/PAD_DATA1_6 EPad: PAD_TOP/PAD_DATA1_5 EPad: PAD_TOP/PAD_DATA1_4 E一切准备好以后,我们导入所有的准备数据会看到一个有PAD和宏模块的的芯片图因为PAD的面积较大,所以其他单元和模块看起来就比较小了.第五步:规划。
