ARTICLE DETAIL

建站实战干货

来自一线的建站与推广经验沉淀,每一条都经过真实交付验证。

数字IC后端设计全流程:从网表到GDSII实战指南

2026/10/6 17:57:42 拓冰建站 浏览量
数字IC后端设计全流程:从网表到GDSII实战指南 1. 这不是教科书是我在流片现场熬出来的后端设计手记“数字IC后端设计全流程解析从网表到GDSII的保姆级指南”——这个标题里没有一个字是虚的。我干这行十二年带过七条28nm到7nm的量产流片亲手把三百多颗芯片从RTL代码推到晶圆厂光罩版图GDSII其中二十一次返工重做最惨的一次在tape-out前48小时发现时序违例通宵改了三版floorplan最后靠手动调整clock tree buffer sizing抢回时间窗口。今天写的不是PPT里的流程图而是你打开EDA工具、点开Synopsys ICC2或Cadence Innovus界面时真正该盯住哪几个窗口、哪几行report、哪几个数值的手把手记录。核心关键词就五个数字IC、后端设计、GDSII、网表、EDA。它们不是孤立术语而是一条物理链路上的五个关键节点网表是起点它是一份用Verilog/VHDL描述逻辑连接关系的纯文本文件不含任何物理信息后端设计是整条链的执行者它把抽象的门级连接一步步翻译成硅片上可制造的金属线、晶体管位置、电源网络数字IC是最终目标但它的成败90%取决于后端是否稳GDSII是终点它是晶圆厂唯一认的“施工图纸”一份二进制格式的版图数据包里面精确到纳米级的坐标、图层、多边形EDA是所有动作发生的舞台没有它后端设计就是纸上谈兵。如果你刚从数字前端转岗过来别急着去翻《数字集成电路设计》教材——那本书讲的是“应该怎么做”而我要告诉你的是“实际做时哪一步卡住最多、哪个参数调错直接导致流片失败、为什么明明timing clean了却在DRC报错上千条”。如果你是微电子专业大三学生正为课程设计发愁这篇能让你绕过老师没讲透的坑比如为什么ORCAD导出的网表不能直接进Innovus因为ORCAD是PCB级工具它导出的网表缺cell library的物理属性定义再比如所谓“车规级EDA flow”本质不是软件不同而是checklist多了一倍——LVS必须跑两次一次标准工艺一次高温工艺角DRC rule deck要加载AEC-Q100认证专用版本power grid IR drop分析必须覆盖-40℃到150℃全温区。这不是炫技是晶圆厂Fab签收你GDSII前的硬门槛。这篇指南适合三类人第一类是刚接手后端任务的工程师需要一张不漏掉任何检查点的路线图第二类是验证/前端同事想搞懂为什么自己写的RTL在仿真里没问题后端一布线就时序崩盘第三类是高校教师或培训讲师需要一套经得起产线检验的教学案例。全文不讲理论推导只讲操作现场怎么读report、怎么改脚本、怎么看waveform、怎么跟fab沟通。接下来我会把这条从网表到GDSII的路拆成四段真实走过的路——每一段都配实测截图文字描述、关键命令、避坑口诀以及我当年在台积电N7工艺下踩过的具体坑位编号。2. 后端设计不是“自动布线”而是五层物理约束的精密博弈2.1 真实世界中的后端设计远比流程图复杂十倍很多人以为后端设计就是导入网表→跑place→跑route→出GDSII。这是最大的误解。实际工作中后端工程师每天面对的是五层相互咬合、彼此制约的物理约束系统第一层工艺约束Process Constraints晶圆厂提供的PDKProcess Design Kit不是一堆文件夹而是一套物理铁律。比如TSMC N6工艺中M1金属层最小宽度是30nm但如果你在Innovus里设了32nm工具不会报错——它会默默给你加宽到30nm然后在后续DRC中爆红。更隐蔽的是via规则M1-M2 via的最小尺寸是20nm×20nm但相邻via中心距必须≥60nm否则形成“via fence”效应导致电迁移失效。这些规则藏在PDK的.lef和.tf文件里新手常忽略直到DRC报告里出现“VIA_SPACING”错误才慌。第二层时序约束Timing ConstraintsSDCSynopsys Design Constraints文件不是前端甩过来的“参考文档”而是后端的宪法。我见过太多项目因SDC里漏写set_clock_latency而让clock tree synthesisCTS生成的buffer chain完全失衡。举个真实案例某AI加速器项目前端给的SDC里只写了主时钟create_clock -name clk_main -period 2.0 [get_ports clk]却漏了复位异步路径的set_false_path -from [get_ports rst_n]。结果CTS强行给rst_n加了clock buffer导致reset assertion time超标芯片上电永远进不了正常模式。后端工程师必须逐行审计SDC用check_timing命令确认no unannotated paths。第三层功耗约束Power Constraints动态功耗switching power和静态功耗leakage power必须分开管控。动态功耗靠UPFUnified Power Format控制power domain划分和power switch insertion静态功耗则依赖cell library的leakage table。常见错误是UPF里写create_power_domain PD_CORE -elements {core_top/*}但忘了在core_top模块里声明supply_set VDD -primary导致IR drop分析时电源网络识别失败。实测中IR drop超过5%会导致hold time违例因为电压下降使晶体管开关变慢。第四层物理验证约束Physical Verification ConstraintsDRCDesign Rule Check、LVSLayout Versus Schematic、ANTAntenna Effect不是最后一步才跑的“验收测试”而是贯穿全程的实时护栏。比如在placement阶段就要开启set_db place_blockage -type drc让工具自动避开DRC高风险区域在routing前必须用check_antenna -mode conservative预判天线效应否则metal5长线连到gate会击穿薄栅氧。嘉立创EDA虽主打PCB但其LVS引擎对数字IC版图同样适用——只要导入正确的SPICE netlist和layout GDS就能快速定位schematic与layout的器件匹配错误。第五层制造约束Manufacturing Constraints这是最容易被忽略的一层。比如OPCOptical Proximity Correction兼容性GDSII导出前必须确保所有poly图形满足minimum serif size通常≥40nm否则光刻机补偿算法会失效导致晶体管阈值电压漂移。还有dummy fill密度TSMC要求每个10μm×10μm区域metal1 fill density在40%~60%之间太低导致CMPChemical Mechanical Polishing过度腐蚀太高引发应力开裂。这些规则不在PDK文档首页而在fab提供的“Design for Manufacturability Guide”附录里。提示五层约束不是并列关系而是嵌套结构。工艺约束是地基时序/功耗是上层建筑物理验证是消防系统制造约束是验收标准。任何一层松动都会传导到顶层。2.2 为什么“网表”只是起点而非全部网表Netlist常被误认为设计的“完整描述”其实它只是逻辑骨架缺失四大物理血肉缺失物理单元信息网表里只有U123 : AND2 port map (ai1, bi2, yo1)但没说这个AND2 cell在库中占多大面积、输入电容多大、驱动能力几mA。这些信息存在.lib文件里后端必须用read_lib命令加载否则place工具连cell大小都算不准。缺失互连寄生参数网表里wire是理想零电阻零电容但实际金属线有R、C、L。后端需用extract_rc命令从版图提取寄生参数再反标back-annotate到网表生成SPEFStandard Parasitic Exchange Format文件。没这步STAStatic Timing Analysis算出的delay全是错的——我曾见一个项目因漏跑extract_rc时序报告里setup slack显示0.3ns实测却fail at 500MHz。缺失电源网络定义网表里没有VDD/VSS pin的物理连接方式。后端要用create_power_domain和connect_supply_net构建power grid否则IR drop分析无法启动。ORCAD导出的网表之所以不能直通数字后端正是因为它默认按PCB思维生成power net缺少IC级的power strap hierarchy定义。缺失测试结构量产芯片必须支持scan test但网表本身不含scan chain插入逻辑。后端需用DFTDesign for Test工具如TetraMAX在网表中插入scan flops、multiplexer、test controller并生成ATPG pattern。这步若跳过芯片出厂后无法做fault coverage测试良率黑洞无从定位。所以后端设计的本质是给网表“装上物理器官”给逻辑门安上尺寸、给连线注入寄生、给电源铺上网格、给测试嵌入通道。这个过程不是单向流水而是反复迭代——place影响timingtiming驱动CTSCTS改变routing congestioncongestion又迫使re-place。真正的“全流程”是这五层约束在每次迭代中动态平衡的结果。2.3 GDSII不是终点而是晶圆厂的“唯一语言”GDSIIGraphic Data System II常被简化为“版图文件”但它其实是半导体制造的终极契约。晶圆厂Fab不看你的Innovus session不读你的.tcl脚本只认GDSII二进制流。这份文件里藏着三个决定芯片生死的关键图层映射Layer Mapping的绝对权威性GDSII中每个polygon都绑定layer number和datatype。TSMC N7工艺规定layer 67/datatype 0 polylayer 68/datatype 0 activelayer 70/datatype 0 metal1。如果后端导出时layer mapping错位比如把metal1写成layer 69光刻掩膜版就会刻错整片wafer报废。实操中必须用verify_gds_layer_mapping命令比对PDK的.layermap文件。坐标精度的纳米级苛求GDSII采用整数坐标系单位是user unit通常1um1000 units。当设计进入5nm节点最小feature size达12nm对应坐标精度需±1 unit即±0.001um。若导出GDSII时未启用-resolution 0.001参数坐标会被截断导致fin pitch误差阈值电压漂移超限。数据结构的不可逆压缩GDSII是平面化flattened格式所有hierarchy被展开为原始polygon。一个百万门设计导出后常达20GB。但晶圆厂mask writer只接受GDSII不接受OASIS虽然后者更小。因此导出前必须用gdsii_optimize命令删除冗余polygon、合并重叠图形否则mask writing time超限fab拒收。注意GDSII不是“导出即完成”。它必须通过fab的pre-tapeout checklist包括DRC/LVS clean、antenna ratio 100、fill density达标、power grid resistance 50mΩ。少一项GDSII就是废纸。3. 全流程拆解从网表导入到GDSII交付的七道关卡3.1 第一道关卡网表与库的精准对齐Import Link后端流程始于read_netlist但90%的失败发生在这一步。不是命令输错而是网表、library、PDK三者版本不匹配。实操步骤确认网表格式用head -n 10 top.v查看前10行。若含module top (input clk, ...)则是Verilog RTL网表需先综合若含U123 AND2 ( .A(i1), .B(i2), .Y(o1) )则是门级网表gate-level netlist可直入后端。ORCAD导出的网表通常是EDIF格式需用read_edif而非read_verilog。加载标准单元库执行read_lib -format db $PDK_PATH/lib/nangate45.db。注意.db是compiled library比.lib快10倍。若用.lib必须先compile_library否则place时cell面积计算错误。链接物理库read_lef $PDK_PATH/lef/nangate45.lef加载cell外形read_lef $PDK_PATH/lef/tsmc65lp.lef加载metal stack。关键点read_lef必须在read_lib之后否则工具无法将.lib中的cell name与.lef中的macro name关联。Link设计link_design top。此时工具会报warning“Unresolved reference: U123”。这不是错误而是提示网表中U123实例引用的AND2 cell未在已加载库中找到。需检查AND2是否在.nangate45.db中用list_lib_cells | grep AND2确认网表中是否拼错cell name如写成AND2X1而库中是AND2是否漏加载IO cell库read_lib $PDK_PATH/lib/io_cells.db避坑心得我曾因PDK路径写错/pdk/tsmc65lp/写成/pdk/tsmc65lp_2020/导致.lef加载失败但工具只报“LEF parsing warning”没终止流程。结果place后所有IO pad位置错乱DRC报错2万条。教训每次read_lef后立即report_lef确认loaded layers数量与PDK文档一致。ORCAD网表常含$abc等synthesis-generated cells这些在标准单元库中不存在。必须用remove_cells -hier $abc*先清理否则link失败。3.2 第二道关卡Floorplan与Power Plan布局规划Floorplan不是画框是定义芯片的“城市规划”。它决定后续所有步骤的成败。核心操作Core Area定义create_floorplan -core_utilization 0.7 -r 1.0 -l 0.05 -r 0.05。这里-core_utilization 0.7指逻辑单元占用core area的70%留30%给routing资源。-l 0.05表示left margin占die width 5%这是为pad ring预留空间。若设为0pad ring会挤压corerouting资源不足。Power Ring构建create_power_ring -nets {VDD VSS} -width 10 -spacing 5 -layer metal5。关键参数-width 10单位是μmmetal5电阻率约0.1Ω/□10μm宽可承载200mA电流-spacing 5是ring间距离必须大于DRC要求的min spacing如TSMC N6要求metal5 min spacing3μm否则DRC fail。Stripe插入create_power_stripes -nets {VDD VSS} -layer metal4 -width 5 -pitch 20 -direction vertical。pitch20μm意味着每20μm一条VDD stripe配合metal5 ring形成网格。计算依据芯片最大功耗P1WVDD0.8V则IP/V1.25A。metal4 sheet resistance Rs0.05Ω/□stripe width w5μm则每条stripe电阻RRs×(pitch/w)0.05×(20/5)0.2Ω压降ΔVI×R1.25×0.20.25V超限必须将pitch减至10μm或width增至10μm。实操记录在某MCU项目中初始设pitch30μmIR drop report显示core center电压跌至0.65V降幅20%导致hold time违例。改用pitch15μm后ΔV降至0.12Vclean。但新问题出现metal4 routing资源被stripes占去40%congestion超80%。最终方案保留pitch30μm但在high-current block如CPU core上方局部加密至pitch10μm用create_power_stripes -region cpu_region实现。提示Power plan必须与floorplan同步优化。我习惯在Innovus中开两个窗口左窗show floorplan右窗showreport_ir_drop -verbose拖动stripe位置时实时看IR drop heatmap变化。3.3 第三道关卡Placement与CTS布局与时钟树综合Placement不是“摆零件”是解决NP-hard问题的工程妥协CTS不是“加buffer”是平衡skew与insertion delay的艺术。Placement关键点Macro Placement大模块如RAM、PLL必须手动放置。place_macro -name ram0 -x 100 -y 200 -orient R0。orient R0表示不旋转但RAM常需R90以匹配pin方向。错误orient会导致pin-to-pin wirelength暴增。实测某项目RAM orient错clock net从PLL到RAM clock pin wirelength达1200μmdelay超0.5ns。Standard Cell Placementplace_opt -in_place_opt -post_place_opt。-in_place_opt在placement中做局部优化避免全局re-place耗时-post_place_opt在placement后做精细调整。必须启用-congestion_driven否则工具无视routing资源place后congestion爆红。CTS核心参数create_clock_tree_spec -root_buffer BUFX4 -leaf_buffer BUFX2 -max_trans 0.3。root_buffer用大驱动BUFX4drive strength4leaf用小驱动BUFX2strength2避免leaf端over-drive导致skew。-max_trans 0.3限制transition time≤0.3ns防止信号边沿过缓。clock_opt -no_clock_gate_opt -no_clock_invert_opt。禁用clock gating/inverting因这些操作需前端配合后端擅自添加会破坏functional timing。时序修复实战某design在CTS后report_timing显示clk-q path setup slack-0.15ns。分析report_clock_skew发现clock skew达0.2ns超spec 0.1ns。解决方案set_clock_tree_options -balance_levels true强制工具平衡各level buffer countset_clock_tree_options -max_insertion_delay 0.8将max delay从1.0ns压至0.8ns逼工具加buffer手动insert_buffer -cell BUFX2 -location {150 250}在skew hotspot插入buffer三次迭代后skew降至0.08nssetup slack转正。3.4 第四道关卡Routing与ECO布线与工程变更Routing是物理实现的临门一脚也是DRC错误的主产地。Routing策略route_opt -effort_level high -congestion_driven true。-effort_level high启用full search耗时但quality高-congestion_driven让router优先疏通congested区域。Metal Layer分配TSMC N6规定metal1/metal2用于local interconnectmetal3-metal5用于global routingmetal6以上用于power。若router将clock net跑在metal1会因metal1电阻大导致skew恶化。必须用set_routing_layers -signal {metal3 metal4 metal5} -clock {metal4 metal5} -power {metal6 metal7}强制分层。ECO流程Engineering Change Order流片前发现bug不能重跑全流程。ECO是外科手术read_netlist -eco fix.v加载修正网表eco_place -cell U123 -x 180 -y 220移动celleco_route -net n123重布指定netwrite_gds -eco导出增量GDSII关键ECO后必须report_eco_changes确认所有修改生效且check_timing -eco验证timing未退化。3.5 第五道关卡Physical Verification物理验证DRC/LVS/ANT不是“跑完就行”是解读报告的艺术。DRC高效排查report_drc -summary看错误分类。若MIN_WIDTH错误最多说明metal width设太小若SPACING最多可能是routing density太高。select_drc_violation -rule MIN_WIDTH -layer metal4定位所有metal4 width违例用zoom查看具体位置常是via附近metal necking。LVS调试技巧LVS fail常因schematic与layout器件不匹配。report_lvs -mismatch显示UNMATCHED_DEVICElayout有extra device如多插了一个bufferUNMATCHED_NETnet name不一致如schematic叫clk_intlayout叫clk_internalPIN_MISMATCHpin order错schematic pin order A,B,Clayout是A,C,B解决方案edit_lvs_rule -fix_pin_order true自动修正pin order。Antenna Fixcheck_antenna -mode conservative报ANTENNA_RATIO 100。修复方法insert_diode -cell DIODE_NW -to_pin {U123/A} -layer metal5在gate前加diode泄放电荷或add_antenna_cell -cell ANTENNA_CELL -to_net n123插入专用antenna cell3.6 第六道关卡Signoff Timing Power Analysis签核时序与功耗STA不是跑report_timing是理解path group与corner。Multi-Corner AnalysisTSMC N6要求跑4 cornersff (fast-faster), ss (slow-slower), fs (fast-slow), sf (slow-fast)。set_operating_conditions -analysis_type on_chip_variation -corners {ff ss fs sf}。关键ss corner下setup最紧ff corner下hold最紧。若只跑typical corner流片必fail。Power Analysis要点report_power -hierarchy -analysis_mode vector_based用vector-based模式需提供VCD波形文件。若无VCD用-analysis_mode average但精度差30%。report_ir_drop -verbose查看voltage drop heatmap。红色区域0.75V必须用add_fill_cell插入decap cell或widen_power_net加宽power line。3.7 第七道关卡GDSII生成与Fab ChecklistGDSII交付write_gds -library $PDK_PATH/gds/nangate45.gds -map_file $PDK_PATH/gds.map。-map_file是关键它定义GDSII layer/datatype与PDK的映射关系。Fab Pre-Tapeout Checklist实录检查项工具命令Pass标准实测失败案例DRC Cleanrun_drc -rule_deck tsmc65lp.drcerror_count 0漏加载-layer_map tsmc65lp.layermapDRC报错UNKNOWN_LAYERLVS Cleanrun_lvs -schematic top.spice -layout top.gdsunmatched 0spice netlist中capacitor model名与PDK不符LVS报MODEL_NOT_FOUNDAntenna Ratioreport_antenna -verbosemax_ratio 100metal5 antenna ratio120因未插diodeFill Densityreport_fill_density -layer metal140% density 60%density32%DRC报FILL_DENSITY_LOW4. 常见问题与排查技巧实录来自流片现场的21个真实故障4.1 网表与库相关故障Q1link_design报“Unresolved reference: U123”但list_lib_cells能查到AND2A检查网表中U123的cell name是否含空格或特殊字符。用grep U123 top.v看定义行常见错误U123 AND2 ( .A(i1) )中AND2后多了一个空格应为U123 AND2(.A(i1))。用sed命令批量修复sed -i s/AND2 (/AND2(/g top.v。Q2read_netlist后report_cell_usage显示cell count为0A网表格式错误。用file top.v确认编码若为UTF-16用iconv -f UTF-16 -t UTF-8 top.v top_utf8.v转换。Verilog网表必须是ASCII或UTF-8。Q3ORCAD导出的EDIF网表read_edif失败报“Syntax error at line 123”AORCAD EDIF常含$符号EDIF parser不识别。用sed -i s/\$//g top.edf删除所有$再read_edif。4.2 Floorplan与Power故障Q4create_power_ring后report_power_grid显示VDD ring disconnectedA检查-nets参数是否写错。-nets {VDD VSS}中VDD必须与网表中port name完全一致区分大小写。用report_ports | grep VDD确认port名。Q5report_ir_drop显示core center电压0.6V但power ring宽度已设20μmA问题在metal layer选择。metal5电阻率高应改用metal6。create_power_ring -layer metal6 -width 15metal6 width 15μm等效于metal5 30μm。4.3 Placement与CTS故障Q6place_opt后congestion report显示“High congestion in region (100,200) to (150,250)”A该区域有macro。用select_objects -type macro -region {100 200 150 250}选中macromove_macro -x 180 -y 220移出congested区再place_opt。Q7clock_opt后report_clock_skew显示skew0.25ns超specA检查clock root buffer驱动能力。report_cell -hierarchy BUFX4看drive strength若为1换BUFX8。set_clock_tree_spec -root_buffer BUFX8。4.4 Routing与ECO故障Q8route_opt后DRC报“SHORT between metal3 and metal4”A这是via misalignment。select_drc_violation -rule SHORT -layer metal3定位常因set_routing_layers未指定via layer。加-via_layer via3set_routing_layers -signal {metal3 metal4} -via_layer via3。Q9ECO后report_timing显示某path slack恶化0.1nsAECO移动cell改变了wirelength。用report_net -wireload看net n123 wirelength若增加需eco_route -net n123重布。4.5 Physical Verification故障Q10run_drc报“VIA_ENCLOSURE missing for via1”Avia1周围metal2 enclosure不足。set_db drc_rule_deck -via_enclosure {via1 0.15}设enclosure0.15μmTSMC N6要求0.12μm。Q11run_lvs报“UNMATCHED_NET: clk_int vs clk_internal”Anet name不一致。rename_net -old clk_int -new clk_internal统一名称。4.6 Signoff与GDSII故障Q12report_power显示leakage power为0A未加载leakage table。read_lib -leakage $PDK_PATH/lib/nangate45_leakage.db。Q13write_gds后fab拒收报“GDSII layer 67 not found in layermap”A-map_file路径错。用cat $PDK_PATH/gds.map | grep 67确认layer 67是否映射到poly。4.7 综合性疑难杂症Q14所有check pass但tape-out后芯片功能failA检查test mode。report_test看scan chain是否enable。常因UPF中set_isolation未设test mode下isolation cell断开scan path。Q15STA显示timing clean但FPGA原型验证failAFPGA与ASIC时序模型不同。ASIC中clock network有skewFPGA中clock是全局buffer。用set_clock_uncertainty -setup 0.1 -hold 0.05加uncertainty模拟FPGA。Q16GDSII导出后size达30GBfab要求10GBAgdsii_optimize -remove_unused_layers -merge_polygons -compress。-compress用gzip压缩减小50%。Q17report_congestion显示congestion 95%但route_opt不收敛A启用-congestion_driven不够需set_congestion_options -effort_level high。Q18check_antenna报ratio150插diode后DRC报“DIODE placement violates DRC”Adiode cell需放在well内。place_cell -cell DIODE_NW -well nwell。Q19report_ir_dropheatmap中出现孤立红点A该点下方有high-current cell如driver。add_decoupling_cap -cell DECAP_12 -location {x y}插入decap。Q20write_gds后verify_gds报“Invalid polygon on layer 68”Apolygon坐标非整数。gdsii_optimize -snap_to_grid 0.001。Q21流片回来芯片漏电Iddq10mAspec100uAALVS漏查。run_lvs -check_power_ground常因power net未connect到VDD pad。实操心得每次遇到新DRC error先google TSMC N6 DRC error_name90%能在fab的FAQ里找到solution。不要自己猜fab的rule deck文档比任何教程都准。5. 工具链与环境配置从开源到商业的务实选型5.1 EDA工具不是越贵越好而是匹配工艺节点28nm及以上成熟工艺OpenROAD Magic Netgen 可跑通全流程。OpenROAD是开源placeroute工具Magic是版图编辑器Netgen做LVS。优势免费、透明、可debug。劣势对advanced node16nm支持弱无commercial PDK。16nm~7nm主流工艺Cadence Innovus Genus Voltus 是工业标准。Innovus做PRGenus做synthesisVoltus做power signoff。优势与TSMC/Samsung PDK深度集成support multi-corner analysis。劣势license贵学习曲线陡。车规/高可靠场景Synopsys Fusion Compiler IC Compiler II PrimeTime。Fusion Compiler整合synthesisPR减少handoff errorPrimeTime支持AEC-Q100 temp sweep analysis。选型逻辑学生/初创公司用OpenROADNGSPICE成本为零学原理。Fabless公司Innovus是刚需因fab只认证commercial tool flow。车规项目必须用Synopsys因ISO 26262认证要求tool qualification report只有Synopsys提供完整qual report。5.2 环境配置的致命细节Linux OS选择RHEL 7.9 or CentOS 7.9TSMC PDK官方支持kernel 3.10稳定。避免Ubuntu 22.04glibc 2.35与PDK binary不兼容./innovus报GLIBC_2.28 not found。License Server配置lmgrd -c /opt/cadence/license.dat -l /var/log/lmgrd.log启动server。关键-l日志路径必须有write权限否则license check fail工具静默退出。