微波EDA网,见证研发工程师的成长!
首页 > 研发问答 > 微电子和IC设计 > IC后端设计交流 > 请教大大们一个问题!使用ICC做initializa Floorplan是的问题!

请教大大们一个问题!使用ICC做initializa Floorplan是的问题!

时间:10-02 整理:3721RD 点击:

当我定义core_width和core_height的时候,工具做出来的数值,总是不能匹配我定义的数值,工具好像要做snap track!
如何定义才能是工具做出来的数值和我定义的数值精确匹配呢!
多谢大大们赐教啦!

为啥要精确匹配,没必要啊,
只要能容纳那些row就行了,
具体不snap,要看 set_snap_object_types *** ,一个cmd可以调整,
还有core 的boundary是可以调整的,你可以s----》 strecth boundary,
想调多少就多少
get_attr [get_core_area] bbox
不知道 set_attrbbx 行否

貌似在initial floorplan的时候,是可以针对length来做的,control type那里,选择length吧。

是本来有length,width 数值选择的啊

我的ICC的版本是1003-sp2,在initialize_floorplan -control_type 只有aspct_ratio|width_and_height|row_number|boundary这几个选项,没有length的选项。
因为是给模拟做的小块数字PR,模拟那边给过来的frame就是要精确的数值,所以需要PR的boundary和模拟给的frame精确匹配,因为模拟那边的pin的位置和坐标已经定义好了。

试试这几个cmd!

试了,好像不行,即使用stretch,wire也会自动snap到wire track上。
使用set_object_snap_type -enabled false也没有什么效果。

差别也就是顶多1 个track的差别,有很大问题么,
大不了整个block 平移动一个track的距离,
只要pin能连上就行了

你好, 你的问题是不是你的BLOCK 的 BOUNDRY不能精确定义?是这样的问题么?

嗯!是这样的,比如说我要定义width是157.33,但是工具做出来的width是157.08,如何才能是工具做出来的数值和我给的数值精确匹配呢?

只要pin能够和模拟的对上不久行了吗,只要wide 和height不会差距太久可以了

嗯!你说的也是可行的,但是这种精确匹配工具可以做到吗?

以前我也遇到过,刚找了一下我以前的项目,你试试以下指令
create_die_area\
-poly { {0.000 -20.000} {238.000 -20.000} {238.000 179.790} \
{164.840 179.790} {164.840 257.000} {134.000 257.000} \
{134.000 136.000} {0.000 136.000} {0.000 -20.000}}
set oldSnapState [set_object_snap_type -enabled false]
update_floorplan
initialize_rectilinear_block -use_current_boundary -control_type length \
-start_first_row -flip_first_row -row_core_ratio 1.0 \
-left_io2core 1 -right_io2core 1 -top_io2core 0.8 -bottom_io2core 1
红的你改改试试

这个方法好像是可行的,但是我执行initialize_rectilinear_block出现了错误!icc_shell> initialize_rectilinear_block -use_current_boundary -control_type length -start_first_row -flip_first_row -row_core_ratio 1 -top_io2core 1 -bottom_io2core 1
INFO: point set is counter-clockwise
INFO: top boundary has 4 sides
INFO: Please use rectangle floorplan "axgPlanner" to place pins.
Error: The initialize_rectilinear_block command failed. (APLUI-004)
0
floorplan变成这样了,core area缩在左下角那一块!


呵呵, 因为你的是四边形,我的那个设计是多边形,我再给你找一个,
create_boundary-poly { {0.000 0.000} {0.000 436.000} {150.000 436.000} {150.000 0.000} {0.000 0.000}}
set oldSnapState [set_object_snap_type -enabled false]
initialize_floorplan -control_type boundary-keep_io_place \
-start_first_row -flip_first_row -row_core_ratio 1.0 -left_io2core 1 -right_io2core 1 -top_io2core 1 -bottom_io2core 1
试试这个~

可以了,太谢谢你啦!

不客气,呵呵,共同学习~
还上班呢

没错,这个多半是snap选项造成的,
有点误差

以前这个问题我碰到过,如果用WIDTH和HEIGHT定义,不管你开不开那个选项都会有误差。
但如果用BOUNDRY,分两步来做,就可以,可能ICC有点问题吧

先用initialize_floorplan之后再用adjust_fp_floorplan做一下微调就能到得到你想要的整数尺寸了。

厉害, adjust_fp_floorplan还没有用过,
你是synopsys的啊

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top