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

FPGA纯verilog实现JESD204B协议,基于AD9208数据接收,提供工程源码和技术支持

FPGA纯verilog实现JESD204B协议,基于AD9208数据接收,提供工程源码和技术支持

目录 * 1、前言 * 什么是JESD204B协议? * 官方有Example,为何要用你这个? * 工程概述 * 免责声明 * 2、相关方案推荐 * 我已有的所有工程源码总目录----方便你快速找到自己喜欢的项目 * 我这里已有的 GT 高速接口解决方案 * 我这里已有的 JESD204 高速AD接口解决方案 * 3、工程详细设计方案 * 工程设计原理框图 * JESD204B 硬件设计架构 * 信号输入设备 * AD9208芯片解读 * 纯verilog实现的JESD204B 物理层方案 * 纯verilog实现的JESD204B 数据链路层方案 * 纯verilog实现的JESD204B 传输层方案 * PL端逻辑工程源码架构 * PS端软件工程源码架构 * 4、vivado工程源码1详解-->VU9P版本 * 5、工程移植说明 * vivado版本不一致处理 * FPGA型号不一致处理 * 其他注意事项 * 6、上板调试验证 * 准备工作

大疆无人机 Mavic3 Pro 百亿像素拍摄方案

大疆无人机 Mavic3 Pro 百亿像素拍摄方案

目录 1.      拍摄设备... 1 2.      飞行操作... 1 3.      全景拍摄... 2 4.      后期处理... 3 4.1拷贝数据... 3 4.2调色... 3 4.3导出照片... 5 4.4拼接照片... 5 4.5补天... 8 4.6添加蒙版... 9 4.7创建全景... 9 5.      拆分全景... 9 6.      发布全景... 10 1.拍摄设备 百亿像素全景拍摄使用大疆(Dji_Mavic3 Pro)御3pro无人机。 2.飞行操作 外挂操作:

Clawdbot+Qwen3-32B多场景落地:HR问答机器人、IT运维助手案例

Clawdbot+Qwen3-32B多场景落地:HR问答机器人、IT运维助手案例 1. 为什么需要一个“能真正干活”的AI助手? 你有没有遇到过这些情况: * HR同事每天重复回答“五险一金怎么交”“年假怎么算”“入职材料有哪些”,同一问题被问几十遍; * IT支持群消息刷屏:“打印机连不上”“VPN登不进去”“邮箱收不到邮件”,但没人能立刻响应; * 每次上线新系统,员工第一反应不是看手册,而是@IT或@HR发一串“这个怎么用?”——而回复往往要等半小时。 这些问题背后,不是人不够努力,而是信息分散、流程固化、响应链路过长。传统知识库查不到上下文,客服机器人答非所问,人工响应又跟不上节奏。 Clawdbot + Qwen3-32B 的组合,不是又一个“能聊天”的Demo,而是一套可嵌入真实工作流、能理解业务语境、会调用内部规则、还能持续反馈优化的轻量级智能助手方案。它不依赖公有云API,不上传敏感数据,所有推理在内网完成;它不追求“万能”,但专注把HR政策解读、

有图有真相 MATLAB实现基于ACO-DRL 蚁群算法(ACO)结合深度强化学习(DRL)进行无人机三维路径规划(代码已调试成功,可一键运行,每一行都有详细注释) 还请多多点一下关注 加油 谢谢 你

有图有真相 MATLAB实现基于ACO-DRL 蚁群算法(ACO)结合深度强化学习(DRL)进行无人机三维路径规划(代码已调试成功,可一键运行,每一行都有详细注释) 还请多多点一下关注 加油 谢谢 你

有图有真相 请注意所有代码结构内容都在这里了 这个只是有些汉字和字母做了替代 未替代内容可以详谈 请直接联系博主本人或者访问对应标题的完整文档下载页面 还请多多点一下关注 加油 谢谢 你的鼓励是我前行的动力 谢谢支持 加油 谢谢 有图有真相 代码已调试成功,可一键运行,每一行都有详细注释,运行结果详细见实际效果图 完整代码内容包括(模拟数据生成,数据处理,模型构建,模型训练,预测和评估) 含参数设置和停止窗口,可以自由设置参数,随时停止并保存,避免长时间循环。(轮次越她,预测越准确,输出评估图形也更加准确,但她时间也会增长,可以根据需求合理安排,具体详细情况可参考日志信息) 提供两份代码(运行结果一致,一份已加详细注释,一份为简洁代码) 目录 有图有真相 代码已调试成功,可一键运行,每一行都有详细注释,运行结果详细见实际效果图     1 完整代码内容包括(模拟数据生成,数据处理,模型构建,模型训练,预测和评估)