本节摘要:ASIC 与 FPGA 的分水岭不是“能不能编程”,而是计算意图的编译终点不同。ASIC 把算法压成不可逆的门与金属,用放弃适应性换 PPA;FPGA 把 LUT、块 RAM、DSP 留成可重配织物,用面积和能效换周迭代。选型要按量、延迟、功耗、改版成本报价,而不是按口号。
阅读完本节,你应当能够:
ASIC 从可综合描述走向网表再走向坐标,每一步都在削掉非目标场景。触发器位置、线长、电源密度,都是为这一份负载反复权衡后的解。它主动放弃未来算法大改的自由,换取目标场景下更短的电荷路径。原文用高架桥比喻:钢筋混凝土严丝合缝,通行效率高,匝道改不了。
FPGA 的物理资源并不是为某次运算浇死的。配置比特流向织物注入时空契约:这一刻某逻辑块做加法,下一刻同一块做状态机。互连开关矩阵跟着改。它不是慢速 ASIC,而是把纸带与读写头放在同一块硅上。改算法往往只换比特流,NRE 是板和工具,不是掩膜。
于是对称出现:ASIC 把时间折叠进空间(更多硅换更少周期),FPGA 把空间展开成时间(可重配换演化)。中间灰色地带——嵌入式 FPGA、粗粒度可重构、结构化 ASIC——都在买卖不同程度的冻结。
没有统一行高、Liberty、可制造版图,自动放置无法工业化。单元方法学把芯片设计拆成库、前端、后端三个可并行域。FPGA 的公制是 LUT 真值表、进位链、块 RAM 形状、DSP 乘法器。你不能把 ASIC 的“加大驱动强度”直接拧到 LUT 上;你该加流水或换 DSP 布局。反过来,ASIC 也没有“再综合一次换引脚”的免费午餐,换引脚可能动 PAD 与封装。
原文提到专用加速器在先进工艺上可以把矩阵乘加做到很高的每瓦算力。具体数字随代际和测量条件漂,不要当永恒常数背。要背的是机制:数据通路与存储层次按计算图裁剪,没有为通用指令预留的空白晶格。FPGA 做同类矩阵,DSP 阵列也能快,但布线与可重配开关电容决定了能效通常低一截。原型阶段用 FPGA 探路,量产再冻 ASIC,是常见双轨;双轨意味着 RTL 要可综合到两套字母表,时钟频率目标不能只按 FPGA 时序写死。

| 问题 | 偏向 FPGA | 偏向 ASIC |
|---|---|---|
| 算法还在每周改 | 是 | 否 |
| 年量很小 | 是 | 需算 NRE |
| 每瓦算力是卖点 | 通常否 | 是 |
| 必须自有工艺与供应链 | 否 | 可能是 |
| 接口标准未冻 | 是 | 危险 |
| 已有可签核 IP 硬核 | 看是否有对应 | 是 |
⚠️ 常见坑:用 FPGA 时序闭环当 ASIC 频率承诺。LUT 结构与标准单元延迟模型不是同一门语言。
💡 关键直觉:你买的是冻结程度。冻得越死,越快越省电,越不能反悔。
同一套 SystemVerilog,综合到 FPGA 和 ASIC 的约束、时钟、复位、存储器推断都不同。FPGA 喜欢用厂商存储器原语;ASIC 要编译器宏。时钟:FPGA 有专用全局网络,ASIC 要 CTS。复位:FPGA 有时允许同步复位简化;ASIC 仍要面对扫描与异步断言。DFT 在 FPGA 上往往不是同一套扫描哲学。
所以双轨项目应尽早分出“公共可综合子集”和“平台专有壳”。公共壳里禁止厂商系统任务、禁止门级原语。壳外用生成或包装接块 RAM 或 SRAM 宏。验证以公共子集为黄金。
结构化 ASIC 或平台芯片减少掩膜层可配,介于两者之间:比 FPGA 能效好,比全套 ASIC 改版便宜,生态和库往往更窄,要确认你的 IP 能否落上去。
不一定。FPGA 面积单位是 LUT 与布线拥塞,ASIC 是标准单元与宏。一个在 FPGA 里很贵的宽乘法器,在 ASIC 里可能只是一小块数据通路。反过来,巨大的分布式寄存器在 FPGA 便宜,在 ASIC 可能该进 SRAM。不要线性折算。
当一块功能必须现场改、其余必须能效,值得。你付的是织物面积和一份额外的配置签核。若“必须现场改”只是政治需求,eFPGA 会变成永远不用的公园。
一页纸上只允许出现:年量区间、目标功耗或每瓦指标的来源、算法冻结程度、已有 IP 形态、封装限制、改版次数预期。不要写“FPGA 灵活所以更好”这种没有数字的句子。年量乘单片成本对比 NRE,三个月内算不清就还没资格开先进 ASIC。
原型阶段的 FPGA 频率目标单独列,不写进 ASIC 规格书的主频率栏。规格书主频率是签核承诺。双轨公共子集列出禁止项:厂商原语、门级、仿真延迟。存储器包装模块的名字在两边保持相同,内部实现分叉。验证只绑公共端口。
供应链也是选型。FPGA 买得到现货;ASIC 还要 Foundry 排期、掩膜、封测。时间墙和能效墙要一起报。只报硅片能效、不报上市窗口,产品会在别人已经出货时才完成第一次流片。
结构化或平台芯片要确认库和你的 DFT、UPF 流程能否接。不能接的“便宜 NRE”会在后端变成更贵的人工。把“工具链能否跑通扫描和低功耗”写成选型门槛,与单价并列。
公共子集放握手、FSM、算术。壳里放时钟缓冲原语、存储器推断、厂商 IP。用生成参数选择壳,而不是在算法里到处 ifdef。到处 ifdef 会让形式等价和代码审查同时失明。
FPGA 资源用到八成,不意味着 ASIC 面积也八成。LUT 实现的宽乘法器在标准单元里可能很小;分布式寄存器在 FPGA 便宜,在 ASIC 该进宏。线性折算是错的。用第3章的宏意向重新估 ASIC 面积,而不是用 FPGA 百分比乘一个神秘系数。
上市窗口写进选型理由。再省电的 ASIC 若晚九个月,市场可能已经用 FPGA 方案占住了。能效和日历是两个轴,一页纸上两个都要有。
算法里禁止厂商原语和仿真延迟。壳用参数选择。FPGA 占用百分比不折算 ASIC 面积,用宏意向重估。上市窗口与能效并列写在一页纸。工具链能否跑扫描和 UPF 作为选型门槛,与单价同级。
一页纸字段固定:年量、冻结程度、功耗来源、IP 形态、封装、改版次数、上市窗口、工具链能否扫描与 UPF。缺字段不准开先进掩膜。双轨公共子集列出禁止原语。存储器包装同名分叉实现。FPGA 占用不折算 ASIC 面积。eFPGA 只在真有现场改需求时买。结构化方案先验证 DFT 能否接。频率分两栏:原型栏与签核承诺栏,禁止抄错栏。供应链排期与能效同轴报价。财务能看懂的选型,才是动手优先的选型,而不是爱好者选型。
原型在 FPGA 上跑到某个频率,规格书主栏直接抄。ASIC 标准单元其实跑得更快,但存储器推断和时钟网假设全错,双轨 ifdef 把形式等价弄瞎。后来分两栏:原型栏与签核承诺栏,公共子集禁原语,包装同名分叉。年量不够却上先进掩膜的项目,NRE 吃掉产品;反过来量很大仍留 FPGA,电费吃掉毛利。一页纸上两个轴都要有。工具链不能插扫描的“便宜平台”,后端人工把便宜全部吐回去。财务看懂的那一页,才是动手优先的选型。
再补一条出门检查:一页纸八字段填满;频率两栏未抄错;公共子集禁原语;宏意向重估面积;工具链扫描 UPF 已问。五样没有,选型仍是爱好。eFPGA 要有现场改证据。结构化方案先接 DFT。上市窗口与能效同轴。年量乘成本对比 NRE。财务能看懂才算动手优先的选型,而不是实验室偏好。
年量上下界填不出不准。改版次数填不出不准。NRE 粗算填不出不准。上市窗口填不出不准。工具链能否扫描与 UPF 填不出不准。五不准保护的是钱和日历,不是审美。FPGA 占用百分比填得再满也不能代替宏意向重估。频率只准出现在两栏里的正确那一栏。公共子集禁原语填不出,双轨项目必瞎。财务看懂才算选型完成。看不懂的立项,会在第十四周变成后悔会议,那时板卡或掩膜都已付款。
选型肌肉是填字段:年量、改版、NRE、窗口、扫描 UPF 能力。填不出不准掩膜。占用百分比不准冒充面积重估。频率只住正确那一栏。禁原语填不出双轨必瞎。eFPGA 要现场改证据。结构化先接 DFT。财务看懂才算完成。看不懂会变成第十四周后悔会,板卡或掩膜都已付款。能效和日历是两轴,一页纸两轴都在,才是动手优先而不是爱好者采购。
把八字段当作买掩膜门票。填不出就留在织物或算清 NRE。两栏频率、禁原语、宏重估、窗口与能效同轴,写在一页给财务。爱好者采购没有这页,产品会在付款之后才开会后悔。
选型收口请核一页纸八字段与频率两栏。核不过不准掩膜。织物项目同样要核公共子集。财务能指着字段问数,才算舞台选定。问不出数的立项,流水线会在错误字母表上空转,直到钱花完。
八字段能被财务指着问,舞台才算选定。问不出的数,会在错误字母表里把钱问光。问光之后没有后悔会能把掩膜退货。
掩膜不能退货。所以字段问不清就不买。这句话给财务,也给自己。
量与改版次数决定掩膜值不值。年量很小、算法每周变,可编程织物把改版成本摊进比特流;年量上来、接口冻死、每瓦算力是卖点,才值得付一次性工程费去换标准单元。交叉点没有万能公式,但必须把上下界写在同一页,避免用峰值频率代替财务账。
下一节处理预制构件:软核固核硬核如何在一块 SoC 上共生,以及集成时要冻哪些契约。