基于innovus的全加器数字芯片物理实现(step by step)

环境设置

创建一个单独的目录(例如,innovus)。创建子目录synthlib

1、 将full\_adder\_pads\_syn.v移动到synth目录

我们可以看出来这是一个综合后gale-level的verilog门级网表。

2、将osu05\_stdcells.lef移动到lib目录

读入设计

1.在Unix提示符后,键入:innovus

2.出现innovus工具窗口时,在菜单栏选择File->Import Design 读入设计

单击 […]读入Verilog网表文件

1.      单击**“>>”**按钮展开窗口以显示目录

选择文件full\_adder\_pads\_syn.v并单击Add按钮将其添加到Netlist文件列表中。

6.对于Top Cell,选择**“Auto Assign”**

对于Technology/Physical Libraries,选择**“LEF文件”。单击[…]**按钮打开LEF文件

使用与读入Verilog Netlist文件相同的方法,选择文件lib/ osu05\_stdcells.lef

对于Power,输入以下内容:

a. Power Nets: vdd
b. Ground Nets: gnd

点击 OK

保存和恢复设计

NOTE:切记要及时保存你的设计选择File, Save Design

在Save Design窗口中,选择数据类型:innovus。程序将分配一个扩展名为*** .enc**的默认文件名。可以更改名称,但不要更改扩展名。

要加载已保存的innovus文件,请执行File, Restore Design。 在“Restore Design”窗口中,选择数据类型:innovus。选择要还原的文件。

Floorplanning

在innovus工具菜单栏中,选择Floorplan,Specify Floorplan

1.在“Basic”选项卡中,选择以下选项:

Core Margins  – 选择Core to IO Boundary并设置为100

2.单击“OK”

Power Planning

在innovus工具菜单栏中,选择Power,Connect Global Nets以进行全局电源网络连接

1. 在Power Ground Connection中。

a、在Connect区域中,选择Pin

b、“Scope”区域中,选择“Apply All

2.对于每个net( vdd和gnd),执行以下操作:

a、在以下框中输入net名称(vdd或gnd):

i. To Global Net
        ii. Pin Name(s)

b、 单击“Add to List”按钮

3.单击“Apply”,然后单击“Cancel

Power Rings

在innovus工具菜单栏中,选择Power->Power Planning->Add Rings

对于Net(s),输入vdd和gnd,如下所示:

a、单击[…]框进行Net Selection

b、从Possible Nets列中选择vdd和gnd

C。单击“Add”以复制到“Chosen Nets”列

d。单击OK

Ring Configuration中,选择metal1作为TopBottommetal2作为LeftRight

a、宽度为8

b、间距为1

C、Offset为 “Center in channel

单击“OK

Power Stripes

在innovus工具菜单栏中,选择Power->Power Planning->Add Stripes

1. Basic

对于Net(s),输入vdd和gnd nets,如下所示:

单击[…]框以获取“Net Selection”窗口

Possible Nets列中选择vdd和gnd

单击“Add”以复制到“Chosen Nets”列

单击OK

Set Configuration中,选择Layer metal2和Direction vertical。宽度应为8、间距为1

在“Set Pattern”中,将“Set-to-set”设置为100

First/Last Stripe中,设置从左到右相对于core或选定区域的距离为20

Advanced选项

Set Snap wire center to routing grid设置为Grid

单击“OK

将电源连接到Standard Cell Rows

在innovus工具菜单栏中,选择Route-> Special Route,然后单击“OK”。生成power(vdd)和gnd(gnd)给standard cell rows供电。

Placing the Standard Cells

在innovus工具菜单栏中,选择“Place”,“Standard Cells”

选择“Run Full Placement”和“Include Pre-Place Optimization

单击“OK”

放置Standard Cells后,在innovus窗口中更改为“Physical View”以查看placement结果

Routing

在innovus工具菜单栏中,选择Route->NanoRoute->Route,点击Ok

添加Filler Cells

现在我们已完成我们设计的placementrouting,我们将添加Filler Cells。选择Place->Physical Cell->Add Filler。

Add Filler窗口中,输入Cell Name “FILL”并选中Mark Fixed。单击ok

推荐阅读

  • 行波进位加/减法器的硬件开销和性能分析
  • 静态时序分析及setup&hold时序违例修复
  • SystemVerilog内建two-state 数据类型:高仿真性能,低内存消耗

想了解更多内容,欢迎关注芯片数字实验室专栏,由于工具,你可以专注在更重要的事情上。

发表评论

邮箱地址不会被公开。 必填项已用*标注