RRP是什么意思在线翻译读音例句-螲蟷


2023年4月5日发(作者:环保服装材料)

Encounter使用入门教程

本教程介绍一下自动布局布线工具Encounter的使用知识,开始以一个简

单的十进制计数器版图的自动实现为例子,之后介绍包含block模块的复杂的版

图自动实现。

在DesignerCompi含月的诗句古诗大全 ler使用入门教程中,笔者设计了一个十进制计数器,

并经过DesignCompiler对其进行综合后获得了门级综合网表文件

以及约束文件,根据这两个文件,我们就可以使用SOCEncounter

实现十进制计数器的物理版图设计了。首先,我们要准备使用Encounter进行

版图自动设计时所需要的数据:

时序库文件:,,,

物理库文件:tsmc18_6lm_,tpz973g_5lm_,tsmc18_6lm_antenna_

门级网表文件:pad_

时序约束文件:pad_

IO位置放置文件:pad_//在设计导入Encounter中指定PAD的放置位

置文件,不是必须文件

还有其它一些文件在后面用到时进行介绍。

一、网表中添加PAD、编写IOAssignmentFile

这里,pad_是加入PAD后综合得到的门级网表。工程项目中设计

制作完成后的芯片要进行封装,PAD就是芯片在封装时连接封装引线的地方。

一般信号输入/输出PAD即I/OPAD要在综合前添加进入网表中,电源电压PAD

可以在综合时添加也可以在综合后添加。接下来就先介绍一下如何在网表中加入

PAD,其实给网表加入PAD就是一般的module例化,和Verilog中一般的module

模块例化是一样的。

这里介绍在综合时给设计中加入I/OPAD。十进制计数器的Verilog源程序如下:

moduleCnt10(reset_n,clk,in_ena,cnt,carry_ena);

inputclk;

inputreset_n;

inputin_ena;

output[3:0]cnt;

outputcarry_ena;

reg[3:0]cnt;

regcarry_ena;

always@(posedgeclkornegedgereset_n)

begin

if(!reset_n)

cnt<=4\'b0;

elseif(in_ena&&cnt==4\'d10)

cnt<=4\'b0;

elseif(in_ena&&cnt<4\'d10)

cnt<=cnt+1\'b1;

end

always@(posedgeclkornegedgereset_n)

begin

if(!reset_n)

carry_ena<=1\'b0;

elseif(in_ena&&cnt==4\'d10)

carry_ena<=1\'b1;

else

carry_ena<=1\'b0;

end

endmodule

加入PAD后的十进制计数器Verilog网表如下:

moduleCnt10_PAD(reset_n,clk,in_ena,cnt,carry_ena);//顶层模块

inputreset_n;

inputclk;

inputin_ena;

output[3:0]cnt;

outputcarry_ena;

wiretop_clk冲冠一怒为红颜说的是谁 ,top_reset,top_in_ena;

wiretop_carry_ena;

wire[3:0]top_cnt;

Cnt10

CNT10(.reset_n(top_reset),.clk(top_clk),.in_ena(top_in_ena),.cnt(top_cnt),.carry_ena

(top_carry_ena));//这里是对Cnt10module的例化

//下面是I/OPADmodule的例化

PDIDGZPAD_CLK(.PAD(clk),.C(top_clk));

PDIDGZPAD_RESET(.PAD(reset_n),.C(top_reset));

PD毋怎么读 IDGZPAD_IN_ENA(.PAD(in_ena),.C(top_in_ena));

PDO02CDGPAD_CARRY_ENA(.I(top_carry_ena),.PAD(carry_ena));

PDO02CDGPAD_CNT_0(.I(top_cnt[0]),.PAD(cnt[0]));

PDO02CDGPAD_CNT_1(.I(top_cnt[1]),.PAD(cnt[1]));

PDO02CDGPAD_CNT_2(.I(top_cnt[2]),.PAD(cnt[2]));

PDO02CDGPAD_CNT_3(.I(top_cnt[3]),.PAD(cnt[3]));

endmodule

说明:关于PAD如何例化,首先要查看厂家提供的工艺库中的关于PAD的verilog

文件,如本例子中使用tsmc18工艺库,描述PAD的verilog文件为tpz973g.v,

这个文件是PAD文件的verilo出师表注音版 g描述,包括输入输出的端口等信息。

编写好加入PAD的十进制计数器网表pad_conter.v后,从新使用DC对其进

行综合,关于综合这里就不做介绍了,下面把新的综合脚本给出,由于加入了

PAD,所以在设计约束文件时,输入驱动和输出负载约束就不需要了,考虑到后

面布局布线后还要进行LVS检查,在设计约束中加入了大小写敏感设置,详细

的综合脚本pad_内容如下:

#Setthecurrent_design

#read_verilog{counter_er.v}

current_designCnt10_PAD

link

set_operating_conditions-maxslow-max_libraryslow-minfast-min_libraryfast

set_wire_load_modeenclosed

set_wire_load_model-nametsmc18_wl10-libraryslow

set_local_link_library{}

set_max_area0

set_max_fanout5[get_portsreset_n]

set_max_fanout4[get_portsclk]

set_max_fanout4[get_portsin_ena]

set_max_transition0.3[get_portsreset_n]

set_max_transition0.3[get_portsclk]

set_max_transition0.5[get_portsin_ena]

create_clock[get_portsclk]-period10-waveform{05}

set_clock_latency1[get_clocksclk]

set_clock_latency-source1[get_clocksclk]

set_clock_uncertainty-setup0.5[get_clocksclk]

set_clock_uncertainty-hold0.4[get_clocksclk]

set_dont_touch_network[get_clocksclk]

set_clock_transition-fall0.3[get_clocksclk]

set_clock_transition-rise0.3[get_clocksclk]

set_input_delay-clockclk-max3[get_portsin_ena]

set_output_delay-clockclk-max4[get_portscnt]

set_output_delay-clockclk-min0.5[get_portscnt]

set_output_delay-clockclk-max4[get_portscarry_ena]

set_output_delay-clockclk-min0.5[get_portscarry_ena]

compile

report_timing-delaymax>./reports/pad_setu《深不可测》双a肉车 p_

report_timing-delaymin>./reports/pad_hold_

report_constraint-verbose>./reports/pad_

report_qor>./reports/pad_

remove_unconnected_ports-blast_buses[get_cells-hierarchical*]

setbus_inference_style{%s[%d]}

setbus_naming_style{%s[%d]}

sethdlout_internal_bussestrue

change_names-hierarchy-ruleverilog

define_name_rulesname_rule-allowed{a-zA-Z0-9_}-max_length255-typecell

define_name_rulesname_rule-allowed{a-zA-Z0-9_[]}-max_length255-typenet

define_name_rulesname_rule-map{{\"*cell*\"\"cell\"}}

define_name_rulesname_rule-case_insensitive

change_names-hierarchy-rulesname_rule

write-formatverilog-hier-o./outputs/pad_

write-formatddc-hier-o./outputs/pad_

write_sdc./outputs/pad_

write_sdf./outputs/pad_

设置好DC的启动文件.synopsys_后,启动DC,在DC的命令行输入处

运行命令:

design_vision-xg-t>sourcepad_

等待DC完成综合后就可以在指定的目录中看到输出文件pad_、

pad_等文件了。

进行布局布线前,在pad_网表中加入电源PAD和拐角连接PAD,如

下图所示:

图1添加电源PAD和拐角PAD

添加好后保存pad_文件,到此就完成了给设计加入PAD了。一般

在设计导入到Encounter时,为了实现既定的PAD位置放置,都会在设计导入

的时候同时指定设计中各个PAD在Encounter中具体的位置,这可以通过在导

入设计的同时导入分配PAD位置的文件来完成。如果不指定PAD的分配

文件,则设计在输入Encounter后PAD的具体位置是随机分配的。IOAssignment

File可以自动产生或手动编写,本例的pad_文件内容如下:

Version:1

pad:PAD_CLKN

pad:PAD_RESETN

pad:PAD_IN_ENAN

pad:PAD_CARRY_ENAN

pad:PAD_CNT_0S

pad:PAD_CNT_1S

pad:PAD_CNT_2S

pad:PAD_CNT_3S

pad:PAD_VDD1W

pad:PAD_VDD2W

pad:PAD_VSS1E

pad:PAD_VSS2E

pad:CORNER1NW

pad:CORNER2NE

pad:CORNER3SE

pad:CORNER4SW

其中S/N/W/E分别是PAD在Core的南/北/西/东,四个角分别是CORNER1、2、

3、4。

二、十进制计数器的APR

新建一个目录,将准备好的文件放入对应目录下面,启动Encounter。启动

Encounter图形界面的方式如下,在终端中输入下面的命令:

$encounter

然后按回车,Encounter软件将被打开,下图显示的是SOCEncounter软件正常

启动显示的信息:

图2Encounter软件的启动

SOCEncounter软件正常启动后的界面如下图所示:

图3Encounter启动后的界面

上图是对Encounter软件图形界面的介绍,图中介绍了Encounter软件图形界面

的各部分的名称,先做一个初步的了解。

1、导入设计文件

在Encounter图形界面中选择Design→DesignImport…打开导入设计对话框,如

图:

图4DesignImport对话框

按照图示填好相应的设计文件,然后切换到Advanced项,如下图:

图5AdvancedTab

选择Power选项,如图中所示填入VDD和VSS。设置好后,点击OK,设计被

导入Encounter中,如下图所示:

图6设计导入到Encounter

2、设计布局

选择Floorplan→SpecifyFloorplan打开SpecifyFloorplan对话框,如下图:

图7SpecifyFloorplan

按图所示进行设置,完成后点击OK,指定布局后的效果如下:

图8SpecifyFloorplan后的效果

3、添加电源环

选择Power→PowerPlanning→AddRings…打开AddRings对话框:

图9AddRings对话框

在Net(s):处填入VSSVDD,其它要设置的地方如上图所示,Offset处要选择

Centerinchannel,否则后面电源线连接时会出现连接不上的情况。设置完成后,

点击OK完成设置,设置后在Core四周放置好了电源环如下:

图10AddRings后的效果

4、放置标准单元

设计导入Encounter后,数据都是存储在Memory中的,需要人为操作进行放置,

当然最终还是软件根据特定算法自己自动放置的。在菜单栏中选择Place→

StandardCellsandBlocks…打开Place设置框:

图11Place1

在BasicTab中取消选择RunTimingDrivenPlacement和ReorderScanConnection

项,转到AdvancedTab中,在CongestionEffort中选择Medium项,如图:

图12Place2

设置好以上条件后,点击OK,Encounter执行Place命令,标准单元就被放入

Core中了。

5、Globalnetconnection

下面要连接设计中所有的globalnet,包括所有标准单元的power/groundpin连接

到VDD/VSS,以及把单元里连接1的连接到VDD,把和0连接的连接到VSS。

选择Floorplan→Globalnetconnections…项,打开GlobalNetConnections设置框,

按下图所示进行设置:

图13GlobalNetConnections

Connect处选择Pins,里面填入VDD,Scope处选择UnderModule,然后在To

GlobalNet:处填入VDD,之后点击AddtoList后,在ConnectionList中第一行

就设置好了,其他进行类似操作,都设置完成后,先点击Apply按钮,然后点击

Check,最后点击Close关闭GlobalNetConnections设置框,完成设置。

6、Routingthepower/groundNets

选择Route→SpecialRoute…,打开SRoute设置框,如下进行设置:

图14SRoute设置

在Route处,去选Blockpins、Padrings、Stripes(unconnected)项,其它的使用默

认设置即可,然后点击OK完成设置,设置完成后的效果如下图所示:

图15SRoute后的效果

7、时钟树综合

选择Clock→CreateClockTreeSpec…打开CreateClockTreeSpec对话框,如下

图:

图16CreateClockTreeSpec

按图中所示进行设置,完成后点击OK。然后选择Clock→SpecifyClockTree…选

项打开SpecifyClockTree设置框,在ClockTreeFile处选择我们刚才创建的

Cnt10_文件,然后点击OK完成设置。最后选择Clock→Synthesize

ClockTree命令进行时钟树综合。

这一步完成后,检查设计是否有时序问题,在终端中输入report_timing,查看显

示信息,如果没有时序问题,就可以进行下一步的详细布线了。

8、详细布线NanoRoute

选择Route→NanoRoute→Route…打开NanoRoute对话框,如下图所示:

图17NanoRoute设置

按图中进行设置,完成点击OK,该项命令执行后的效果如下:

图18NanoRoute后的视图

9、添加IOFiller

在终端中执行如下命令:

$addIoFiller–cellPFEED50–prefixIOFILLER

$addIoFiller–cellPFEED35–prefixIOFILLER

$addIoFiller–cellPFEED20–prefixIOFILLER

$addIoFiller–cellPFEED10–prefixIOFILLER

$addIoFiller–cellPFEED5–prefixIOFILLER

$addIoFiller–cellPFEED2–prefixIOFILLER

$addIoFiller–cellPFEED1–prefixIOFILLER

$addIoFiller–cellPFEED01–prefixIOFILLER–fillAnyGap

$redraw

这样就在I/OPAD之间加入了IOFiller,可以拉看到原先PAD之间的缝隙被填

充了,如下图所示:

图19添加IOFiller后的效果

10、保存设计

选择Design→SaveDesign…保存当前设计,这样在下次要进行其他操作时可以

直接打开该设计,使其处于当前的设计状态。

选择Design→Save→GDS…导出版图设计为pad_,保存设计如下所

示:

设置完成后点击OK,保存版图信息。

保存用于后面LVS的网表文件Cnt10_PAD.v。选择Design→Save→Netlist…

打开保存Netlist对话框,在保存的文件名处填入Cnt0_PAD.v,然后点击OK保

存版图对应的网表信息。

三、版图后的DRC和LVS

1、版图导入到IC5141工具中

需要的文件有Encounter输出文件0.18um的工艺文件、Virtuoso显示设置文件、

DRC和LVS规则文件:

T18drc_13_,

0.18um_,

Calibre-lvs-cur_soce,

tsmc18_,

tsmc18_lvs.v,

pad_,

Cnt10_PAD.v

新建一个目录,将这些文件放入此目录下,从终端中打开IC5141:

$icfb&

启动IC5141后在CIW中,选择File→Import→Stream…,在StreamInform里input

file处点击Browse…选择pad_,TopCellName中填Cnt10_PAD,ASCII

TechnologyFileName处点击Browse…,选择0.18um_文件:

图21版图导入到Virtuoso中

完成设置后,点击OK,这样就把版图导入到版图设计工具中了。如图所示:

图22版图成功导入

在LibraryManager中找到pad_counter,然后在其中找到Cnt10_PAD,双击layout,

打开设计的版图:

图23十进制版图

刚打开的版图显示需要设置一下才会如上图所示,在视图中选择Options→

Display打开显示设置对话框,如图:

图24显示设置

按照图中所示进行设置后就可以看到图23所示的显示效果。

2、DRC检查

选择Calibre→RunDRC打开DRC设置框如下所示:

图25Rules设置

在Rules项中设置DRC规则文件T18drc_,然后点击RunDRC项,运

行DRC检查,运行结果显示如下图:

图26DRC结果

图中显示中大红叉的地方显示有7个Results,这7个Results是由于材料密度问

题引起的,一般是有芯片制造商去解决的,因此本设计DRC没有错误。

2、LVS检查

在做LVS检查时,可以不在IC5141里面做,我们这里在终端中通过执行命令来

完成。首先需要把Encounter输出的Cnt10_PAD.v文件转换为Calibre做LVS认

识的文件pad_文件,即是要先将.v文件转换为.spi文件。在终端中运

行如下命令:

$v2lvs–vCnt10_PAD.v–ltsmc18_lvs.v–opad_–stsmc18_–c

cic_-n

这条命令执行完后,会在当前工作目录下生成pad_文件,即hspice网

表文件。然后打开Calibre-lvs-cur_soce文件修改里面的内容如下图所示:

图27修改Calibre-lvs-cur_soce文件

修改后保存。

在终端中运行如下命令:

$calibre–lvs––hier–autoCalibre-lvs-cur_soce

这条命令执行完后会在当前目录下生成LVS报告文件及其其他一些LVS

报告文件,打开查看LVS报告:

图28查看LVS报告

可以看到,报告结果显示LVS是CORRECT的,也就是版图与电路原理图

是一致的。到此,一个以十进制计数器的版图自动设计就完成了,当然这是没有

实际意义的,仅仅是为了介绍使用Encounter进行自动版图设计的流程。实际的

版图设计中要经过很多其他的详细的操作,一个芯片版图的实现也远远不止这么

容易。接下来将以一个复杂的包含IP模块的设计来进一步深入的学习一下

Encounter在APR时可能要进行的步骤,也介绍一下一个版图应当进行那些检查

设计。

四、使用Encounter进行包含Block核的版图设计

文件准备:DTMF数据包文件,网上有下载,

1、设计关于儿童生活的古诗 文件和数据文件导入Encounter

将输入文件导入到Encounter中如图所示:

图4.1

在verilognetlist中指定DC输出的门级网表文件:所有的.v文件

在TimingLibraries中指定相应的时序库:fast、slow

在LEFFiles中指定.lef文件

在TimingConstraintfile:指定.sdc文件

在IOAssignmentFile中指定.io文件:

点击advanced,进如如图所示界面,会出现11项设置,填其中的5项即可,

图4.2

下一步,完成PowerPage的填写,如图所示,填入电源、地的节点名称以便创

建电源、地环。

图4.3

下一步,完成RCExtraction页的填写,如图所示。在CapacitanceTableFile栏

中指定captablefile文件,以便后面步骤中的信号完整性分析。

图4.4

图4.5

最后一步,完成SIAnalysispage的填写,如上图所示。添加theCeltICDB(cdB)

noiselibrary,该库用于CeltICcrosstalkanalysis。

到现在为止,我们已经对设计的输入、同时也指定了物理库、工艺规则文件、时

序库、时序约束文件。将这些配置保存到DIMF_文件中,下次操作时,

只须load该文件,工具将自动进行以上配置。

图4.6

完成以上步骤后点击OK键,出现如图所示的界面。

图4.7

2、Floorplanning

对窗口SpecifyFloorplanform进行设置,来指定thecorebox,IObox,diebox的

尺寸大小。步骤如下:

Floorplan→EditFloorplan→SpecifyFloorplan

在AspectRatio中,使用默认值选项

CoreMargins选择CoretoIOBoundary,

键入–CoretoLeft:100

键入–CoretoRight:100

键入–CoretoTop:100

键入–CoretoBottom:100

Click“Apply”按钮。完了后,IOPAD自动调整到离thecorebox边界100微米

处。(该距离根据设计要求决定)

图4.8

在也可对thecorebox的高宽比率进行调整,在ratio(H/W)中将默认值:1设置成

0.5,则thecorebox的高是宽的2倍了。

3、CreatingafloorplanwithRelativeFloorplan

对于芯片版图的布局来说,block的布局起非常重要的作用。下面对四个blocks

进行布局。

Floorplan→RelationFloorplan→,首先对

DTMF_INST/ARB_INST/ROM_512x16_0_INST进行放置,完成如图所示的填写

点击Apply。

图4.9

图4.10

然后以同样的方法对

DTMF_INST/RAM_256x16_TEST_INST/RAM_256x16_INSTBlock进行放置如

图所示:

图4.11

然后以同样的方法对

DTMF_INST/RAM_128x16_TEST_INST/RAM_128x16_INSTBlock进行放置如

图所示:

图4.12

然后以同样的方法对DTMF_INST/PLLCLK_INSTBlock进行放置如图所示:

图4.13

注意:如果你不想这样方式对4个blocks进行布局,可以通过Design→Load→

Floorplan,load文件。Encounter会根据该文件所定义的位置对4

个blocks进行自动布局。也可将手动布局保存到该文件以便下次调用。布局完

成后的效果如下:

图4.14

如果不想显示黄色指示箭头,可以如上图进行设置。

图4.15

4、Creatingblockhalos

当对blocks进行布局后,接下来创建blockhalos。其目的为了在对标准单元进行

布局时,能保证晕内不被放置标准单元,以利于其他走线。

首先对前面3个blocks进行操作,按住shift选中前3个blocks

(DTMF_INST/PLLCLK_INST,

DTMF_INST/ARB_INST/ROM_512x16_0_INST,

DTMF_INST/RAM_128x16_TEST_INST/RAM_128x16_INSTblocks.)

再选择Floorplan→EditFloorplan→EditHalos

选中,SelectedBlocks,PlacementHalo,Add/UpdateBlockHalo。

键入–Top:20

键入–Bottom:20

键入–Left:20

键入–Right:20

Click“Apply”按钮。

图4.16

图4.17

再对最后一个block进行操作,步骤同上,

键入–Top:20

键入–Bottom:34

键入–Left:20

键入–Right:20

ClicktheOKbuttonwhenready.

图4.18

图4.19

5、Globalnetconnection

接下来,我们要连接所有的globalNet,包括所有单元的power/groundp沉醉不醒by夕阳看鱼 in连接到

VDD/GND,以及把单元里连接到1的连到VDD,把连接到0的连接到GND。

执行Floorplan→GlobalNetConnections

图4.20

在GlobalNetConnectionsform里,Pins栏填如VDD,ToGlobalNet栏位填入

VDD,然后按AddToList,你会看到左边ConnectionList里多一份记录:

图4.21

整个设置需要六步,完成后的设置如下:

图4.22

到目前为止,左边的ConnectionList里有了六份记录,按Apply,然后按Check,

最后按CLOSE关闭此窗口。在Check时,你会看到很多Warning,说IOPAD

及CORNERPAD没有连接到SPECIALNET,这是正常的,因为PAD用的

POWER和CoreCell用的本来就不一样。

6、CreatingPowerandGroundRings

执行Floorplan→Powerplanning→AddRings,在Nets的栏位只留下VSSVDD,

RingConfiguration部分Top和Bomttom的LAYER改成Metal6,Width设成8,

Left和Right的LAYER改成Metal5,WIDTH也是设成8,Spacing中都统一设

置间距为1,其他如图中进行设置:

图4.23

图4.24

另一种方法:采用模板文件

第一步,对pllclkblock布电源环

Power->PowerPlanning->Synthesizepowerplan

出现图2所示的对话框,在totalAveragePower(mW)拦,填入6.0,选择Usetemplate

tocreatepowerplan与IP选项:

图4.25

然后点击Newtemplate图标,打开一个PowerPlanTemplate对话框。在对话框

中选择IPBlocktab选项:

图4.26

在IPBlockList选中pllclk,然后在BlockRing选项卡中选择RequireBlockRing,

Offset中填入1.0;去除Allowsharingwithothers选项;在layout选项卡中,选

择M5/M6,宽度设为8.0;pllclkblock并无要求布powerstripes,所以Stripe选

项卡可以跳过;点击set按钮,IPBlockList栏中,pllclk字体变粗,颜色变为兰

色;点击SaveAs按钮,打开theSpecifyTemplateName对话框,在theTemplate

Name:block.该文件保存了thepowerplanningtemplate的信息,以后会用到;点

击OK按钮,保存pllclkblocktemplatework。

第二步,对整个设计进行电源ring和stripes布线

不要关闭SynthesizePowerPlan对话框,接下来会反复用到,以方便设置。

在该对话框中,选择Design选项,点击Newtemplateicon(blanksheeticon),打

开EditPowerPlanTemplate窗口:

图4.27

选择Ring选项卡,再选中M6/M5,再选择Stripe选项卡,选中M6;该窗口是

针对整个设计进行设置,在RegionName中填入chip,在IPLibraryTemplate填入

block,点击Add/Modify按钮,设置好ring和stripe的参数信息;最后点击SaveAs

按钮,打开thespecifyTemplateName对话框,在TemplateName中填入chip;

点击OK,保存模板(注意:这是一个针对整个设计包括block在内的power

planningtemplate)。

图4.28

第三步,先不要关闭SynthesizePowerPlan对话框,接下来还会用到,点击

Power->PowerPlanning->EditPowerPlanOptions,打开对话框,点击Stripe按钮,

在option窗口选择StripeBreaking,示意图展示在窗口的右边,在示意图的下面选

择Omitstripesinsideblockrings选项,在示意图上方点击Add/Modify按钮;然

后在powerplanningoptionset填入breaking,点击Save按钮,关闭窗口。

图4.29

第四步,给整个芯片模板指定ring和stripes

在SynthesizePowerPlan对话框,确保templateselection为Design,templatename

为chip。

图4.30

点击Opentemplateicon,编辑theEditPowerPlanTemplateform;在PowerPlanning

OptionSet,填入breaking,点击Add/Modify按钮;点击Save按钮保存最后thepower

planningtemplate的设置。

图4.31

第五步,在SpecifyTemplateParameter对话框中指定ring和stripe的宽度和间隔。

首先确保SpecifyTemplateParameter对话框中templateselection:Design和the

templatename:chip被选中;点击SpecifyTemplateParameter图标,打开对话框,

在左边栏中,选中DTMF_CHIP:chip,在Ring选项卡中其他保持不变,做以下修改:

M6-M5:Width设为8.0,Spacing设为1.0,offset设为center。

图4.32

在stripe选项卡中,WireGroup不选,因为只要用到一组电源stripe,做一些修

改:Metal6,Width设为8.0,Spacing设为1.0,offset设为auto,选中Pitch,Count/Pitch

设为100。在ConfigureTemplatesection,Totalpower设为6.0mW。最后点击OK。

最后一步,在指定了powerplantemplates的参数后,针对整个设计产生Ring和

stripes。在SynthesizePowerPlan对话框中,确保TotalAveragePowerentry为

6mW,Design被选中.Templatename为chip,点击Apply或OK。

图4.33

7、Routingthepower/groundstructures

Sroute将电源与地连接到BlockPinsPadPins和StandardCellPins。

步骤如下:Route→Special→Route在TheBasicPage上做些修改如下

在Basicpage去选Padrings,其余设置保持不变。

图4.34

在Advancetab中点击Extensioncontrol,做以下两个修改:在thePrimary

Connectionfor、StandardCellPins,stripesection下选择None,theSecondary

Connection/stop,选择lastcellintherow:

图4.35

ViaGeneration栏不需要设置,点击Ok按钮,此时,所有的blockpins,powerrings,

standardcellfollowpins被连接起来:

图4.36

8、Verifyingconnectivityandgeometry

在设计完电源与地后,应进行Connections和Geometries验证(4一6年级古诗配画 DRC),分两步进

行:

1.Verifyingconnectivity

点击Verify->VerifyConnectivity,在NetType选项卡中选择specialonly,去选

Antenna;其余采用默认值,点击Ok按钮,如果有一些关于天线效应的警告,可

以忽略:

图4.37

查看违规信息,点击Verify->ViolationBrowser

图4.38

去除标记,Verify->ClearViolation。

2、Verifyinggeometry

点击Verify->VerifyGeometry,设置使用默认值,这并不对天线几何尺寸检查,点

击OK。

图4.39

9、PlaceStandardCellsandBlocks

RunningNanoPlacePlacement

放置一些标准单元,点击Place->StandardCellsandBlocks,在Basic栏中,去选Run

TimingDrivenPlacement,ReorderScanConnection。在Advancedpage中,选择

MediumEffort.点击OK按钮:

图4.40

此时可以看到许多标准单元已布置到CORE中:

图4.41

10、Loadingscanchaininformationandreorderingthescanchain

通过load一个.def文件载入ScanChain的信息,具体步骤如下:

点击Place->Load->DEF,打开LoadDEFFile对话框,选中点击Open:

图4.42

点击Place->Display->DisplayScan,点击OK,此时能看到很多扫描连接飞线;

图4.43

扫描链排序:

Place->ReorderScan,选中skiptwopincell点击OK

图4.44

再次使用DisplayScanChain对话框观看优化后的scanconnections

图4.45

Place->Display->ClearScanDisplay,去清除CORE区域:

图4.46

11、RunningTrialRouteandviewingcongestion

TrialRoute要进行两次操作,第一次,将金属层限制为3层,执行一次;第二次,

将金属层限制为6层执行一次;初步完成设计。

点击Route->TrialRoute,设置最大的RouteLayerto3,点击OK,或者可以在终端

中键入trialRoute–maxRouteLayer3,然后执行:

图4.47

TrialRouteto3执行后的结果如下:

图4.48

在图中Core区域,放大后可以看到有很多菱形红框,表示有Congestion,包括水

平布线拥塞和垂直方向布线拥塞。

点击Route->TrialRoute,将最大的RouteLayer设置为6层,点击OK,或者在终端键

入完满的近义词 trialRoute–maxRouteLayer6,命令执行后的结果如下:

图4.49

12、ExtractingRCandgeneratingsimulationandwireloadfiles

整个设计的所有节点电容都能通过ExtractRC:

设置RCextractionmode,点击Time->SpecifyAnalysisCondition->SpecifyRC

ExtractionModeform,在这里采用默认设置,在这里采用默认设置。RC数据抽

取时,会在工作目录上产生很多文件。可以点击Timing->ExtractRC,保持默认值,

点击OK。

图4.50

抽取的RC数据将用于延时的计算、时序的分析和功耗的分析。如果你无特别的

要求但你必须抽取RC,有两种方法:1)不选任何模拟文件格式,点击OK;2)

在Eecounter控制终端中输入“EXTRACTRC”

13、GeneratingWireLoadModel

该过程通过GeneratingWireLoadModel对话框来完成。

点击Timing->GenerateWireloadModel,选择CellBasedWireloadModel或者

InstanceBasedWireloadModel,点击OK;

将产生6个输出文件:

2个数据文件:DTMF_,DTMF_

2个DC脚本文件:DTMF_,DTMF_

2个BuildGatesandRTLCompilerloadscriptfiles:DTMF_

DTMF_

图4.51

14、CalculatingdelaysandgeneratingSDFfile

点击Timing->CalculateDelay,如果CTS没有执行,则选择IdealClock,然后点击

OK

图4.52

15、RunningSetupTimin月夜忆舍弟写作背景 gAnalysis

查看工作环境配置:Timing->Specifyanalysiscondition->SpecifyOperating

Condition/PVT

Max和Min栏采用默认值,点击OK,查看工作环境,P代表工艺,T代表温度,

V代表电压。

图4.53

16、RunningSetupTimingAnalysisandDisplayingViolationsandSlacks

在提取RC后,可以对设计进行时序分析,其分析的结果为一个时序图表,生成

了时序报告例如:violationreport,slackreport;

因为需在commontimingengine(CTE)mode时序分析,在命令行键入setCteMode,

点击Timing->TimingAnalysis,在DesignStage栏,选择Pre-CTS,在Analysis栏选

择Setup,在Advanced栏中,使用默认设置,设置好后点击OK:

更多推荐

encounter是什么意思ounter的用法读音典