在 Cadence Genus 合成後,怎麼知道每個 gate 來自哪個 RTL instance?
國立中央大學
國立中央大學
8 жњ€ 14 ж—Ґ 13:10 (е·Із·ЁијЇ)
жњЂиї‘ењЁз”Ё Cadence Genus( version: GENUS_21.18.000 ) еЃљ RTL-to-Gate еђ€ж€ђж™‚йЃ‡е€°дёЂеЂ‹е•ЏйЎЊпјљ
合成後的 gate-level netlist 我想知道 每個 gate �從哪個 RTL instance 轉換來的,但如果合成時扁平化(flatten)了,好像就會失去階層資訊。
我目前的疑問:
在 Genus 合成時,有沒有設定可以保留階層名稱或 instance 資訊?
如果已經 flatten,還有沒有辦法回推每個 gate 的 RTL 來源?
希望 netlist 能保留層級路徑,每個 gate 名稱會�: u_top/u_block1/U23 這樣
有經驗的前輩可以分享一下做法嗎,非常感謝?
еђ€ж€ђ
Cadence
Genus
ж„›еїѓ
19
й›»иі‡
й›»иі‡жќїзљ„ж›ґе¤љж–‡з« RC電路求教
еїѓжѓ… 0гѓ»з•™иЁЂ 3
thumbnail
з©Ќй«”й›»и·ЇиЁ­иЁ€ жіўећ‹з•°еёё
еїѓжѓ… 15гѓ»з•™иЁЂ 11
thumbnail
#求助 verilog專家請進(已解決)
еїѓжѓ… 10гѓ»з•™иЁЂ 38
github
еїѓжѓ… 6гѓ»з•™иЁЂ 6
жњ‰й—њж–јйЂљиЁЉжј”з®—жі•еЇ¦зЏѕж–јfpgaе·ҐдЅње‡єи·Ї
еїѓжѓ… 5гѓ»з•™иЁЂ 11
救救我的OS作業系統
еїѓжѓ… 3гѓ»з•™иЁЂ 9
thumbnail
еЋ»зњ‹зњ‹й›»иі‡жќїзљ„ж–‡з« е…ЁйѓЁз•™иЁЂ
這則留言已被本人刪除
已經刪除的內容就像 Dcard 一樣,錯過�無法再相見的!
B18 жњ€ 14 ж—Ґ 14:08
(е·Із·ЁијЇ)
N
рџ’–рџ’—рџ’“рџ’•рџ’ћрџ’”
з ґе†°й«�手
з ґе†°й«�手
2
我想大概有以下可能可以解決…
1.在Genus合成時保留階層名稱與instance資訊,且在RTL-to-Gate的設計流程中,假如gate-level netlist可以保持有類似「u_top/u_block1/U23」的設計階層路徑,例如:
(1)дёЌи¦Ѓfull flattenпјљ
@1 set_db syn_global_effort medium
@2 set_db preserve_hierarchy true
@3 set_db flatten none
@4 set_db preserve_hierarchy {u_top/u_block1 u_top/u_block2}
這樣指定哪些block要保留階層,其他允許 flatten。
(2)flattenдЅ†дїќз•™instanceеђЌзЁ±пјљ
@1
set_db write_vlog_unconnected_ports true
set_db uniquify_naming_style "%s_%i"
set_db preserve_names {cells nets}
@2
set_db write_name_nets_cells true
set_db uniquify_naming_style "%s_%i"
set_db preserve_names {cells nets}
這樣可讓flatten後的cell名稱還保留部分原始RTL instance的字串組,雖然階層消失了,但至少可從名字回推到來源。
2.е·Із¶“flatten後,要回推來源時,樣本如已完全flattenдё”жІ’й–‹preserve_namesпјЊй‚Је№ѕд№ЋдёЌеЏЇиѓЅе®Ње…Ёе›ћжЋЁеЋџе§‹RTL instanceпјЊе› з‚єеђЌе­—е’ЊйљЋе±¤йѓЅиў«з·Ёи™џеЊ–пјЊдЅ†ж�Їй‚„жњ‰е…¶з ґи§Јд№‹жі•пјљ
(1)檢查synthesis log/report:
Genus在合成中會輸出mapping report,如report_mapping、report_hierarchy,裡面可能有cell與RTL instance對應的資訊。
(2)дїќз•™DDC/DBжЄ”жЎ€пјљ
如�過save_db的設計DB,通常還有RTL與gate的mapping,可用Genus/Innovus的report_cell_origin找回。
(3)дЅїз”Ёsource annotationпјљ
жњ‰дє›flowењЁflattenе‰ЌжњѓењЁnetlist cellеђЌзЁ±еѕЊеЉ дёЉиЁ»и§ЈпјЊе¦‚гЂЊ/* from: u_block1/U23 */гЂЌпјЊеЃ‡иЁ­ењЁflowжњ‰еЉ дёЉйЂ™зЁ®иЁ»и§ЈпјЊе°±иѓЅжЋЁе›ћдѕ†жєђгЂ‚
3.и®“netlist保留層級路徑的做法,在於需要的ж�ЇгЂЊu_top/u_block1/U23гЂЌйЂ™зЁ®еђЌзЁ±пјЊжњЂдЅіеЊ–ж�ЇењЁwrite_netlistе‰ЌдёЌи¦Ѓfull flattenпјЊж€–з”Ёpartial flattenдё¦еЉ дёЉname preservationпјЊдѕ†йЃїе…ЌгЂЊе®Ње…Ёж‰Ѓе№іеЊ–гЂЌпјЊдё¦дїќз•™cell/netеђЌзЁ±еѕЊпјЊдѕ†йЂІйљЋеЇ«е‡єnetlist,如:
@1
set_db flatten none
set_db preserve_names {cells nets}
write_hdl -format verilog -hierarchy -output netlist_hier.v
這樣「netlist_hier.v」就會保有階層路徑與原始RTL instance的對應名稱。
@2
set_db preserve_hierarchy true
write_hdl -hierarchy
此可保留階層,但還有優化空間。
@3
set_db preserve_names {cells nets}
ж­¤еЏЇдїќз•™еђЌзЁ±пјЊдЅ†е·ІflattenеЏ€жњЄдЅњдїќз•™еђЌзЁ±зљ„и™•зђ†пјЊе°‡з„Ўжі•е®Ње…Ёе›ћжєЇпјЊеЏЄиѓЅйќ mapping reportж€–иЁ­иЁ€DBгЂ‚
B28 жњ€ 14 ж—Ґ 14:14
(е·Із·ЁијЇ)
йљ±и—Џз•™иЁЂ
原 PO - 國立中央大學
0
B2 ж„џи¬ќе›ћз­”! йЂ™ж�ЇдЅ 自己打的嗎?
B2-18 жњ€ 14 ж—Ґ 14:55
N
рџ’–рџ’—рџ’“рџ’•рџ’ћрџ’”
з ґе†°й«�手
з ґе†°й«�手
0
B2-1
е°±еЏѓиЂѓи‡Єе·±з­†иЁ�пјЊж­ЈеѓЏж‚Ёи®Ђж›ёж™‚д№џжњѓжњ‰дёЂдє›з­†иЁ�гЂ‚
我比較習慣使用RTL-Verilog程式經由Cadence Genus編譯成Gate-level Natlise的電路階級,就會留有一些舊案心得筆�,但我也不敢100%保證有對應到您的問題……
但這樣總�比用Cadence Virtuoso Layout弄得要死要活,來的好太多的了……您說不�嗎🤣🤣🤣
B2-28 жњ€ 14 ж—Ґ 15:54
(е·Із·ЁијЇ)
原 PO - 國立中央大學
0
B2-2 您之前有做過類似的事情嗎?
B2-38 жњ€ 14 ж—Ґ 16:22
N
рџ’–рџ’—рџ’“рџ’•рџ’ћрџ’”
з ґе†°й«�手
з ґе†°й«�手
0
B2-3 您�指像�數位、類比的IC設計,或�設計底層的半導體製程之類的?
B2-48 жњ€ 14 ж—Ґ 16:38
原 PO - 國立中央大學
0
B2 您�使用legacy_genus嗎,還�新版的?
我沒辦法用preserve_names和preserve_hierarchy。
您�用哪一版的?
B2-58 жњ€ 14 ж—Ґ 22:51
(е·Із·ЁијЇ)
N
рџ’–рџ’—рџ’“рџ’•рџ’ћрџ’”
з ґе†°й«�手
з ґе†°й«�手
0
B2-5 從legacy genus用到19多版之後,就換cadence genus來用,畢竟cadence公司,除了西門子EDA之外,設計上的工具還算�比較親民的
B2-68 жњ€ 14 ж—Ґ 23:49
這則留言已被本人刪除
已經刪除的內容就像 Dcard 一樣,錯過�無法再相見的!
B2-7�天 06:54
(е·Із·ЁијЇ)
N
рџ’–рџ’—рџ’“рџ’•рџ’ћрџ’”
з ґе†°й«�手
з ґе†°й«�手
1
B2-5 е› з‚єд№‹е‰ЌдЅїз”Ёзљ„ж�Їи€Љз‰€(20.1以下)пјЊдЅ†ж�Їж–°з‰€(зґ„21.18.0以上)有可能特定的設計變數如preserve_namesгЂЃpreserve_hierarchy不相容,可能已被新版合併、重新命名,或可能需搭配特定flow才有效,變數名在新版本被替換,如set_db preserve_hierarchyиЅ‰и®Љж€ђset_db preserve_design {hierarchy}пјЊж€–йњЂй…Ќеђ€dont_flatten屬性,其flowж�Їcompile_ultraж€–е…¶д»–з­‰еѓ№й«�ж•€жµЃзЁ‹пјЊй ђиЁ­flattenе¤§йѓЁе€†йљЋе±¤пјЊењЁијѓж–°з‰€иЈЎпјЊжњ‰дёЂдє›ијѓи€Љзљ„и®Љж•ёеЏЇиѓЅйњЂеЉ syn_global_前綴字串,如syn_global_preserve_namesпјЊжњ‰дє›ж™‚еЂ™еЏЇиѓЅйњЂи¦ЃйЂђй …и©¦й©—пјЊдЅїз”ЁзЄ®и€‰жі•(жљґеЉ›жі•)才可能確認每一個問題點,考驗耐性……рџ�…рџ�…рџ�…
B2-8�天 09:22
(е·Із·ЁијЇ)
回覆……
國立成功大學
1
以前�每個module各自合成netlist後, 全部在top.v拼裝一起再合一次
hierarchyйѓЅжњѓдїќз•™, дёЌйЃЋж�Їз”Ёdesign compiler
B38 жњ€ 14 ж—Ґ 17:09
國立中正大學
1
1. е¦‚жћњдЅ ж�Їз”Ёedacloud2,最新版ж�ЇGenus 23.34пјЊи¦ЃдЅїз”ЁDDIзљ„license
2. set_db design.inst_name.ungroup_ok false (before syn_generic)
B48 жњ€ 14 ж—Ґ 21:24
(е·Із·ЁијЇ)
йљ±и—Џз•™иЁЂ
原 PO - 國立中央大學
0
B4 感謝回答,想問您之前有這麼做過嗎,不確定能不能
B4-18 жњ€ 14 ж—Ґ 22:04
國立中正大學
1
B4-1 жњ‰пјЊзђ†и«–дёЉcadenceењЁtoolзљ„з›®йЊ„йѓЅжњ‰user guideеђ§пјџдЅ еЏЇд»Ґз”Ёugи‡Єе­ё
B4-28 жњ€ 14 ж—Ґ 22:10
原 PO - 國立中央大學
0
B4 請問我能私信請教您嗎
B4-38 жњ€ 14 ж—Ґ 23:54
國立中正大學
0
B4-3 дЅ е°±ењЁйЂ™жЉЉе•ЏйЎЊе€—дёЂе€—еђ§
B4-4�天 08:31
原 PO - 國立中央大學
0
B4-4 我沒辦法用preserve_names和preserve_hierarchy這些指令,查不出hier,網路上的ug都滿舊的我不確定能不能用,想問您�用哪個版本成功的,可以的話能提供部分tcl嗎感謝!
B4-5�天 11:55
國立中正大學
1
B4-5 我覺得這不能公開分享餒
B4-6�天 14:02
原 PO - 國立中央大學
0
B4-6 дёЌж–№дѕїйЂ™ж®µcodeе…¬й–‹дёЌе‹‰еј·пјЊй‚ЈеЏЇд»Ґе‘ЉиЁґж€‘дЅ з”Ёй‚ЈеЂ‹з‰€жњ¬зљ„д»ҐеЏЉз”Ёе“Єдє›иЄћжі•е—Ћж„џи¬ќв�єпёЏ
B4-7�天 14:43
(е·Із·ЁијЇ)
0
You can add this document to your study collection(s)
Sign in Available only to authorized usersYou can add this document to your saved list
Sign in Available only to authorized users(For complaints, use another form )