FPGA原型验证学习笔记——开篇之问:Simulation or Emulation?

一些叽里咕噜的话

新人报道!今天是我跳槽进入新公司的第一天,也是我从传统FPGA开发转变为FPGA原型验证的一天。一切重新开始,一切重新学习。

第一天无非就是装装电脑,配置下服务器,闲来无事,阅读了下S2C公司撰写的数字芯片与验证相关的白皮书《Prototypical II》,觉得很有收获。不知何故,突然涌现一种强烈的分享欲望,想着也正好趁着刚开始学习新东西,不如开个专栏,作为自己日常学习笔记,同时也为了更好的以一个初学者的视角去记录我的学习心得,为更多跟我一样的初学者提供一些帮助。如果我的笔记有帮到您,那是我的荣幸,也让我倍感舒心。

另外,我也把《Prototypical II》链接放在了文章最后,有兴趣的小伙伴可自取,不过该网站需要您注册一些信息才可获取,另外该网站还提供了很多其他的资料供大家学习。

开篇之问:Simulation or Emulation?

在入手一门新技术时,总是要先问what/why,再去学习how。所以在进入FPGA原型验证的技术学习之前,我们需要先问清楚:什么是FPGA原型验证?为什么需要用到FPGA原型验证?而今天的第一篇笔记就是抛开乱七八糟的技术点,从这两个问题出发去初步揭开FPGA原型验证的面纱,看看里面到底是个什么玩意儿。您大可不必让大脑整装待发,全副武装的来面对今天这篇笔记,甚至可以脱去外衣,躲到被窝里,以一种听故事的方式跟着我的文字进行一场放松惬意的旅程,而您的脑子,就让它在边上睡会吧。

在阅读《Prototypical II》过程中,我发现文章中的两个词出现频率特别高,“Simulation”和“Emulation”。查英文翻译会发现它们都包含“模拟”、“仿真”的意思,好像没有任何区别。但是了解了文中记录的一个小故事(可能也并不小,甚至很传奇),我对这两个词有了完全不一样的理解。

Quickturn传奇:开启硬件仿真时代的四幕剧

第一幕:诞生——当灵感遇见契机
1988年5月,美国硅谷一家不起眼的办公室里,三位EDA行业的资深人士——迈克·达穆尔、史蒂夫·桑普尔和汤姆·佩恩——正在讨论一个困扰整个芯片产业的难题。他们都是来自当时领先的EDA公司Daisy Systems和Silvar-Lisco的专家,深谙芯片验证之痛。汤姆·佩恩更是分区算法的专家,这个背景后来成为他们技术的核心。

当时的现实是残酷的:芯片设计越来越复杂,验证工作呈指数级增长,软件仿真(Simulation)消耗了英特尔等公司80%的EDA计算资源,一个复杂的处理器设计,仿真实例需要数周甚至数月,68%的芯片项目延期,只有32%能一次流片成功。

“如果我们不能改变验证的速度,”达穆尔在会议上说,“整个半导体行业的发展都会被拖慢。”

他们产生了一个在当时看来十分“离经叛道”的想法:为什么不直接用硬件来验证硬件

当时市面上已有FPGA,但仅限于小规模设计,且流程原始、手工操作。三位创始人想做的,是将多片FPGA组合成一个“门海”,通过自动化工具将芯片设计映射到这个可编程硬件阵列上,实现硬件级别的仿真。

他们给自己的第一个产品命名为“RPM”——快速原型机

RPM数据手册

第二幕:困局——无名之物的尴尬
产品有了,但一个根本性问题摆在面前:这到底算什么?

在早期的客户演示中,几乎每个客户都会困惑:

“是仿真加速器吗?”——“不,比那个快得多。”

“是FPGA原型吗?”——“不,比那个自动化程度高得多。”

当时的行业格局非常清晰:软件仿真是一类,硬件加速仿真是一类,手工FPGA原型是一类。他们的产品哪一类都不属于,但又都有点像。更尴尬的是,他们发现最需要这种技术的大型芯片公司,根本没有预算类别来购买这种“四不像”。

转折点出现在一次偶然的阅读中。有人推荐了一本营销经典——《定位:争夺心智之战》。书中的几句话如闪电般击中了他们:

“与其在现有市场中争第一,不如创造一个新市场并成为其第一。”

他们豁然开朗:RPM既不是仿真,也不是传统原型,它需要一个全新的名字、全新的品类。

经过反复讨论,他们选择了 “Emulation”——硬件仿真

这个命名堪称天才:它既与仿真有词源联系,又暗示了其硬件属性,同时成功与“原型”区别开来。

第三幕:突破——英特尔改变一切
1989年一个阳光明媚的下午,英特尔的年轻工程师阿扎姆·巴尔卡图拉驾车经过山景城。他正为英特尔下一代处理器——奔腾P5的验证工作焦头烂额。突然,他看到了Quickturn的招牌。“硬件仿真?有点意思。”他停下车,走了进去。

会议室里,达穆尔向他展示了RPM的潜力:“想象一下,在硅片流片前几个月,你就能把处理器的‘数字替身’插到真实的PC主板上,启动操作系统,运行真实软件。”

阿扎姆的眼睛亮了。这正是英特尔最需要的——验证周期太长,已成为产品上市的最大瓶颈。

阿扎姆带着产品资料回到英特尔,说服了管理层。但合作面临巨大障碍:

  • 技术适配:英特尔的RTL代码是专有格式,不可综合,需要手工转换
  • 规模未知:没人知道奔腾设计需要多少台RPM
  • 成本风险:RPM单台价格昂贵

最终,双方达成一项创造性协议:英特尔按项目付费,获得“验证P5所需的所有RPM”,无需预先确定数量。

项目启动后,挑战远超想象。阿扎姆领导的四人团队每天工作18小时:

  1. 将英特尔的专有RTL手工转换为可综合代码
  2. 将设计分割成能放入RPM的模块
  3. 用14台RPM摆成U形,通过数十根扁平电缆连接
  4. 为嵌入式内存制作外部硬件适配模块

连接和调试如此复杂,团队甚至需要手动计算时序延迟。最终,仿真时钟被降到约300kHz——虽远低于目标频率,但已是当时仿真速度的数千倍。

1991年11月,在旧金山的一个行业论坛上,英特尔副总裁阿尔伯特·余通过拨号网络连接到实验室,在仿真的奔腾处理器上远程运行了Lotus 123电子表格。现场数百名工程师和行业高管震惊了。这意味着:

  • 奔腾设计在流片前就已能运行真实软件
  • 至少一个关键硬件bug被提前发现并修复
  • 产品上市时间预计提前数月

传闻当时正考虑转向RISC架构的康柏电脑,在演示后放弃了转换计划,选择等待奔腾。

第四幕:遗产——开创一个时代
Quickturn从奔腾项目中提炼出了他们最具说服力的营销武器:Time-to-Market(TTM)理论模型。

他们向客户展示一张简单的图表:产品收入曲线呈钟形,延迟上市意味着永久损失曲线下的面积。即使只缩短几周上市时间,避免的收入损失也远超仿真系统的购买成本。

TTM理论模型

这个模型完成了关键的视角转换:

  • 从工程师视角到商业决策者视角
  • 从成本支出到收入保护
  • 从技术工具到战略投资

Quickturn的故事不仅是技术创新史,更是关于如何定义问题、创造品类、将技术价值转换为商业语言的经典案例。他们面对的不是技术瓶颈,而是认知障碍;他们销售的不是机器,而是时间本身

初识FPGA原型验证

Quickturn产生的“Emulation”想法演进于软件仿真(software simulation)、硬件加速仿真(hardware accelerated simulation)、手工FPGA原型(manual FPGA prototyping)等验证方法,又脱胎于它们,并逐步发展到今天的FPGA原型验证。从我目前的认知来理解,它们的区别如下:

软件仿真(software simulation)

  • 原理:通过软件的方式模拟芯片的逻辑和时序,依靠CPU编译及运行,所有的信号变化均由CPU计算得到。
  • 类比:咱们需要造一栋高楼,软件仿真就是将重要的物理规律、造高楼所用的所有材料的参数输入进计算机,并且由计算机模拟搭建一个虚拟的完全一样的高楼,并模拟一些外来因素,比如地震、大风等去测试这个虚拟的高楼是否稳固。
  • 优点:1.调试能力强,可以100%查找内部任何问题(毕竟都是代码实现的);2.易于部署,不依赖硬件。
  • 缺点:仿真速度龟爬,运行频率从HZ到KHZ不等,运行一次可能需要数周甚至数月。

硬件加速仿真(hardware accelerated simulatio)

  • 原理:使用专用硬件(通常是包含FPGA的加速卡)来执行仿真中最耗时的部分(即“设计本身”的计算),而测试平台和调试控制仍运行在主机CPU上。
  • 类比:还是造一栋高楼,在设计虚拟高楼时,将计算最密集的“结构应力分析”部分,卸载到一个专用的、并行计算能力极强的硬件模块中。设计师仍在主计算机上操控整体模型、查看结果,但每次模拟地震或大风时,核心力学计算的速度得到了极大提升。
  • 优点:1.相比纯软件仿真,通常能快 10到1000倍。
  • 缺点:1.尽管速度有所提升,但仍受限于主机与加速卡之间的通信带宽,无法达到硬件理论的极限速度;2.专用加速硬件不好搞。

手工FPGA原型(manual FPGA prototyping)

  • 原理:直接使用FPGA开发板、分立元器件,通过手工设计电路板、飞线连接等方式,物理搭建一个目标系统的“样机”,本质是高度定制化的硬件系统。
  • 类比:不用计算机模拟了,而是直接去仓库找来木料、砖块、胶水等现成材料,手工搭建一个高楼的等比例缩小实物模型。可以用风扇吹(模拟风),用手摇(模拟地震)来测试它是否容易倒。
  • 优点:1.运行速度极快,可达到MHZ。
  • 缺点:1.尽管运行速度快,但架不住前期“搭建”的耗时,由于缺乏自动化,全部手工来,“搭建”周期可能耗费数周到数月;2.调试困难,内部结构如黑盒,不易探查;3.专项专用,用完即废,新项目又得重新手工搭建;4.最终测试结果可能与真实情况有差异(毕竟测的不是高楼本身)。

FPGA原型验证(FPGA prototyping/Emulation)

  • 原理:使用商业化、标准化的多FPGA系统平台,通过自动化软件工具将大型设计分割、编译并映射到FPGA阵列上运行。它融合了前几类的优点,致力于提供一个兼具硬件速度与软件可控性的专业验证环境。
  • 类比:这次多了个自动“搭建”的机器人(或系统),你只要把高楼设计图纸丢给它,它就能操控机械臂自动给你从现有的材料中挑选出匹配的材料进行“搭建”高楼模型,同时它还会在内部安装传感器,以测试应力情况。
  • 优点:1.运行速度极快,可达到MHZ,“搭建”速度同样质的飞跃;2.可通过标准接口连接到真实的外围系统,让“建筑模型”置身于真实的“城市环境”中测试;3.调试能力大大提升(虽然比不得软件仿真);4.标准化的FPGA系统平台可一直服务多个项目,只需要给机器人不同的图纸即可快速搭建新的模型。
  • 缺点:1.前期购买的FPGA系统平台价格昂贵(但是分摊到很多个项目上后其实就没什么了);2.虽然自动化,但面对超大设计时,分割、布线、时序收敛仍需专业知识和较长编译时间(这也是后续学习方向)。

总结

FPGA原型验证不是一个单一的技术点,而是系统性的,所需要学习和去理解的东西会很多,路漫漫其修远兮,我会尽可能在学习过程中记录下心得,供大家一起讨论学习。

FPGA原型验证所用的工具也同样很多,如Synopsys便提供了完整一套工具,如RTL综合软件Synplify/Synplify Pro/Synplify Premier、多FPGA分割优化软件Certify、整系统编译实现软件ProtoCompiler、专业调试工具Verdi等。工欲善其事必先利其器,后续我可能会先从工具入手,先熟悉工具的使用。

注:以上内容部分借助deepseek生成,当然大部分都是我自己的理解,毕竟也是刚进入这个领域的新人小白,准确性仅供参考,也希望各位大佬指正错误,一起讨论学习!

《Prototypical II》链接:www.s2ceda.com/ch/support-wpSynopsys

Read more

AIGC Bar中的API站最新使用全指南

目录 总览:这篇“全指南”到底解决什么问题 站点定位:它不是“某一个模型”,而是“模型入口的兼容层” 中转/聚合的本质:你买的是“稳定接入体验”,不是“换皮接口” “OpenAI 兼容”的意义:把迁移成本压到改两三个配置项 计费心智:常见是“原价计费 + 充值折扣”或“统一账单” 从零开始:注册、控制台、令牌、分组这四件事要一次做对 账号体系:你真正要找到的是“控制台”和“令牌管理”这两个入口 令牌不是“账号密码”,而是“可撤销、可隔离、可审计”的工程凭据 分组是该站的“路由开关”:选错分组,表现像是“明明有钱却用不了” 一张表把“

【AIGC】AI工作流workflow实践:构建日报

【AIGC】AI工作流workflow实践:构建日报

workflow实践 * 引言 * 实现步骤分析 * 实践 * 创建 dify workflow 应用 * 创建工作流内部节点 * 1、设置输入字段 * 2、创建两个LLM节点 * 3、设置结束节点 * 运行工作流 * 结语 引言 工作流 workflow 是现在 LLM 很重要的一个概念,因为对于一个模型来说,非常复杂的问题很难一次性完美解决,而且可能需要很多别的辅助工具。而工作流就是将这些工具和模型组合起来,形成一个完整的解决方案。今天我们来做个工作流实践,帮助读者理解工作流。我们来构建一个帮助我们写日报的工作流。在帮助我们完成日报的填写的同时,我们需要它进行 AI 味的去除,免得出现别人一看就是 AI 写出来的文章的情况。 实现步骤分析 1. 我们需要一个可以构建工作流的平台,这边我们选择 dify 2. 我们需要模型根据我们提供的今天做的事情去自动生成日报 我们需要对刚才生成的文章进行 AI 味的去除 实践 创建

Copilot权限设置全攻略:从入门到合规的7步落地路径

第一章:Copilot权限设置的基本概念 GitHub Copilot 是一款基于人工智能的代码补全工具,能够根据上下文自动建议代码片段。为了确保安全与协作效率,合理配置其权限至关重要。权限设置不仅影响开发者获取建议的能力,还关系到组织内代码的安全性与合规性。 权限模型概述 Copilot 的权限控制主要围绕用户身份、组织策略和资源访问三个维度展开。在企业环境中,管理员可通过 GitHub 组织设置统一管理 Copilot 的启用状态与访问范围。 * 成员角色决定是否能使用 Copilot 建议 * 组织策略可限制特定仓库禁用 Copilot * 私有代码内容不会被用于训练模型,保障数据隐私 基本配置步骤 管理员需登录 GitHub 并进入组织设置页面进行配置: 1. 访问“Settings” > “Billing and plans” > “GitHub Copilot” 2. 选择“Manage organizations”并为指定组织启用服务 3. 设定成员许可分配方式:自动分配或手动审批 API

2026 最新版|学生认证白嫖 GitHub Copilot Pro 保姆级教程

2026 最新版|学生认证白嫖 GitHub Copilot Pro 保姆级教程

2026 最新版|学生认证白嫖 GitHub Copilot Pro 保姆级教程 作为编程党,谁能拒绝免费的 Copilot Pro?每月省 10 $,解锁无限制代码补全、Anthropic Claude Sonnet 4, GPT-5, Gemini 2.5 Pro等高级模型、每月 300 次 Premium 请求,学生身份认证就能直接白嫖,全程零成本,亲测 2026 年有效!这篇教程把所有步骤、避坑点都捋清楚了,跟着做一遍过,再也不用受免费版额度的气! 前言 先说说为什么一定要冲 Copilot Pro:免费版每月只有 2000 次代码补全 + 50 次聊天请求,写代码刚进入状态就提示额度用完,体验感拉胯;而 Pro