跳到主要内容

Technology Knowledge · PDK 语义与工艺能力

LEF/Liberty/RC tech/rule deck/layer purpose 的集中语义管理。工具不再各自解析工艺文件——通过统一 TechContext 查询能力、coverage 和约束。

Agent Service · D0/DRAFT · Wave 0 规划中 · D0 iEDA.ai L4
tech — context — capability
# unified tech context for all tools
$ tech.load("sky130", format="open_pdk")
[layers] 22 metal + 5 via types
[rules]  min_width=0.15um spacing=0.17um
→ single TechContext,  zero per-tool parsers
iMapsynthesisiFPfloorplaniPDNpoweriPLplacementiCTSclockiTOoptimizationiRTroutingiSTAtimingAiEDAdesign dataiPCLlayout modeliMapsynthesisiFPfloorplaniPDNpoweriPLplacementiCTSclockiTOoptimizationiRTroutingiSTAtimingAiEDAdesign dataiPCLlayout model

核心能力

1. TechContext

统一的工艺上下文对象,聚合 LEF(physical)、Liberty(timing/power)、RC tech(extraction)、rule deck(DRC/LVS)的所有信息。每个工具通过单一 TechContext 查询工艺参数,不再各自解析原始文件。Context 支持lazy-load 和按层/按 corner 的增量更新。

2. Capability Query

查询某工艺节点支持的 layers、vias、rules。示例查询:available_layers() 返回金属层列表及 pitch/width;supported_vias(from_layer, to_layer) 返回可用通孔类型;max_routing_capacity(net_class) 返回布线资源上限。

3. Semantic Mapping

layer purpose(drawing/pin/obstruction/blockage)、via type(square/bar/stack)、unit(microns/db_units)的统一语义映射。消除不同 PDK 格式间的歧义:SKY130 的 li1 和 Nangate45 的 metal1 统一映射为 m1 语义层。

4. Qualification

工艺库的资格认证和数据完整性检查。验证 LEF/Liberty/RC tech 之间的一致性(如 LEF 中的 layer 是否在 RC tech 中有对应 model),检查缺失文件、版本不匹配、参数越界。生成qualification_report

5. PDK Adapter

为不同 PDK 格式生成统一 adapter:支持 OpenPDK(SKY130/GF180)、ASAP7、Nangate45、以及商业 PDK(需自定义 parser plugin)。Adapter 将原生格式统一转换为 TechContext 内部表示。

Agent 调用方式

from ieda.agent import TechKnowledge, TechContext

tech = TechKnowledge()

# 加载工艺并获取统一 context
ctx = tech.load(
    pdk="sky130",
    format="open_pdk",
    corner="typical"
)

# Capability 查询
layers = ctx.available_layers()
# layers: [{name: "m1", pitch: 0.30, width: 0.15, purpose: "drawing"}, ...]

vias = ctx.supported_vias("m2", "m3")
# vias: ["via2", "via2_stack"]

# 语义映射——统一不同 PDK 的命名
mapped = ctx.semantic_map("li1")  # sky130 local interconnect
# → canonical: "m0", purpose: "drawing"

# 资格认证
report = tech.qualify(ctx)
# report: {"consistency": "pass", "missing_files": [], "warnings": 3}

# 不同 PDK adapter
ctx_asap7 = tech.load("asap7", format="asap7")
ctx_nangate = tech.load("nangate45", format="nangate")

输入/输出契约

方向字段类型说明
输入pdkstrPDK 标识(sky130/gf180/asap7/nangate45)
输入formatstrPDK 格式(open_pdk/asap7/nangate/custom)
输入cornerstr时序 corner(typical/slow/fast)
输入queryTechQuerycapability 查询对象
输出contextTechContext统一的工艺上下文
输出query_resultdictcapability 查询结果
输出qualification_reportdict完整性/一致性检查报告