Hotdry.
systems-engineering

Intel 386 标准单元逻辑电路中的非寻常门级电路:逆向工程解析

逆向工程Intel 386标准单元库,揭示用于紧凑自定义逻辑的巨型多路复用器、错位晶体管和伪反相器等非寻常门级电路,实现面积高效设计。

Intel 386 处理器于 1985 年推出,是 Intel 首款 32 位 x86 处理器,集成 28.5 万晶体管,采用 1.5μm CMOS 工艺。为应对设计复杂度,386 团队首次引入标准单元(standard cell)逻辑设计,用于控制逻辑块。该方法通过预定义标准逻辑单元(如反相器、与非门、锁存器),由软件自动放置布线(place and route),大幅加速布局过程,避免手动布局延期风险。尽管当时自动化工具不成熟,但 386 提前完成设计,成为经典案例。

标准单元设计的核心是单元库中标准化电路,按固定高度排列成行,行间为布线通道(routing channels)。386 的标准单元区域呈条纹状,暗条为晶体管,亮区为金属布线。不同于手动优化的数据通路或微码 ROM,标准单元区布局看似随机,但高度密集。逆向工程显示,386 标准单元库包含若干非寻常门级电路,这些电路针对寄存器选择逻辑优化,处理 x86 架构复杂性:32 位寄存器可拆为 16 位 / 8 位子寄存器、方向位交换源 / 目寄存器、指令 / 微码指定寄存器等。每次操作需选 3 寄存器(2 源 1 目),17 种情况,每路 7 位控制信号选 30 寄存器并指定访问部分,总逻辑庞大。

典型非寻常电路之一是巨型多路复用器(mux),用于寄存器控制。传统 mux 用与 / 或门实现,但 386 采用 CMOS 开关(transmission gate),由 NMOS+PMOS 晶体管并联构成:NMOS 拉低高效、PMOS 拉高效,互补控制(NMOS 高电平导通、PMOS 低电平导通)。开关无放大,需反相器恢复信号。标准单元中,CMOS 开关单元宽固定,高匹配行高,输入 / 选通信多硅(polysilicon)连接,便于左右接入。逆向硅层显示,多晶硅绿线横跨掺杂硅形成栅极,金属层(M1 垂直、M2 水平)布线。4 选 1 mux 示例如下:输入 A/B/0/1 各配开关,选通信一热编码(one-hot)激活。386 mux 扩展至 17 输入,绿 / 紫 / 红单元群驱动 3 路输出,黄单元生反相信号。移除金属层显硅,证实密集开关阵列节省面积,避免大与 / 或门。

另一奇特设计是错位晶体管:标准单元列间布线通道中孤立 PMOS 晶体管,拉高 mux 信号。推测为 bug 修复:重新生成布局耗时长(IBM 主机小时级),工程师手动插晶体管 + 金属线修补,避免延期。此例凸显标准单元灵活性:虽自动化为主,手动微调容错。

最巧妙是 “伪反相器”:外观如中型反相器(PMOS 上拉、NMOS 下拉),硅布局近似,但栅极间微隙断开,独立输入。真反相器栅极连通单输入,此处 NMOS/PMOS 别控:NMOS 拉低、PMOS 拉高、或均关通 mux 输出。相当于 mux 额外 2 案,无需新单元,复用 32 真反相器 + 9 伪单元。比较硅图:真反相器单输入孔,真伪双孔(一误为跨线)。此设计节省库容量,提升自定义逻辑密度。

这些非寻常电路的核心优势是面积高效:CMOS 开关 mux 比门级小,伪单元零成本扩展,错位修补避重布局。参数落地清单:

  • 单元高度:匹配工艺 poly pitch + 扩散区,386 约 10-15 栅距。
  • Mux 规模:7 位控制,17 热码输入;优化恒 0/1 输入省晶体管。
  • 开关设计:双晶体管 + 双反相器(PMOS 弱区复制);选通反相。
  • 库管理:多尺寸反相器(小速慢、大驱动强);伪单元变体。
  • 监控:布线拥塞 <80%、时序裕量> 20%、密度 > 70% 晶体管 / 面积。
  • 回滚:若 P&R 失败,手动补晶体管或简化 mux 树。

386 标准单元成功奠基 ASIC 设计,推动 80s 半自定义芯片革命。引用不超过 2 句:“标准单元逻辑包含巨型多路复用器、错位晶体管和并非反相器的反相器。”“386 团队冒险采用标准单元,提前交付。”

资料来源:

(正文约 1200 字)

查看归档