数字后端设计
This presentation is the property of its rightful owner.
Sponsored Links
1 / 34

数字后端设计 PowerPoint PPT Presentation


  • 97 Views
  • Uploaded on
  • Presentation posted in: General

数字后端设计. Reporter: Zizhu.Feng : Date: 2013.06.08. 一 什么是数字后端? 二 数字后端有哪些步骤? 三 数字和模拟电路怎样连接?. 三个问题. 什么是数字后端?. 编写 HDL 代码. 布局规划. 功能仿真. 布局. 前端. 后端. 逻辑综合. 时钟树插入. 形式验证. 布线. 静态时序分析. 静态时序分析. 数据导出. 怎样设计一个 1 位全加器?. 怎样设计一个 1 位全加器?. 前端. 静态时序分析 pt. 编写 HDL 代码. 逻辑综合 DC.

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.While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server.


- - - - - - - - - - - - - - - - - - - - - - - - - - E N D - - - - - - - - - - - - - - - - - - - - - - - - - -

Presentation Transcript


6739228

数字后端设计

Reporter: Zizhu.Feng:

Date: 2013.06.08


6739228

  • 一 什么是数字后端?

  • 二数字后端有哪些步骤?

  • 三数字和模拟电路怎样连接?

三个问题


6739228

什么是数字后端?

编写 HDL 代码

布局规划

功能仿真

布局

前端

后端

逻辑综合

时钟树插入

形式验证

布线

静态时序分析

静态时序分析

数据导出


6739228

怎样设计一个1位全加器?


6739228

怎样设计一个1位全加器?

前端

静态时序分析

pt

编写 HDL 代码

逻辑综合

DC

形式验证

formality

功能仿真Modelsim


6739228

什么是数字后端?

门级的符号

后端

工艺库参数

版图设计

Astro

gds File

布局规划

时钟树插入

布线

静态时序分析

数据导出

布局


6739228

数字后端有哪些步骤?

启动 Astro

使用图形界面的菜单进行设置

两种操作方法

在下方选择TCL模式执行脚本

Linux Open in terminal Astro&


6739228

数字后端有哪些步骤?

1 Setup

1 这一步主要做什么?

准备工作:

建立一个标准单元库

准备数据文件

系统设置

圈工地

建筑材料

图纸


6739228

数字后端有哪些步骤?

1 Setup

2 主要命令有什么?

source ./scripts/define.tcl

(调用define文件 ,文件中定义了库、单元、金属层以及一些路径的名称

例如:set netlist “../out/compile1_da_top.v“ 以后再使用这个路径的时候可以用 $netlist 来代替)

dbSetGlobalPowerNet "VDD“

dbSetGlobalGroundNet "VSS“

(定义电源环和地环端口,包括VDD,VSS,AVDD,AVSS,DVDD,DVSS)


6739228

数字后端有哪些步骤?

1 Setup

auVerilogToCellsetFormField “Verilog To Cell” “Library Name“ $libname

(建库存放单元的数据,导入网表文件,建立版图单元,加载一个.tf文件定义布线的规则)

formButton "Verilog To Cell" "refLibOptions“

($ana_reflib $io_reflib) (加入三个参考库)

formButton "Verilog To Cell" "globalNetOptions“

(定义cell中的三组全局电源/地)

axgLoadTDF(加载tdf文件,自己定义,指导pad摆放)

astMarkHierAsPreserved(保留层次化信息)


6739228

数字后端有哪些步骤?

1 Setup

3 执行结束后版图的效果?

由于只进行了系统的设置,加载一些文件,setup后在单元中只能看到一个模拟的marco


6739228

数字后端有哪些步骤?

2 Floorplan

1 这一步主要做什么?

正式布局前执行底盘的规划

划定建筑面积

铺设外围供电网络


6739228

数字后端有哪些步骤?

2 Floorplan

2 主要命令有什么?

axgPlanner

(选择核的尺寸、标准单元的排列方式)

axgAddPadFiller

(Pad之间的填充物,形成Pad供电回路)

axgCreateRectangularRings

(布核的电源环和地环

横纵两层不同金属、设定宽度

Offset absolute 指电源对核偏移)

axgCreateStraps

(给电路中单元提供稳定电源

Marco截断)

aprPGConnect

(建立标准单元与电源/地间的物理连接

非实际连接

每次修改电路要做一次物理连接)


6739228

数字后端有哪些步骤?

2 Floorplan

dbSetCellInstPlacement [geGetEditCell] "ana_u1" "0" "no" "lr" "2200 420“

(在核中放入模拟的marco

lr 右下角为坐标零点)

axgCreateRectangularRings

(布模拟电源/地环)

aprPGConnect

axgAddRouteGuide

(指导工具布线的范围

共两次

不要在marco内布线

不要在第六层金属布线

手动画)

axgPrerouteInstances

(连接电源/地环到pad

pin到电源/地环)

axgVeriPGConn

(检查电源/地引脚的连接

报告)


6739228

数字后端有哪些步骤?

2 Floorplan

3 执行结束后版图的效果?

看到标准单元了吗?


6739228

数字后端有哪些步骤?

3 Timing

为设计添加时序约束

建筑国标

供水管道的设计优化措施


6739228

数字后端有哪些步骤?

3 Timing

2 主要命令有什么?

ataLoadSDC

(加载sdc文件

由DC生成

提供布局布线指导

如:时钟的要求)

atTimingSetup

(设置时序的要求

由于没有做时钟树插入,仍用理想时钟 ideal clock

优化的方案

寄生参数

单元延迟和线网延迟模型

串扰模型)


6739228

数字后端有哪些步骤?

3 Timing

3 执行结束后版图的效果?

只设置了参数,对cell的布局没有影响


6739228

数字后端有哪些步骤?

4 Place

1 这一步主要做什么?

在核中放置标准单元

开始盖房子

在楼道里铺电网

给每个房间供电


6739228

数字后端有哪些步骤?

4 Place

2 主要命令有什么?

axgAddBlockage

(给模拟marco加blockage,不放标准单元)

astPlaceOptions

(place之前的一些基本设置,优化方式

congestion: 考虑线路拥堵 timing:满足时序)

astPrePS

(做preplace )

aprPGConnect

axgPrerouteStandardCells

(创建核中为数字标准单元供电的电源/地线)

astAutoPlace(place分三步

preplace inplace postplace

postplace 分 post place 和 post CTS

post CTS在CTS一步做)

axgDisplayPLCongestionMap

(做布线拥堵情况的评估)


6739228

数字后端有哪些步骤?

4 Place

3 执行结束后版图的效果?

每一步place

标准单元的分布都会进行优化,排布位置发生改变


6739228

数字后端有哪些步骤?

5 CTS

1 这一步主要做什么?

时钟树的插入

供水管道的中继装置


6739228

数字后端有哪些步骤?

5 CTS

2 主要命令有什么?

astClockOptions

(对时钟树的插入进行基本设置)

astClockOptionsformButton "Clock Common Options" "ConstraintSubForm“

(设置时钟树插入的约束条件)

astCTS

(开始进行时钟树的综合与优化)

atTimingSetup

(在timing中已经做过

改为实际的传播时钟

做完时钟树的综合与优化后必须重新做place

用post CTS )

astAutoPlace

(做post CTS)

aprPGConnect


6739228

数字后端有哪些步骤?

5 CTS

3 执行结束后版图的效果?

CTS只是插入buffer及优化

并不会进行布线


6739228

数字后端有哪些步骤?

6 Route

1 这一步主要做什么?

全局布线

详细布线

优化

把各个中继装置需要连接的部分连接起来


6739228

数字后端有哪些步骤?

6 Route

2 主要命令有什么?

axgSetRouteOptions

(布线前的基本设置)

axgRouteGroup

(all clock nets

先布时钟网络)

axgAutoRoute

(布标准单元的连接网络)

axgSearchRepair

(执行检查和修改

规定次数

不修改输入0)

atTimingSetup

(xtalk 设置串扰模型

medium effort 改为 low effort ???)

astPostRouteOpt

(后期的布线优化

可以提高布线的质量)


6739228

数字后端有哪些步骤?

6 Route

3 执行结束后版图的效果?

放大可以看到布线


6739228

数字后端有哪些步骤?

7 DFM

1 这一步主要做什么?

修天线效应

芯片生产过程中,暴露的金属线或多晶硅等导体就像一根根天线,会收集电荷,导致电位升高

天线越长,电压越高。

若导体碰巧只接了MOS的栅,高电压就可能把薄的栅氧化层击穿,使电路失效

消除天线效应方法:

1 跳线:断开存在天线效应金属层,通过通孔连接到其它层

2 添加天线器件:加反偏二极管,形成电荷泄放回路

3 插入缓冲器: 切断长线

加避雷针


6739228

数字后端有哪些步骤?

7 DFM

2 主要命令有什么?

auLoadCLF

(加载clf文件 工艺库提供

含diode等参数指导修天线效应)

axReportAntennaRatio [geGetEditCell]

(执行天线效应的检查,看是否有violation)

axgSetHPORouteOptions

(设置atenna检查方法)

axgSearchRepair

(开始修天线效应)

axgSearchRepair

aprPGConnect

axgSearchRepair

axgAddFillerCell

(用filler cell填充行之间的开放区域,保证所有电源网络都已经连接)

axgPrerouteStandardCells

(place中已经做过

给数字标准单元供电的横向电源/地线会布满整个核)

geNewFillNG

(填充标准单元内部金属密度,

使标准单元内部金属密度一致,提高良率)


6739228

数字后端有哪些步骤?

7 DFM

3 执行结束后版图的效果?

本步之后执行

Output

将版图、新的netlist、寄生参数等信息导出


6739228

额外的东西:

NO. 1 tdf 文件怎么设置?

问题: tdf文件是什么来着?

定义Pad名称、Pad尺寸、提供Pad的摆放位置

定义一个Pad(一般定义电源/地以及Pbreak):

insertPad “VDD” “PVDD” “u_VDD” “VDD”

VDD: 连接到Astro定义的Cell中GLOBALNET电源环的名称

PVDD:库中所调用的pad名称

u_VDD: 实例化的电源环的名称

VDD: 在相应的PAD中连接到VDD还是VSS(Pad也有VDD和VSS)

Corner pad (放在四个角的pad)摆放的方向:

Lower left corner (ll): bottom

Lower right corner (lr): right

Upper right corner (ur): top

Upper left corner (ul): left


6739228

NO. 1 tdf 文件怎么设置?

Power cut: 使用 Pbreak Pad

ESD静电保护电路:

VDD DVDD DVSS 两个端口之间内部是断开的

VSS两个端口用背靠背二极管连接

正常情况下,为左面电路供电的电压不能使右面二极管击穿;有大电压时,右面二极管会击穿短路,将电荷泄放到地中,保护左面电路

Pbreak中间夹的为给模拟电路供电的Pad,用Pbreak将数字Pad与这一部分断开

对于VSS,正常工作时,由于数字地与模拟地间没有压差或很微小,两个二极管的正向导通电压足够将数字电路与模拟电路隔离,防止互相干扰;

泄放电荷时,Pbreak 的VSS两端压差增大,二极管正向导通,无论在数字电路或模拟电路中出现的静电都可以使整个VSS形成一个放电回路


6739228

NO. 2 怎样手动布线?

删除一根线:route utility – delete route by name – 填入要删除的线网名称

重新添加已删除的线网(设置新的属性)

定义一个rule

Route setup – define var route rule

Rule name 可以任意命名,可以选择在每一层金属上布线的宽度等要求

Route setup – set net constraints

Net name 为刚才删除的线网名称

Assign中选择var route rule 填入刚才的rule name

Route – detail route search & repair

就可以修复原来的线网,新的线网拥有新的布线规则


6739228

Thank you for listening……

参考资料:

高级ASIC芯片综合 Himanshu Bhatnagar

Astro user guide

iogp_il_csm018ic

EDA工程实践 曾繁泰等著

Astro教学 刘长龙师兄


  • Login