Parameter Settings

What’s the difference for setting don’t touch on cell, pin, net and path?

The dont touch objects can be cells, nets, pins, paths and library cells. It is a little special for pins since they are not real objects in designs. It is used to control the scanning process in optimization for purpose of debugging.

For cell and net, after don’t touch, it will not do the eco action.

For library cell, it means that all the cell instances with this library cell are dont touch.

For the pin, set to don’t touch and then fix violations will skip this pin when scanning.

For path, when the don’t touch represents fix violations, the pins on these paths will be skipped during scanning.


How to cancel don't touch setting?

xtop> set_dont_touch $pin false

xtop> set_dont_touch [get_paths -path_name Path_0] 0


How to skip ... ?

I/O Path

xtop> set_dont_touch [get_io_path_pins] 1

Sub Design

only fix sub design

xtop> set_module_dont_touch top_module true?

xtop> set_module_dont_touch {sub_module1 sub_module2} false

skip sub design

xtop> set_module_dont_touch? module_xxx

Hier Path

only fix hier path

xtop> set_hier_path_dont_touch? /? true

xtop> set_hier_path_dont_touch? {hier_path1 hier_path2} false

skip hier path

xtop> set_hier_path_dont_touch {hier_path1 hier_path2} true

startpoints / endpoints

xtop> set_dont_touch? [get_paths -end_points? $end_points_list]

xtop> set_dont_touch? [get_paths -start_points? $start_points_list]

internal or boundary paths

boundary paths

foreach sub_design $subdesign_list { set_dont_touch [get_paths -across $sub_design] }

internal paths

foreach sub_design $subdesign_list { set_dont_touch [get_paths -within $sub_design] }


How to set “l(fā)ower bound” and “upper bound” as old ICE?

lower bound

xtop> set_parameter unreasonable_negative_slack? xxx

upper bound

try to use -target option in timing fix command.


How to set legalization margin, density and congestion?

Use the set_placement_constraint command to set placement constraint for given design.

xtop> set_placement_constraint -design cpu -max_displacement {150t 0} -max_congestion 0.9

For example, this command will set max displacement allowed of eco inst from its desired place to 150*track_pitch, with track_pitch being first horizontal layer routing pitch.

The max displacement allowed for original inst in the design is set to 0, which means leglizer will not move original inst of the design. Max congestion is set to 0.9, which means legalizer will not insert buffer into region with routing congestion value larger than 0.9.

xtop> set_placement_constraint -design B_CORE -max_density 0.6 -density_region {(0, 0, 30, 30)}

For design B_CORE, above command will set placement density threshold in the rect region, with density threshold as 0.6.


What’s the difference between “set_lib_per_instance” and “set_specific_lib_cells?

set_lib_per_instance? specifies that instance uses some specific library, which is usually used for library specification of variable voltage domain. It specifies the library name. However, this library must come in before the corresponding corner link. When doing eco, it will only look for a solution in the specified library.

set_specific_lib_cells? specifies that certain modules can only use certain types of library cells. It is usually used for the specification of special cells for some special modules. These special units usually have keywords in their names, which are? pecified as the library cell name pattern, which supports wildcards. When doing eco, it is only allowed to find candidates in the specified cell collection.


How to read N7/N12 abutment rules?

If the rules are given in the tech LEF, the program can directly read it.

If the rules are given using script file, please replace lib_cells with ref_cells, replace get_lib_cells with get_ref_cells, before sourcing it.


How to allow legalization on a design filled with fillers?

Use the set_removable_fillers command to set those filler cells matched with the specified patterns to be removable during ECO and optimization process. The cells are matched with reference library cell name, and those cells set as fixed or locked are not included.

Following example specifies some buffers to be removable fillers.

xtop> set_removable_fillers {FILLX2 FILLX4 DCAPX8 DCAPX12}

Set 4 cells as removable.

User can specify an empty string list to clear all the removable fillers.


How to control dynamic gain and margin?

At the beginning of the brief log there is a gain threshold, which is written according to the scenario. Use this value * 10 can be used as an automatic setup margin to see if it is appropriate.

Gain threshold = fastest buffer * coefficient(around 0.05)

Margin threshold = fastest buffer *coefficient (0.5).?

Margin = org margin + margin threshold

If the margin user has already been set, it will be set according to the user's margin.


Why not recommend dont_touch [get_paths -group ...]?

Because the path belongs to the group in the pt is not unique. For example, the default asyn path and io related to many paths may be repeated, this may lead to the missing of some path, more repair the customer does not want to.?

xtop> fix_..._violations [get_path -group ...]

It is recommended to use fix... [get_path -group] , because this is to fix the one you want to fix.


How to control the small Setup gain threshold?

Try the internal control variable: opt_gain_threshold.?

It controls how many setup timing each individual cell can improve when doing size down operations. This variable is used in conjunction with the legal distance to ensure that the setup gain is positive.

For example, the legal distance is set to 3, the increased route and via will consume a part of the setup gain, so it is required to get more than15ps when sizing up. This value may be set according to the actual design and scenario.

xtop> set_placement_constraint -designcpu -max_displacement {3 0}

xtop> set opt_gain_threshold 0.015

The distance of the second example of legal is set to 0, the original size, can be considered unchanged basically.

xtop> set_placement_constraint-design cpu -max_displacement {0 0}

xtop> set opt_gain_threshold 0.001


Why cannot clear the dont_touch attribute on some cells?

User tried the following commands, but find the cells with dont_touch is not changed.

xtop> set_dont_touch [get_cells xxx] 0

xtop> get_dont_touch_cells

By default, XTop will honor the setting of pt, any dont touch set in pt will be dont touch.To modify the dont_touch setting in pt data, you must use the parameter: honor_annotated_dont_touch.

xtop> set_parameter honor_annotated_dont_touch false


Why set_dont_touch on I/O path not working?

User set_dont_touch [get_io_path_pins] , but some I/O paths still have buffers inserted during the fix hold timing. Through the is_dont_touch command, you can see that those I/O is not set at all.

Reason:

Only the I/O setting on the reset side is invalid, and other I/Os have no problem. When the PT is out of data, when the logical amount of the IO cover is too large (more than 25% of the total logical number), the I/O will not be written as an I/O to the ilm file, so we are setting don't touch, there is no such IO at all.

Solution:

First, use the all_fanout -from port to get all the pin information, then set the set_dont_touch [get_pins ***] to be set separately.



====== 返回目錄 ======

<<< 上一章:Reading Timing Data

>>> 下一章:Automatic ECO

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市险绘,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌,老刑警劉巖霞溪,帶你破解...
    沈念sama閱讀 219,366評論 6 508
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異中捆,居然都是意外死亡鸯匹,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,521評論 3 395
  • 文/潘曉璐 我一進(jìn)店門泄伪,熙熙樓的掌柜王于貴愁眉苦臉地迎上來殴蓬,“玉大人,你說我怎么就攤上這事∪咎” “怎么了痘绎?”我有些...
    開封第一講書人閱讀 165,689評論 0 356
  • 文/不壞的土叔 我叫張陵,是天一觀的道長肖粮。 經(jīng)常有香客問我孤页,道長,這世上最難降的妖魔是什么涩馆? 我笑而不...
    開封第一講書人閱讀 58,925評論 1 295
  • 正文 為了忘掉前任行施,我火速辦了婚禮,結(jié)果婚禮上魂那,老公的妹妹穿的比我還像新娘蛾号。我一直安慰自己,他們只是感情好涯雅,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,942評論 6 392
  • 文/花漫 我一把揭開白布鲜结。 她就那樣靜靜地躺著,像睡著了一般活逆。 火紅的嫁衣襯著肌膚如雪精刷。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 51,727評論 1 305
  • 那天蔗候,我揣著相機(jī)與錄音贬养,去河邊找鬼。 笑死琴庵,一個(gè)胖子當(dāng)著我的面吹牛误算,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播迷殿,決...
    沈念sama閱讀 40,447評論 3 420
  • 文/蒼蘭香墨 我猛地睜開眼儿礼,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了庆寺?” 一聲冷哼從身側(cè)響起蚊夫,我...
    開封第一講書人閱讀 39,349評論 0 276
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎懦尝,沒想到半個(gè)月后知纷,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,820評論 1 317
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡陵霉,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,990評論 3 337
  • 正文 我和宋清朗相戀三年琅轧,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片踊挠。...
    茶點(diǎn)故事閱讀 40,127評論 1 351
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡乍桂,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情睹酌,我是刑警寧澤权谁,帶...
    沈念sama閱讀 35,812評論 5 346
  • 正文 年R本政府宣布,位于F島的核電站憋沿,受9級特大地震影響旺芽,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜辐啄,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,471評論 3 331
  • 文/蒙蒙 一采章、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧则披,春花似錦共缕、人聲如沸洗出。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,017評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽翩活。三九已至阱洪,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間菠镇,已是汗流浹背冗荸。 一陣腳步聲響...
    開封第一講書人閱讀 33,142評論 1 272
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留利耍,地道東北人蚌本。 一個(gè)月前我還...
    沈念sama閱讀 48,388評論 3 373
  • 正文 我出身青樓,卻偏偏與公主長得像隘梨,于是被迫代替她去往敵國和親程癌。 傳聞我的和親對象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,066評論 2 355

推薦閱讀更多精彩內(nèi)容