TESTKEY就是做一些测试结构,通过probe PAD来量测,评估测试结构的性能指标。得到此器件的SPICE模型。所以一般待测试器件结构会有多种变体.比如:mos器件,会有多种串并联方式外加L W 变化值的组合。组合出来的这些mos 三端口会单独连接到测试PAD上。MOM电容器件,会有多种叉指宽度变化,space的变化,金属层次的变化等。
有些公司在新工艺导入时,会做一些TESTKEY来摸底此工艺下,所关心的器件的实际电学模型.一般的设计方式是,设计者提供好需要测试的器件结构类型以及需要测试的各size 值。layout 工程师根据这些信息手动调出对应的器件,修改成对应的参数,然后放置到teskline中,进行版图连接。对于pdk中不存在的器件或结构,只能手工layout。所需要的结构变化也只能手动调整。所以同一个结构可以就有几十种layout,人工做是非常耗时耗力的。
通过定制自动化flow,从四周工作量降到一周完成。效率提升明显。
准备工作梳理要测试的器件结构,统一做成参数化cell,pdk中pcell 或自定制udd cell
UDD 制作可以参考以前文章:
Step by Step 教你使用UDD做Pcell
UDD 是什么?版图中如何使用?
如下UDD 制作成的三端电容,开放需要变化的参数,供脚本来修改填充。

PAD的大小与pitch是固定这个比较容易处理,在第一颗PAD需要增加x方向offset,用来后续生成testline的标记logo

根据连接关系,脚本自动创建连接。这里给定使用Metal1 Metal2 两层金属可以使用。
这里在连接到器件上的pin时做了fan-in的处理,让连接更加强壮也可以避免宽走线在device附近的space问题。

电容使用Metal2 生成时的连线,也可以自动做router. 处理不太美观,但连接没有问题。

如此就可以批量完成testline的创建与probe line创建连接。

如何在工作中消除这类痛点。能否找到优化flow的方式。下面是我完成此需求的一些思路。
将痛点具体化:第一步拆分成子需求
1.testline PAD如何摆放,对应pitch与个数要求
2.器件参数化,pcell自定制使用UDD的方式实现
3.器件如何放置到需要连接的PAD指定位置
4.器件如何与对应的pad做自动连接,连线金属层与通孔约束
5.器件parameter与其他标识mark生成
6.上述各子需求之间的关系
第二步梳理出必要的输入信息
1.pad的pitch,testline的space,对应pcell或udd cell的参数列表与参数值列表。
2.device 放置的位置信息,pin连接到PAD的关系信息。
第三步脚本开发测试,结合实际项目需求优化.
后端知识分享 EDA使用心得 Linux 环境 脚本分享 Perc开发 Custom compiler" data-from="0" data-origin_num="57" data-is_biz_ban="0" data-isban="0" data-biz_account_status="0" data-index="0" style="color: initial;font: initial;font-palette: initial;font-synthesis: initial;forced-color-adjust: initial;text-orientation: initial;text-rendering: initial;-webkit-font-smoothing: initial;-webkit-locale: initial;-webkit-text-orientation: initial;-webkit-writing-mode: initial;writing-mode: initial;zoom: initial;accent-color: initial;place-content: initial;place-items: initial;place-self: initial;alignment-baseline: initial;animation-composition: initial;animation: initial;app-region: initial;appearance: initial;aspect-ratio: initial;backdrop-filter: initial;backface-visibility: initial;baseline-shift: initial;baseline-source: initial;block-size: initial;border-block: initial;border: initial;border-radius: initial;border-collapse: initial;border-end-end-radius: initial;border-end-start-radius: initial;border-inline: initial;border-start-end-radius: initial;border-start-start-radius: initial;inset: initial;box-shadow: initial;break-after: initial;break-before: initial;break-inside: initial;buffered-rendering: initial;caption-side: initial;caret-color: initial;clear: initial;clip: initial;clip-path: initial;clip-rule: initial;color-interpolation: initial;color-interpolation-filters: initial;color-rendering: initial;color-scheme: initial;gap: initial;contain: initial;contain-intrinsic-block-size: initial;contain-intrinsic-size: initial;contain-intrinsic-inline-size: initial;container: initial;content: initial;content-visibility: initial;counter-increment: initial;counter-reset: initial;counter-set: initial;cursor: initial;cx: initial;cy: initial;d: initial;display: initial;dominant-baseline: initial;empty-cells: initial;fill: initial;fill-opacity: initial;fill-rule: initial;filter: initial;flex: initial;flex-flow: initial;float: initial;flood-color: initial;flood-opacity: initial;grid: initial;grid-area: initial;height: initial;hyphenate-character: initial;hyphenate-limit-chars: initial;hyphens: initial;image-orientation: initial;image-rendering: initial;initial-letter: initial;inline-size: initial;inset-block: initial;inset-inline: initial;isolation: initial;letter-spacing: initial;lighting-color: initial;list-style: initial;margin-block: initial;margin-inline: initial;marker: initial;mask: initial;mask-type: initial;math-depth: initial;math-shift: initial;math-style: initial;max-block-size: initial;max-height: initial;max-inline-size: initial;max-width: 100%;min-block-size: initial;min-height: initial;min-inline-size: initial;min-width: initial;mix-blend-mode: initial;object-fit: initial;object-position: initial;object-view-box: initial;offset: initial;opacity: initial;order: initial;orphans: initial;outline: 0px;outline-offset: initial;overflow-anchor: initial;overflow-clip-margin: initial;overflow: initial;overlay: initial;overscroll-behavior-block: initial;overscroll-behavior-inline: initial;overscroll-behavior: initial;padding-block: initial;padding: 0px;padding-inline: initial;page: initial;page-orientation: initial;paint-order: initial;perspective: initial;perspective-origin: initial;pointer-events: auto;position: initial;quotes: initial;r: initial;resize: initial;rotate: initial;rx: initial;ry: initial;scale: initial;scroll-behavior: initial;scroll-margin-block: initial;scroll-margin: initial;scroll-margin-inline: initial;scroll-padding-block: initial;scroll-padding: initial;scroll-padding-inline: initial;scroll-snap-align: initial;scroll-snap-stop: initial;scroll-snap-type: initial;scroll-timeline: initial;scrollbar-gutter: initial;shape-image-threshold: initial;shape-margin: initial;shape-outside: initial;shape-rendering: initial;speak: initial;stop-color: initial;stop-opacity: initial;stroke: initial;stroke-dasharray: initial;stroke-dashoffset: initial;stroke-linecap: initial;stroke-linejoin: initial;stroke-miterlimit: initial;stroke-opacity: initial;stroke-width: initial;table-layout: initial;text-align: initial;text-align-last: initial;text-anchor: initial;text-combine-upright: initial;text-emphasis: initial;text-emphasis-position: initial;text-indent: initial;text-overflow: initial;text-shadow: initial;text-size-adjust: inherit;text-underline-offset: initial;text-underline-position: initial;white-space: initial;timeline-scope: initial;touch-action: initial;transform: initial;transform-box: initial;transform-origin: initial;transform-style: initial;transition: initial;translate: initial;user-select: initial;vector-effect: initial;vertical-align: initial;view-timeline: initial;view-transition-name: initial;visibility: initial;border-spacing: initial;-webkit-box-align: initial;-webkit-box-decoration-break: initial;-webkit-box-direction: initial;-webkit-box-flex: initial;-webkit-box-ordinal-group: initial;-webkit-box-orient: initial;-webkit-box-pack: initial;-webkit-box-reflect: initial;-webkit-line-break: initial;-webkit-line-clamp: initial;-webkit-mask-box-image: initial;-webkit-print-color-adjust: initial;-webkit-rtl-ordering: initial;-webkit-ruby-position: initial;-webkit-tap-highlight-color: initial;-webkit-text-combine: initial;-webkit-text-decorations-in-effect: initial;-webkit-text-fill-color: initial;-webkit-text-security: initial;-webkit-text-stroke: initial;-webkit-user-drag: initial;-webkit-user-modify: initial;widows: initial;width: initial;will-change: initial;word-spacing: initial;x: initial;y: initial;z-index: initial;box-sizing: border-box !important;overflow-wrap: break-word !important">
IC模拟版图设计IC 设计后端知识分享 EDA使用心得 Linux 环境 脚本分享 Perc开发 Custom compiler57篇原创内容公众号