Silicon Ensemble是cadence公司的一个自动布局布线工具。以下是比较常用的se设计流程。
启动:
命令“seultra –m=300&”是常用的启动模式。其中选项-m=300指定了系统需要分配的内存,较大的内存在设计过程中会有较快的速度。启动时,系统会自动搜索工作目录下的文件se.ini,该文件定义了se中的一些环境变量,如有系统会使用它来定制你所定义的设计环境,如没有,系统会使用默认的设置。其中环境变量中的DB.DESIGN.DIR指定了你工作过程中的中间数据所存放的目录。
启动后,就可以开始你的设计了。
一、导入你的初始设计数据:
你需要按次序导入你的物理库文件(LEF),网表文件(VERILOG和/或DEF),时序库(TLF)和约束文件(GCF)。
1.导入LEF文件
菜单命令:File->Import->LEF。如有多个LEF文件需分多次导入。
2.导入CTLF文件
CTLF文件是TLF文件经过编译得到。菜单命令File->import->Timing library 此步骤完后可存储中间数据,在以后过程中若遇到问题就不需要从头做起。
3.导入网表文件
file->import->verilog
4.导入设计约束文件
file->import->system constraints
GCF文件是Pearl工具把DESIGN COMPILER工具生成的.dc文件转换而来。文件中写出了整个设计中所用到的约束。 存储你的中间数据。
二、初始你的设计,并生成整个芯片的布局
floorplan->initialize floorplan
在出现的对话框中,你可以指定你的芯片的核的面积,ROW的放置关系,间距,利用率等数据。
三、放置I/O
place->Ios
你可以随机的放置你的I/O,也可以编辑一个文件*.ioc,来指定你的I/O的位置。对于一个具体的项目,可能对I/O的位置有一定的限制,这时就需要文件了。而且如果你把I/O放置的比较好的话,甚至会有利于你以后的布线。 存储你的中间数据。
注:如果你觉得se的布局不能令你满意,你甚至可以用别的好饿布局工具来生成满意的布局,但是生成的数据必须是DEF文件格式,这样才可以用file->import->DEF导入到SE中。
四、放置BLOCKS
place->Blocks
如果你的设计中有BLOCK的话,如处理器,RAM等。在出现的对话框中,开启时序驱动放置(Timing Driver Placemeng),SE自动放置BLOCKS,如果需要你也可以手动放置BLOCK。
五、生成初始的电源结构
route->plan power
这个命令会激起POWER PLANNER。在出现的面板上有相应的命令来生成电源结构,生成后你也可以根据自身的需要来修改,增加或删除一些电源线。
六、放置cells
place->cells
在对话框中,可开启相应的选项,在放置过程中会对cells的位置做一些优化,便于以后的布线。
七、放置时钟树
place->clock tree generate(CTGen)
对于一个时序要求高的设计来说,时钟树是一个至关重要的因素。它决定了整个芯片的性能,一个坏的时钟树甚至导致整个设计的失败。在生成时钟树前,你可以从RTL代码设计者,做综合的设计人员那里得到一些设计中的关键路径的时序的信息,然后写出生成时钟树所要的约束文件。如果成功了,在出现的对话框的右上角会有“successful”的字样。然后查看报告文件,如果时序上没有冲突,则完成时钟树。如果有,则修改约束文件,重新做,直到成功。
八、完成电源的连线
在布线之前,你必须把所有的CELLS和BLOCKS连到电源上,把STRIPES连到POWER RING上。
Route->connect ring
九、布线
route->wroute
在对话框上
enable global and final routing
enable auto search and repair
enable timing driver routing
如果ULTRA ROUTER不能完成连线和去除DRC错误,在ARTWORK WINDOW中回有许多的*。如果需要处理天线效应,则应在se.ini文件中给出相关的LEF文件的路径,在布线过程中会自动处理。
存储中间数据。
十、用HyperExtract提取寄生参数
report->RC
在HyperExtract选项上,它所用的规则文件已被指定为HYPEREXTRACT/hyper.rules,你需要准备这个文件。
十一、后时钟树时序优化
由于加入了时钟树,Ultra placer插入了不同与GCF文件中指定的的延时,就需要用Ultra Placer来修复这些留下的时序问题。
Place->placement optimization->qplace optimization。
存储中间数据。
十二、再次执行布线步骤,来修复被改动的单元。
在优化过程中会对有些单元进行改动,需要对这些单元再次连线。
Route->wroute
存储中间数据。
十三、查看我们的设计如何被改动
Report->ECO
这个报告文件会显示在生成时钟树和优化过程中的单元的变动。
十四、验证
verify->connectivity
这个命令会检查所有单元的连接关系是否正确。
Verify->geometry
这个命令会检查设计的DRC错误。
十五、最终寄生参数的提取
report->RC
提取最终的寄生参数。
十六、用PEARL进行最后的静态时序分析看设计是否符合时序要求。
使用HyperExract生成的RSPF文件。
十七、生成最终的SDF文件
report->delay
设置输出格式为physical SDF,设置SDF格式为3.0,并使用前面生成的RSPF文件。物理SDF文件列出了所有设计中的单元的时序信息,包括由CTGen和Ultra Placer加入的单元。
十八、输出最终的网表