1997年,美国芯片财团SEMATECH敲响了警钟
业界关于芯片设计生产力的差距。
他们观察到集成芯片制造能力
以每年约 40% 的速度增长。当时。
然而,IC 设计能力仅以大约一半的速度增长。
因此,一场潜在的危机正在酝酿之中,设计能力远远落后于制造能力。
由于我们稍后将讨论的原因,这场危机从未发生过。然而,反过来,
该行业出现了一个新的挑战:验证。
在这个视频中,我们将看看为什么这个以前不为人知的步骤
在当今竞争激烈的芯片设计世界中,这已成为一件大事。
SEMATECH 芯片生产力危机从未成为现实有几个原因。
首先是芯片制造的进步速度急剧放缓
随着科学及其商业化变得越来越困难。
我已经做了足够多的 EUV 视频来说明这一点。
第二个是 EDA 工具大大提高了他们的生产力。
他们现在能够处理更多的抽象。
第三,设计人员已经开始重用芯片 IP 来处理产品复杂性
并更快地把东西拿出来。从 2007 年到 2012 年
新逻辑的创建减少了 32% - 被预先设计和购买的 IP 所取代。
例如,Cadence 和 Synopsys 不仅为他们的客户制作 EDA 软件
并且还为 I/O 等芯片标准功能许可有用的 IP 块。现在
设计人员可以使用已经完成的那些预建功能轻松启动他们的项目。
因此,相对较小的团队仍然可以设计十亿个晶体管芯片
使用最新的行业软件和重新利用的 IP。数据通常证实了这一论点。
Mentor Graphics 的 2019 年报告发现,在 2007 年至 2014 年间,
设计工程师的行业就业增长率仅为每年 3.8%。
单个项目的芯片设计人员数量基本保持不变。
那很好。但在同一时期,验证工程师的增长率
为 12.6%。而在 2018 年,在一个项目中,后者的数量要多于前者。
现在是开始讨论这个验证的实际内容的好时机。
芯片验证的目标是在设计缺陷进入生产阶段之前对其进行识别和纠正。
制造阶段。您希望避免微芯片无法按预期运行的情况。
行业内有多种验证方式。功能验证,
时序验证、布局验证、功能测试和内置自测试或 BIST。
然而,其中,功能验证是最耗时且占用资源最多的过程。
如果您还没有,我建议您阅读我之前关于 EDA 的文章
软件——它是什么以及它如何帮助整个芯片设计过程——作为背景。
在那段视频中,我谈到了逻辑设计,
也称为电路设计。这是工程师翻译的地方
将需求抽象为具有能够满足这些需求的逻辑的电路。
我使用了一个 UX 设计师的比喻,他设计了软件功能的外观、行为和感觉。
逻辑设计阶段的输出是一组逻辑和内存分组
用电线连接在一起的电路。这种分组被称为“网表”。但
设计人员不是直接单独使用这些电路。
有数百万个电路,这是不切实际的。
相反,工程师使用“硬件描述语言”创建逻辑
或 HDL,一种高级抽象 EDA 工具。
两种主要语言是 Verilog 和 VHDL。两者都是开放标准。
工程师能够使用这种高级语言创建电路。
但是我们怎么知道整个事情是按预期工作的,并且涵盖了所有相关的
角落案例?这就是功能验证的用途。在海量 HDL 代码中查找错误。
好的,所以这可能具有直观的意义
但可能感觉超级抽象。这是一个基本的例子。
某公司受雇于城市为交通建设一个控制器
灯光指挥两条街道之间的交通:红街和蓝街。
城市告诉公司让交通灯检查嵌入的传感器
在它的路口。如果传感器显示街道上有车辆等待,
然后它显示那条街道的绿灯一分钟。
该公司编写了一个算法来满足这个特定的规范。
他们设计了一个芯片来使用 HDL 代码执行该算法。
然后,HDL 可用于制造控制光的芯片。
那么问题就出现了。该算法满足请求的规范。
但是由此产生的行为忽略了光需要让
两边的汽车以公平的方式通过。
算法的编写方式并没有这样做。相反,它首先检查红街,
并且总是因此让在红街等候的汽车通过。蓝街是
被锁在里面,他们的汽车无法通行,直到红街完全空无一人。
在软件世界中,您只需推送更新即可解决此问题。但这是硬件,
这意味着需要为交通灯控制器制造全新的芯片。
现在显然,这是一个非常简单的例子。显然,一家公司不会制造
用于这个基本目的的全新芯片。但你明白了。
这个特定的示例解决了功能。但一个重要的问题也是安全性。
今天的设备被密切使用。您想避免硬件级漏洞
这可能会使人们面临数据盗窃或更糟的情况。
因此,我们可以说验证是反向的设计过程。在设计中你开始
使用规范并创建实现。通过验证,您可以实施并
追溯它以确定它是否符合规范以及用户的意图。
那么今天的现代验证流程是什么样的呢?
当然,这些事情因公司而异 - 与
我在上一个视频中讨论的芯片设计流程。但这是一个骨架轮廓。
验证应该嵌入到整个设计过程中。
因此,您从验证计划开始,创建测试计划,定义所需的 IP,等等。
接下来就是验证架构是否正确。确保抓住
任何高级协议错误,而一切仍然非常抽象且处于早期阶段。
您可能想要创建“架构模型”,
模拟设备的目标用例和工作负载。
这有助于充实设备的安全性、性能和电源需求。它还有助于
低级软件和固件开发,通常同时进行。
之后是一个非常密集的步骤,称为硅前验证。
在这里,对预先设计的芯片 IP 进行测试,看它是否像宣传的那样工作。
如果 IP 已经预先验证,则可以跳过,从而节省大量时间。然后
预先设计的 IP 集成到整个 SOC 中,并在
整体系统层面。随着其他 IP 被添加到最终设计中,这将重复进行。
作为此硅前验证步骤的一部分,通常的做法是制作原型
仿真器或芯片中的硬件代码称为现场可编程门阵列或 FPGA。
FPGA 设计为在制造后可配置,
这意味着它们非常适合测试操作系统启动等硬件/软件用例。
一旦一切正常,系统就会进入晶圆厂进行芯片制造。
一旦工厂完成工作,芯片就会经历另一个漫长而详细的过程,称为
硅后验证。这是芯片交付给客户之前的最后一步。
在这里,主要的好处是您能够在实际的硅硬件上运行用例测试。
然而,主要缺点是调试更加困难
因为显然你不能轻易地剖析事物内部到底发生了什么。
随着时间的推移,验证已经占据了整个产品的很大一部分
开发时间。常说只做功能验证
在产品开发周期中占用了设计团队70%的精力和时间。
我确实想指出,这个统计数据显然不是科学测量
因为我还看到了 40%、50% 和 60% 的声明,具体取决于来源。
不管重点是清楚的:这些东西很耗时。
我谈到了设计验证工程师的快速增长
过去十年左右的工作。同一项研究发现,单个芯片
设计师在验证上花费了大量的工作时间:
> 2014 年,设计工程师平均花费 47% 的时间
参与设计活动,53% 的时间用于验证。
而在 2018 年,我们发现设计工程师平均花费了 54% 的时间
参与设计活动,46% 的时间用于验证。
验证工作的扩展和花费的时间是因为我们所说的
“验证差距”。现代验证工具跟不上
随着当今现代芯片设计的日益复杂。
存在的测试用例的绝对数量,在某些情况下估计约为 10 的 80 次方,
意味着不可能查看存在的每个可能的测试用例。
爆炸性的数字因少数人而加剧
现代设计趋势——我想在这里特别指出其中的两个。
现代芯片设计中增长最快的趋势之一与上述 SOC 有关。
一个 SOC 将一大堆不同的、通常是预先设计好的 IP 组件集成在一起
一个微芯片。SOC 设计的优势在于性能、尺寸和功耗方面的提升。
一个众所周知的例子是 Apple A 系列芯片。这些是芯片上的系统,
将 CPU 与专用神经网络硬件、GPU、图像处理等集成在一起。
与构建 SOC 相关的设计工作影响并不大。
但是验证影响非常大。这是因为你本质上是
将其他人的代码集成到您自己的项目中,这一切都需要进行测试。
想象一下当今的现代 Web 编程项目,其中一个已完成的项目
依赖于一堆其他人的项目。尽管人们尽了最大的努力,
这些依赖项中的错误很容易在整个事情中级联。
这就是为什么许多软件程序员关心代码覆盖率的原因。
英特尔在流片前对其奔腾 4 处理器设计中的 7,855 个错误进行了研究和分类。
Pentium 4 于 2000 年发布。我知道,很老。
他们发现两个最常见的错误是由于粗心的编码 - 拼写错误和
剪切和粘贴错误 - 以及沟通不畅。这些类型的错误与线条成线性比例
项目中的代码。而且由于这些项目确实在快速增长,
这意味着更多的错误潜伏在里面,需要找到。
行业的第二大趋势与缩短行业设计周期有关。它使用了
要说团队有很多时间,大约 3-4 年,从探索步骤到生产。
但激烈的竞争大大缩短了这个周期。像英伟达这样的公司
将他们的快速迭代和发布周期视为其整体业务战略的关键部分。和
如果一家公司做到了,那么其他公司就需要加快步伐,以免失去市场份额。
它增加了运送带有未检测到错误的产品的风险。
即使多个团队协同工作,更短的产品周期也更容易
错误和误解从裂缝中溜走。
最近关于所谓的“重新旋转”的可靠调查数据,这是一种代价巨大的情况,其中
一个芯片必须回到绘图板上,很难得到。专有信息,我猜。
但我设法从 2002 年的一项行业研究中挖掘出一些东西,该研究声称超过
北美一半的芯片设计在第一次制造时就失败了。
还有一份受西门子委托的威尔逊研究集团的白皮书
所以把它和一粒盐一起吃,证实了这一点。说 2020 年大约 32% 的项目
能够在第一次“旋转”上取得成功。这意味着 68% 失败。
2000 年代后期验证工作的爆炸式增长
告诉公司他们低估了任务的范围。
这让他们大吃一惊,让他们的验证工具和程序成熟起来。
今天的验证团队比以前更多地使用仿真和 FPGA 仿真。
模拟器是 EDA 产品的支柱。FPGA 仿真允许
硬件和软件一起测试。当然,FPGA 的一大缺点是,
因为管理这样的工作本身就是一项巨大的工程工作。
另一种流行的解决方案是一种称为约束随机验证的方法。它取代
具有生成大量随机测试的系统的传统测试方法。
验证工程师只需向系统提供模板即可。
我见过的用来解释这一点的例子是键盘。
您想测试按下 A 按钮是否正确创建了字母的信号
“一个”。您创建了一个场景,在该场景中您按了几次 A 按钮。
好吧,在那种情况下它工作得很好,但也许在另一种情况下它可能会失败?
比如,在你按下 B 键之后?但是你如何测试所有不同的
击中字母“A”的场景?
因此,您告诉随机测试生成器生成大量场景 - 随机密钥
以各种不同的顺序为您的键盘按下。如果 A 按钮全部通过,
那么您可以合理地确定 A 按钮可以正常工作。
有点像那样,但从仅 1 个按钮扩展到许多可能的硬件输入。
有很多方法可以从这里出发。工程团队开始应用机器学习和
数据挖掘到约束随机验证过程以自动创建测试
模板。这听起来很酷,但远远超出了这个小视频的范围。
我曾涉足网络和 iOS 编程。
最酷的部分之一是所有的开源库,
为任何人提供很酷的功能以添加到他们自己的项目中。把几个图书馆拍在一起,
把它们连起来,然后你就得到了表面上看起来很专业的东西。
当然,现在有很大的不同。芯片设计团队的待遇不同
与软件对应的灵活性。但是做这个视频,我有点惊讶
通过该场景与当今硬件 SOC 之间的联系。
验证在很大程度上仍然是一门艺术,也是一门科学。
你可以测量一个模拟器程序接触一行代码的程度,
但这个数字并没有说明这条线是否完全满足其功能。
随着行业不断向前迈进,更多的集成电路进入我们的
生活中,这种验证差距在功能和安全性方面将变得更加重要。

日益严重的半导体设计问题相关推荐

  1. 工信部:我国半导体设计水平已达7nm

    工业和信息化部电子信息司集成电路处处长任爱光8日表示,2018年我国集成电路产业销售额达到6532亿元.其中,集成电路设计业产业规模不断壮大,先进设计水平达到7纳米,但仍以中低端产品为主.另外,14纳 ...

  2. 半导体群聚、虚拟垂直、整合

    半导体群聚.虚拟垂直.整合 1950年代,随着德州仪器和仙童半导体发明半导体后,随着硅平面技术的发展,1960年代双极和MOS电路的出现,标志着由于电子管和晶体管制造电子产品的时代发生了量和质的变化, ...

  3. (3)一文懂“芯片”设计、代工、封测

    1.前言 本文适合新"芯"人,大神略过!!! 芯片(Chip),指的是内含集成电路的硅片,所以芯片又被称集成电路(Integrated Circuit),可能只有2.5厘米见方大小 ...

  4. 半导体未来浪潮(深度好文)

    本文资料来源于自德勤报告<半导体:未来浪潮> 01 新格局:全球半导体行业不断演化 在过去几年,全球半导体行业增长主要依赖智能手机等电子设备的需求,以及物联网.云计算等技术应用的扩增.预计 ...

  5. 2021年半导体检测设备行业研究报告

    报告综述: 在半导体设计.制造.封装中的各个环节都要进行反复多次的检测.测试以 确保产品质量,从而研发出符合系统要求的器件.缺陷相关的故障成本影响高昂,从 IC 级别的数十美元,到模块级别的数百美元, ...

  6. 影响未来5年全球半导体和电子行业的十大因素

    在中国电子工业取得全球瞩目的发展业绩的同时,其与全球电子工业的进程日益密切相关,全球电子行业的发展趋势对中国的整体发展具备重要的参考价值.我们已经清楚地意识到中国正处于从"制造中心" ...

  7. 人工智能设计芯片,比你想象的更大胆

    来源:ZDNet 作者:Tiernan Ray 编译:科技行者 AI(人工智能)技术正在越来越多地被应用于半导体设计之中,这种做法的优势之一是,人工智能技术会尝试人类想都不敢想的设计方案. 例如,对边 ...

  8. IBM 揭晓全球第一项 2纳米芯片技术,为半导体领域实现重大突破

    来源:IBM中国 这是芯片行业发展过程中的一个里程碑,将在芯片性能和能源效率方面实现飞跃. 纽约州奥尔巴尼 - 2021年 5月 6日:IBM(纽约证券交易所:IBM)宣布,IBM 已成功研制出全球首 ...

  9. 成长与迁移,全球半导体格局演变

    来源:世纪证券 根据核心驱动力不同, 半导体的发展可以分三个阶段, PC 与互联网时代-移动互联网时代-5G+AIoT 时代. 随时代的发展,半导体呈现出"两个持续"的发展特点,即 ...

最新文章

  1. 毕业使人头秃:发现自己的idea已经被人发表了,该怎么办?
  2. pytorch版本的bert使用笔记
  3. 继承redis spring_实例讲解Springboot以Repository方式整合Redis
  4. 数据中心机房空调系统的这些“套路”你知多少?
  5. .NET Core SignalR Redis底板详解(二)
  6. 解决C/C++语言中全局变量重复定义的问题
  7. 建立最简单的repo服务器实例讲解
  8. UVA - 11694 Gokigen Naname(dfs)
  9. Java——n个数的全排列
  10. 简述 maven 命令 package、install、deploy 的区别
  11. 混口饭吃,谈不上喜欢
  12. 腾讯 AlloyTeam 正式发布 Canvas 魔幻线条 - curvejs
  13. 开源 画图_[软件使用05] 快速使用 Deeptools 对 ChIP-seq 数据画图!
  14. 矢量网络分析仪(矢网)组成和原理简介
  15. 肝了一宿才收集的48个超炫酷的 CSS 文字特效,绝对值得收藏!!!
  16. npx create-nuxt-app myapp2 安装报错
  17. PTA题目:7-9 抢红包 (25分)
  18. 我国互联网遭境外网络攻击
  19. 解构金蝶EAS 开发工具
  20. 英语发音之音标6---法(重读符号)

热门文章

  1. 卷积神经网络计算题试题_卷积神经网络算法实例
  2. SpringBoot之支付宝企业账户转账到个人账户【最新证书版】
  3. ?php query_posts(cat)?,你未必知道的query_posts使用技巧
  4. unescape弃用后的代替方法
  5. 360称打击四种手机恶意广告绝不手软
  6. 基于设计模式的绘图程序设计(大二下学期课程设计)
  7. 网站规划及软硬件平台的选择
  8. Dialog 使用方法详解
  9. 脑电数据的特征提取算法详解
  10. 牛客:缆车(LCA)