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

OpenClaw相关的开源AI项目汇总大全:本文涵盖近期所有OpenClaw相关的GitHub高星star热门项目

OpenClaw相关的开源AI项目汇总大全:本文涵盖近期所有OpenClaw相关的GitHub高星star热门项目

OpenClaw相关的开源AI项目汇总大全:本文涵盖近期所有OpenClaw相关的GitHub高星star热门项目 💡 导读 GitHub上这些OpenClaw开源项目,Star数为什么能破千?我们扒了13个宝藏仓库后发现… 有人用OpenClaw给钉钉搭了智能助手,有人在飞书里养了个AI女友Clawra,还有人把记忆层memU玩成了第二大脑——而这些全部免费开源! 2026年OpenClaw热度飙升,但官方文档晦涩、部署门槛高劝退无数人?别慌!本文汇总了OpenClawInstaller、OneClaw、Moltworker等13个硬核开源项目,覆盖:✅ 一键部署工具(零代码上手)✅ 钉钉/企微/飞书/微信全平台接入方案✅ 云端托管+本地Sandbox双模式✅ 记忆层memU、技能库Skills、甚至AI女友Clawra… 收藏这一篇,省掉你100个小时的踩坑时间! 文章目录 * OpenClaw相关的开源AI项目汇总大全:本文涵盖近期所有OpenClaw相关的GitHub高星star热门项目 * 💡 导读 * 一、OpenClawInstall

By Ne0inhk

小白也能懂:Git国内镜像使用图解教程

快速体验 1. 打开 InsCode(快马)平台 https://www.inscode.net 2. 点击'项目生成'按钮,等待项目生成完整后预览效果 输入框内输入如下内容: 生成一个交互式Git镜像使用教学网页应用,包含:1.分步骤动画演示 2.实时命令执行模拟器 3.常见错误解决方案库 4.镜像地址自动填充功能 5.学习进度跟踪。使用响应式设计适配移动端,通过DeepSeek模型生成通俗易懂的教学内容。 作为一名刚接触Git的新手,最头疼的就是从GitHub克隆项目时速度慢如蜗牛。经过一番摸索,我发现使用国内镜像可以轻松解决这个问题。今天就和大家分享一下我的学习心得,希望能帮到同样被这个问题困扰的朋友们。 1. 为什么需要Git国内镜像 GitHub作为全球最大的代码托管平台,其服务器主要位于国外。由于网络延迟和带宽限制,国内用户直接克隆或拉取项目时经常会遇到速度极慢甚至失败的情况。使用国内镜像可以大幅提升下载速度,让开发效率翻倍。 1. 主流Git镜像服务介绍 国内常用的Git镜像服务主要有以下几种: -

By Ne0inhk
昇腾 (Ascend) NPU 实战指南:在 GitCode Notebook 中玩转 CodeLlama

昇腾 (Ascend) NPU 实战指南:在 GitCode Notebook 中玩转 CodeLlama

1.前言 随着大模型技术在软件开发领域的深入应用,越来越多的开发者开始尝试在本地或云端环境部署代码生成模型。华为昇腾(Ascend)计算产业随着 CANN 软件栈的不断成熟,已成为运行各类开源 LLM 的重要算力底座。 本文将以 CodeLlama 这一广受欢迎的代码生成模型为核心,结合 GitCode Notebook 提供的在线开发环境,讲解如何在本地或服务器的昇腾 NPU 环境中完成从依赖配置、模型加载到代码生成的完整流程。文章将通过结构化的流程讲解与可操作的示例代码,引导你在昇腾生态中顺利完成 CodeLlama 的部署与运行。 接下来我们就开始进行动手实践吧。 GitCode官网:https://gitcode.com/。 2.GitCode Notebook 环境准备 GitCode 是面向中国开发者的一站式代码协作与模型应用平台,集成了开源仓库托管、在线运行环境、模型中心等能力。其中的 GitCode Notebook 提供了无需本地配置的云端交互式开发环境,支持直接在浏览器中编写、运行和调试代码,非常适合进行大模型试验与算子验证。 进入Gitcode官网

By Ne0inhk