尼德兰的喵
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
【读书笔记·VLSI电路设计方法解密】问题64:什么是芯片功耗分析
低功耗设计已成为应对VLSI芯片功耗攀升的关键策略。随着工艺进步和频率提升,芯片功耗剧增导致散热难题,而移动设备对续航的要求使低功耗设计变得至关重要。核心挑战在于平衡功耗降低与性能保持,其中功耗分析是关键环节。虽然晶体管级仿真最精确,但实际多采用基于标准单元模型的专用工具,需要提供准确的频率和开关模式数据才能获得可靠结果。原创 2025-07-08 01:07:37 · 24 阅读 · 0 评论 -
【SoC设计的简单艺术】附录A:编码指导
本文总结了数字电路设计与编码的通用规范,重点涵盖以下方面: 通用设计原则:强调简洁性、局部性,限制文件大小和模块复杂度(7-9个对象) 状态机设计:要求单模块单状态机,时序逻辑集中化,分层实现复杂状态机 进程规范:推荐使用SystemVerilog的always_ff/always_comb替代传统always@ 组合逻辑:建议封装为automatic函数,注意调试特性 数据结构:推荐使用struct和enum,避免原始reg/wire类型 接口设计:强调模块隔离,限制接口数量,规范命令/数据结构 数据通路原创 2025-07-08 00:58:59 · 139 阅读 · 0 评论 -
【读书笔记·VLSI电路设计方法解密】问题64:什么是芯片的功耗分析
理论上,应采用SPICE等晶体管级仿真器进行精确分析,但受限于仿真器容量,实际设计中通常采用专用功耗分析工具。这些工具基于标准单元和宏模块的功耗模型进行运算,要获得可靠结果,用户必须提供精确的工作频率和节点开关活动数据。随着工艺尺寸微缩,单颗芯片可集成更多元件,导致功耗相应增长。更严峻的是,现代芯片工作频率较二十年前大幅提升,而功耗与频率呈正比关系。因此,芯片功耗突破数十瓦甚至上百瓦已成为常态,由此产生的散热问题构成重大挑战。当前面临的关键挑战在于:如何在显著降低芯片功耗的同时,不明显牺牲其性能表现。原创 2025-04-20 23:16:39 · 157 阅读 · 0 评论 -
【读书笔记·VLSI电路设计方法解密】问题63:为什么可测试性设计对产品的财务成功至关重要
例如,假设半导体公司XYZ生产10万颗芯片,以每颗10美元的价格出售给系统公司ABC。ABC公司用这些芯片制造单价200美元的电路板,最终组装成单价5000美元的整机系统。若设计中未嵌入可测试性设计(DFT),区分良品与不良品的唯一方法就是由应用工程师或客户在实际应用环境中测试芯片。若在此阶段发现芯片故障,可能意味着整机报废,其成本远高于单独报废故障芯片。因此,在芯片中嵌入DFT功能并利用其检测制造缺陷,对产品的财务健康至关重要。如表4.1所示,问题发现阶段越晚、不良率越高,经济损失就呈指数级增长。原创 2025-04-20 23:07:40 · 214 阅读 · 0 评论 -
【读书笔记·VLSI电路设计方法解密】问题62:什么是故障覆盖率,什么是百万缺陷率
因为几乎没有设计能真正达到100%故障覆盖率,更重要的是,固定故障模型(SAF)只是理论模型,并不能涵盖所有物理缺陷机制。需要特别说明的是,故障覆盖率的计算仅包含"可检测节点"与"可测试节点"的比值。这是因为故障覆盖率越高,意味着芯片在交付客户前经过更全面的测试,客户收到不良品的概率自然降低。如图4.25所示,即使产品具有高故障覆盖率(设计相关),但若良率(主要与制造相关)较低,其缺陷等级仍会维持在较高水平。故障覆盖率的定义是:通过主输入端测试向量检测到的节点数量与电路内部可测试节点总数的比值。原创 2025-04-04 22:53:44 · 192 阅读 · 0 评论 -
【读书笔记·VLSI电路设计方法解密】问题61:扫描插入的目的是什么
扫描插入任务包含三重工作:用可扫描触发器替换原有触发器、根据特定标准将扫描触发器划分至不同扫描链、采用专门方法缝合同属一条链的可扫描触发器。如问题60所述,要构建可测试电路,必须确保电路中每个节点都具有可控性和可观测性。图4.23展示了扫描链的部分结构。如图所示,标准D触发器(具有D输入端、CLK时钟端和Q输出端)被替换为可扫描触发器,后者额外增加了SD输入引脚。这些可扫描触发器以链式结构连接,使得受控数值能通过该链从芯片主输入端传输至每个触发器。综上所述,扫描插入的核心目标是提升电路的可控性与可观测性。原创 2025-04-04 22:48:15 · 226 阅读 · 0 评论 -
【读书笔记·VLSI电路设计方法解密】问题60:什么是可测试电路
图4.22展示了四种已知的不可测试故障类型:未使用故障、固定故障、阻塞故障和冗余故障。除了不可测试的故障外,还有一组不可检测的故障。这些故障包括可能检测到的故障、振荡故障、过度增长故障、未初始化故障和未检测到的故障。与不可测试的故障不同,不可检测的故障在计算芯片的故障覆盖率时必须被考虑,因为它们可能对功能产生影响。可测试电路的定义是:其内部关注的节点可以被设置为0或1,并且由于故障导致的关注节点上的期望逻辑值(即安全故障电路与非安全故障电路之间的逻辑值差异)的任何变化都可以在外部观察到。原创 2025-03-18 00:28:54 · 77 阅读 · 0 评论 -
【读书笔记·VLSI电路设计方法解密】问题59:数字电路中的可控性和可观测性是什么
对于一个具有三个输入(A、B和C)和两个输出(Y和Z)的电路模块,当节点B的电势能够通过B的输入逻辑锥从芯片的主输入被拉高或拉低时,它是可控的。当这种切换的结果能够通过Y和Z的输出逻辑锥被芯片的主输出感知时,它是可观测的。在组合逻辑电路中,如果电路的所有输入都已知,内部节点的逻辑状态可以被确定。被定义为该节点的逻辑状态能够通过电路的主输出被观察到的能力。如果该节点的逻辑状态能够可靠地被观察到,则认为该节点是可观测的。如问题58所述,测试数字电路最常见的方法是切换电路内部的每个节点并观察相应的效果。原创 2025-03-07 00:13:42 · 121 阅读 · 0 评论 -
【读书笔记·VLSI电路设计方法解密】问题58:VLSI电路测试中最常用的模型是什么
虽然它不是DFT中唯一的模型,但它是最简单且应用最广泛的模型,尤其是在数字设计中,因为这些电路只关注0和1两种状态。例如,节点与地节点之间由于异物导致的金属短路,或者内部晶体管的故障,都可能引起SA0。SAF模型假设硅芯片内的任何节点(网表中的网络)都有可能因各种制造缺陷而永久连接到电源(固定为1,SA1)或地(固定为0,SA0)。在此过程中,假设电路中的每个节点都有可能固定为0或1。一组好的测试模式的目标是以最少的资源(例如CPU时间、内存、磁盘空间和测试仪时间)检测出电路中所有存在故障的节点。原创 2025-03-05 21:00:28 · 93 阅读 · 0 评论 -
【SoC设计的简单艺术】第十章:在RTL以上提升抽象层次
该项目的整体验证工作量估计为手工编写等效RTL设计验证工作量的一半。这显著提高了生产效率,并缩短了整体项目周期时间。生成无时序模型的成本较高设计师通常需要付出大量努力,才能生成在面积上与手工编写设计竞争的无时序模型。RTL级别的验证需求仍然较大用户发现,仍然需要在RTL级别进行大量的验证工作。尽管上述成功案例实现了整体效率2倍的提升,但我们仍需要找到实现更大收益的途径。控制密集型设计的支持不足大多数用户认为当前工具在处理以控制为主的设计时表现不佳。原创 2025-03-05 16:11:10 · 101 阅读 · 0 评论 -
【读书笔记·VLSI电路设计方法解密】问题57:逻辑合成过程中插入测试的目的是什么
如果这些测试电路在后期阶段(例如布局布线阶段之后)才添加,而不是在逻辑综合阶段插入,那么整个物理设计过程可能会受到影响。因此,测试电路应尽可能早地在芯片实现过程中添加。为了实现DFT功能,使设计能够检测制造缺陷,需要在设计中添加额外的测试电路,而这些额外的测试电路通常在逻辑综合过程中插入。测试电路插入过程中涉及的一些细节包括:替换为可扫描的触发器、划分扫描链、连接扫描链、构建内置自测试(Built-In Self-Test, BIST)、构建存储器BIST、分析故障覆盖率以及生成测试模式。原创 2025-02-27 20:20:25 · 92 阅读 · 0 评论 -
【读书笔记·VLSI电路设计方法解密】问题56:一种设计的门数是多少
在ASIC库中,不同的单元具有不同的物理尺寸。网表的规模,或者说设计的规模,是其所有组成元件尺寸的总和。为了方便描述数字设计的规模,库单元、存储器单元和宏单元的物理尺寸会被归一化到一个基础单元,通常是一个具有最小1倍驱动能力的两输入NAND门(这里称为NAND2)。因此,任何网表的规模都是通过参考这个基础单元的尺寸来衡量的。例如,如果一个设计被称为“10万门设计”,其物理尺寸相当于10万个NAND2单元的尺寸。在前面的例子中,设计中实际元件的数量不一定是10万,因为不同单元的尺寸不同。原创 2025-02-27 19:42:51 · 94 阅读 · 0 评论 -
【读书笔记·VLSI电路设计方法解密】问题55:什么是原理图或网表
不包含实例的定义称为原始单元或叶单元,而包含实例的定义则是层次化的。层次化方法的优势在于它减少了网表中的冗余,节省了磁盘或内存空间,并生成了更容易被机器和人类阅读的设计。在这种环境中,原理图是设计者可以在图形用户界面(GUI)中看到和感受到的东西,如图4.16所示,其中的原始单元是晶体管。从结构上看,网表包含或引用了其所使用的组件(如逻辑门、特殊宏单元等)或器件(如晶体管、电容、电阻等)的描述。与仅描述设计者设计意图的RTL描述或设计规范相比,原理图或网表是更接近实际硅实现的电路表示。原创 2025-02-24 17:39:42 · 170 阅读 · 0 评论 -
【SoC设计的简单艺术】第九章:芯片级的复杂性
圈复杂度(Cyclomatic Complexity)是一种用于衡量软件代码复杂性的方法。它由托马斯·麦凯布(Thomas McCabe)在其1976年发表的论文《复杂性度量》[17]中提出。圈复杂度是一种基于图的度量标准。它将一段软件(如函数、方法、类等)视为图,并根据节点和边的数量计算度量值。该度量标准的目的是衡量代码中线性独立路径的数量。具体来说,图中的节点是始终作为一个单元执行的语句块,即不包含条件语句(如if、case、for等)的语句块。图中的边是有向边;原创 2025-02-24 17:32:41 · 203 阅读 · 0 评论 -
【读书笔记·VLSI电路设计方法解密】问题54:逻辑综合的优化目标是什么
如今,随着越来越多的IC设计面向移动应用,芯片的功耗已成为一个非常敏感的问题。换句话说,一方面需要越来越低的功耗,另一方面功耗管理却变得越来越困难。逻辑综合任务的优化目标是速度、面积和功耗。为了成功实现为实际电路或逻辑门,通过HDL综合生成的电路必须满足由时钟频率定义的特定速度要求。逻辑综合的另一个明显目标是生成的电路应尽可能占用更小的硅片面积,以最大化利润空间。例如,为了实现更高的电路速度,可能需要更多的硅片面积和更高的功耗。为了实现更好的功耗控制,可能需要更多的门控电路,而这反过来又需要更多的面积。原创 2025-02-22 19:15:49 · 186 阅读 · 0 评论 -
【读书笔记·VLSI电路设计方法解密】问题53:什么是逻辑综合
在逻辑综合的过程中,从设计的RTL描述开始,综合工具首先构建一个对应的多级布尔网络。在技术无关优化中,典型的成本函数是逻辑函数的因式分解表示的总文字数,这与实际电路面积密切相关。最后,技术相关的优化将技术无关的电路转换为给定技术(库)中的门级网络。逻辑综合是将期望的电路行为的抽象形式(通常以RTL表示)转换为基于逻辑门(标准单元)的设计实现的过程。逻辑综合是电子设计自动化的一个重要方面。逻辑综合任务的质量高度依赖于所使用的ASIC库、嵌入在综合工具和CPU中的算法,以及执行综合任务的计算机的内存配置。原创 2025-02-22 19:07:17 · 289 阅读 · 0 评论 -
【读书笔记·VLSI电路设计方法解密】问题52:什么是ASIC Library
这些单元按其功能分类,例如反相器(INV)、缓冲器(BUF)、与非门(NAND)、或非门(NOR)、与门(AND)、或门(OR)、异或门(XOR)、布尔函数、触发器(flip-flop)和扫描触发器(scan flip-flop)。例如,在反相器组(INV)中,通常有1倍驱动单元INV1、3倍驱动单元INV3,以及INV5、INV7和INV9单元。一个完整的ASIC库应为每个单元提供以下信息(称为视图),供自动设计工具在各个设计阶段使用:逻辑视图、时序视图、物理视图、功耗视图和电气视图。原创 2025-02-21 17:31:32 · 108 阅读 · 0 评论 -
【SoC设计的简单艺术】第八章:简化接口
在前几章中,我们展示了精心设计的控制主导型和数据路径主导型代码可以显著简化设计。在本章中,我们展示了同样的原则也适用于接口设计。像FIFO接口这样的接口,能够解耦两个模块,从而大大降低整体设计的复杂性。在紧密耦合的设计中,设计的复杂性是各个模块复杂性的笛卡尔积。而在解耦的设计中,复杂性则体现在接口上。通过良好结构的接口,这种复杂性可以降低几个数量级。一个结构良好的接口使用结构体将信号分组为字段,并将这些字段分为数据字和控制字。因此,我们从关注信号和比特转向关注控制、数据和事务。原创 2025-02-21 17:01:22 · 194 阅读 · 0 评论 -
【读书笔记·VLSI电路设计方法解密】问题51:什么是标准单元?标准单元、门阵列和门海方法之间的区别是什么
在某些情况下,相同的逻辑单元可能有不同的布局版本:例如,紧凑设计的小布局占位和高性能且昂贵项目的大布局占位。随着工艺技术的不断缩小,标准单元的尺寸也随之减小,因此可以在相同的硅面积内容纳越来越多的逻辑门。在这个预先制造的硅片中,晶体管和其他有源器件以规则的、预定义的位置放置,并在晶圆上制造,称为母片。通常,底层(阱、扩散和多晶硅)是固定的和预先制造的。标准单元方法与门阵列和门海方法的最大区别在于,使用标准单元方法构建芯片需要所有层次的掩模,而在门阵列或门海方法中只需要金属层(底层是预先制造的)。原创 2025-02-18 15:38:06 · 124 阅读 · 0 评论 -
【SoC设计的简单艺术】第七章:降低数据主导设计的复杂性
正如在以控制为主的设计中所发现的,我们发现结构化的编码和设计风格可以减少设计中的复杂性和代码行数。特别是,我们可以将顺序过程的数量减到最少。使用函数和任务为代码添加结构,可以生成数据路径模块的规范设计,并促进分析和验证。如同第3章的例子所示,我们能够使每个模块只有一个顺序过程。因此,每个模块都有一个相当于main的入口点,可以从这里开始系统地分析模块。我们还展示了使用这些技术——以及SystemVerilog可综合子集中的特性——可以在不负面影响仿真时间或综合结果的情况下,显著减少代码量。原创 2025-02-18 15:05:36 · 171 阅读 · 0 评论 -
【读书笔记·VLSI电路设计方法解密】问题50:什么是硬件的寄存器传输级(RTL)描述
与门级描述相比,RTL级描述在更高的抽象层次上描述设计。它鼓励设计者关注设计的功能而不是其实现,同时让自动综合工具实现并优化所指定的功能。然而,RTL代码不会进一步指定具体的实现细节,例如用于数据存储的顺序单元或用于数据处理的逻辑单元。门级描述以纯粹的结构方式描述系统,通过将系统分解为功能明确且结构固定的基元构建块。门级描述主要用于IC实现的最后阶段,以精确描述设计的物理结构,几乎不关注其功能。它仅通过使用更高层次的抽象来描述设计的行为或功能,而不提供关于如何实现该设计的信息或指导。原创 2025-02-14 14:41:08 · 312 阅读 · 0 评论 -
【读书笔记·VLSI电路设计方法解密】问题49:什么是硬件描述语言(hdl)
第三,系统设计可以在制造之前进行仿真,使设计者能够快速比较不同方案并测试其正确性,而无需硬件原型的延迟和费用。第四,它允许从更抽象的规范中综合出设计的详细结构,使设计者能够更专注于战略设计决策。在半个世纪的IC发展过程中,人们逐渐意识到需要一种计算机语言来描述集成电路的结构和功能,或者描述整个电子系统。因此,两种HDL语言——Verilog和VHDL——被标准化,并成为IC设计的工具。总体而言,HDL的使用可以在以下几个方面使IC设计过程受益:记录设计、仿真设计行为以及直接将设计综合为实际硬件。原创 2025-02-14 14:33:56 · 72 阅读 · 0 评论 -
【读书笔记·VLSI电路设计方法解密】问题48:什么是硬宏单元(Hard Macro)和软宏单元(Soft Macro)
通常,含有大量模拟内容的IP以硬宏形式交付,因为模拟IP对工艺和布局非常敏感。网表IP可以用于相同的工艺或库,也可以用于移植,从而映射到不同的工艺或库。硬宏方法的最大优势在于优化。相比之下,软宏IP具有出色的可移植性。硬宏和软宏方法是两种交付IP的方式。硬宏方法用于传输不仅包含逻辑实现还包含物理实现的IP块。换句话说,硬宏IP的物理布局已经在特定工艺技术中完成并固定。与此同时,软宏IP仅包含逻辑实现而不包含布局。显然,软宏方法的缺点是需要额外进行物理实现或布局工作。与硬宏相比,软宏的验证也需要更多的关注。原创 2025-02-13 16:32:33 · 197 阅读 · 0 评论 -
【SoC设计的简单艺术】第六章:验证
最终,验证和设计都是人类的活动。在设计中,人类将某种形式的规范转化为详细的设计。无论设计工具或方法多么强大,设计中的关键角色始终是人类设计师。设计的基本意图必须由理解目标应用及其试图解决的问题的人来定义。在验证中,我们检查这个人的工作。另一双眼睛从不同的角度处理相同的任务。RTL设计师从内到外描述设计的详细行为,而验证工程师则通过编写测试平台来从外到内定义设计的行为,测试平台模拟设计将要运行的环境。但最终,这只是两个人查看同一规范并开发该规范的两种表示形式,并进行比较的过程。原创 2025-02-13 16:27:41 · 217 阅读 · 0 评论 -
【读书笔记·VLSI电路设计方法解密】问题47:什么是设计规划
当前实现过程中使用的所有工具,特别是综合工具,由于CPU处理能力和内存容量的限制,都有组件限制。:根据工艺速度、价格、IP可用性、代工厂可用性等选择适当的技术节点。对于选定的技术,根据设计要求(如高速或低功耗)选择适当的ASIC库。对于具有高门数的大规模设计,必须将设计划分为子芯片或分层模块,并以分而治之的方式实现。:根据速度、驱动能力、功耗、电压接口和特殊I/O功能(如DDR、SERDES和USB)选择I/O。:进行初步布局规划并确定设计是否受I/O限制、核心限制、大型模块限制或封装限制。原创 2025-02-10 16:37:16 · 72 阅读 · 0 评论 -
【SoC设计的简单艺术】第五章:测量和最小化状态空间
摘要 - 计算状态空间输入状态空间检查输入声明,移除那些数据——即那些值不影响设计操作的变量。对于每个剩余的输入变量,确定该变量的状态空间:a. 如果是枚举类型,取其值的数量。b. 如果不是枚举类型,取2的N次方,其中N是输入变量的位数。将所有输入(控制)变量的状态空间大小相乘以获得完整的输入控制状态空间。输出状态空间检查输出声明,移除那些数据——即那些值不受控制路径操作影响的变量。对于每个剩余的输出变量,确定该变量的状态空间:a. 如果是枚举类型,取其值的数量。原创 2025-02-10 16:34:00 · 143 阅读 · 0 评论 -
【读书笔记·VLSI电路设计方法解密】问题46:什么是bug覆盖率
在前两个阶段,漏洞很容易被检测到,因此发现漏洞的速率相对较高。然后,随着设计逐渐成熟并进入边界情况测试,漏洞变得越来越难以发现,这一速率相应地减慢,如图4.5所示。最终,当验证几乎完成时,漏洞的发现率几乎为零。在IC设计项目的验证过程中,功能测试(通过使用测试平台)有助于定位设计错误或漏洞。这个验证过程有三个阶段:构建和启动测试平台、验证基本测试用例以及验证边界情况。漏洞检测频率、最后一次发现漏洞后的仿真时间长度以及总的仿真周期数是衡量整个验证过程信心水平最常用的方法。原创 2025-02-08 18:37:06 · 310 阅读 · 0 评论 -
【SoC设计的简单艺术】第四章:层次化状态机
在前一章中,我们对BCU进行了多项改进,并为代码开发了一个整体结构。在本章中,我们将重新设计有限状态机,使其成为一个层次化状态机(HFSM)。我们将从HFSM的一般模型开始,然后继续重新编码BCU的状态机。有限状态机是BCU结构的核心:它定义了设计随着时间如何运作。它就像C代码中的main函数:是我们开始任何代码分析的地方。使状态机结构良好且易于理解至关重要。原创 2025-02-08 18:34:27 · 295 阅读 · 0 评论 -
【读书笔记·VLSI电路设计方法解密】问题45:什么是功能覆盖率
与代码覆盖率相对的功能覆盖率,则是将测试平台的行为与产品规范进行比较。结构化测试考虑源代码的工作方式,包括结构和逻辑中的潜在缺陷。代码覆盖率分析可以被视为玻璃盒或白盒测试,而功能覆盖率分析则可以被视为黑盒测试。功能覆盖率的目标是最大化模拟和检测功能故障或错误的概率。然而,根据对许多SoC项目的观察和实验,功能覆盖率度量能够提高检测错误的概率这一点似乎是经验上正确的。这种基于观察和实验的经验性证据表明,尽管难以严格证明功能覆盖率度量的有效性,但在实践中,它确实有助于提高检测功能缺陷的能力。原创 2025-02-07 17:07:59 · 88 阅读 · 0 评论 -
【SoC设计的简单艺术】第三章:降低控制主导设计的复杂性
将代码划分为多个文件消除代码中的一些语法冗余重构时序代码使用函数封装组合逻辑代码将状态机转换为单个时序进程将状态机转换为层次化状态机使用SystemVerilog的结构体(struct)构造来封装重要结构我们将设计的状态空间从大约256个减少到约24个。这些状态被封装在一个层次化状态机中(将在下一章展示)。我们提供了时序和组合逻辑代码的系统化封装,允许简化且系统化的审查过程。我们将设计中声明的对象数量减少了67%。我们将代码行数减少了大约30%。原创 2025-02-07 17:03:14 · 324 阅读 · 0 评论 -
【SoC设计的简单艺术】第二章:简化RTL设计
本章概述了RTL设计中的挑战,以及我们可以用来简化它们的一些基本技术。原创 2025-02-06 13:01:01 · 193 阅读 · 0 评论 -
【SoC设计的简单艺术】第一章:第三次革命
第二章简要介绍了简化设计的技术。第三章详细举例说明如何重构RTL设计,使其显著减少复杂性。本章使用一个控制主导的设计作为示例。第四章继续第三章的例子,重点讨论分层状态机的设计。第五章更详细地讨论状态空间的概念以及如何最小化它。第六章描述了前几章中提到的技术如何简化和改进验证过程。第七章提供了另一个详细的简化代码示例,这次是一个数据路径密集型设计。第八章描述模块接口的设计如何影响整体设计的复杂性。第九章继续第七章的讨论,并将其扩展到IP和系统级别;描述如何测量和最小化完整设计的复杂性。第十章。原创 2025-02-06 11:22:20 · 103 阅读 · 0 评论 -
【读书笔记·VLSI电路设计方法解密】问题44:什么是代码覆盖率
代码覆盖率分析是一种结构性测试技术,它将测试平台的行为与源代码的显式意图进行比较。它确保的是测试平台的质量,而不是实际源代码或实际模块的质量。代码覆盖率分析是发现测试平台中一组测试用例未覆盖的源代码区域的过程。通过使用特定的测试平台,对以HDL(或其他高级语言)构建的模块进行代码覆盖率分析,可以记录RTL源代码中哪些行被执行,哪些行未被执行。其前提是,如果某一行代码从未被测试平台执行过,那么就不可能发现其中潜藏的任何错误。最终,对特定设计的代码覆盖率分析结果将影响设计者对其RTL代码的信心水平。原创 2025-01-24 17:41:19 · 131 阅读 · 0 评论 -
【读书笔记·VLSI电路设计方法解密】问题43:什么是TestBench
它激励被测模块(设备)并观察其行为。在IC设计领域,“错误”(bug)一词用于描述设计过程中无意引入的设计错误。错误通常会导致系统行为异常,从而引发功能错误,甚至最坏的情况下导致芯片失效。验证的任务是发现系统中的所有错误。在这一任务中,首选的工具是为仿真设计而创建的测试平台(test bench)。功能验证是当今高度集成的IC芯片交付过程中的瓶颈之一。SoC集成水平的持续提升给当今的验证工程师带来了巨大的负担。测试平台创建过程中最具挑战性的部分是生成一组能够覆盖所有应用场景(或尽可能多)的测试平台。原创 2025-01-24 17:30:20 · 121 阅读 · 0 评论 -
【读书笔记·VLSI电路设计方法解密】问题42:在寄存器-传输级别验证设计的方法有哪些
随着数字设计变得越来越复杂,传统的验证技术难以跟上,形式属性验证的重要性日益增加。对于定理证明,系统及其期望属性都表示为某种数学逻辑中的公式,定理证明器将根据为系统定义的公理找到证明。在这个框架内,与仿真方法相比,设计者可以采用坚实的设计抽象技术来管理复杂性。除了执行仿真外,大多数RTL仿真器还具有额外的功能,如lint检查、状态机分析、断言检查和代码覆盖率分析。仿真方法的主要缺点是它不是一个彻底的验证。这种FPGA原型的电路速度通常比最终的ASIC慢得多,但它可以提高设计者对RTL代码功能正确性的信心。原创 2025-01-21 14:36:09 · 338 阅读 · 0 评论 -
【读书笔记·VLSI电路设计方法解密】问题41:什么是寄存器传输级(rtl)系统级描述
如问题40所述,在我们从算法、模块和周期精确级别对系统进行研究之后,需要朝着硬件实现的方向推进。在寄存器传输级(RTL)描述系统将使我们离这一目标更近一步。RTL,即寄存器传输级,是一种使用硬件描述语言(HDL)在软件中描述硬件行为的方法。在任何硬件描述语言(Verilog或VHDL)中,有两种不同的方法来描述硬件模块。一种方法是仅通过其行为来描述,而不考虑如何在硬件中实现预期的行为。另一种方法是以结构化的方式描述系统,或使用功能已知且定义明确的基本构建块来实现预期功能。在这种方法中,当硬件工程师大致知道他原创 2025-01-21 14:32:45 · 175 阅读 · 0 评论 -
【读书笔记·VLSI电路设计方法解密】问题40:在系统层面验证设计的方法是什么
从RTL级到ESL的转变不会是突然的,它将更像是一个进化而非革命的过程。随着时间的推移,更复杂的编译器和综合算法,加上硬件功能的增强,将扩展这些ESL自动化技术的应用范围,直到只有极端性能驱动的设计才需要在RTL级实现。然而,随着设计规模越来越大,设计复杂性越来越高,使用电子系统语言(ESL)替代C/C++和RTL作为系统工具的新趋势正在慢慢兴起。在算法级研究中,仅指定设计的行为,而不涉及具体的实现细节;系统级研究所采用的方法大致可分为:算法级、模块级、周期精确级和寄存器传输级(RTL)。原创 2025-01-15 18:17:34 · 178 阅读 · 0 评论 -
【读书笔记·VLSI电路设计方法解密】问题39:什么是项目的系统级研究
对于一个典型的SoC(系统级芯片)应用,这项研究涉及三个关键领域的问题:算法、架构和软件集成。这是通过对SoC架构的抽象建模来完成的,该架构包括这些处理器、算法、定制逻辑、总线、存储器和外设。目标是在软件任务和硬件功能之间找到最佳架构,权衡性能、吞吐量和延迟。它抽象了设计的全部细节,仅保留足够的功能来验证设计所体现的功能是否能够执行指定的设计目标并满足性能标准。这项高层次研究的目的是确保芯片建立在坚实的基础上,芯片构建从根本上正确,并且芯片架构是基于性能和所需资源之间的权衡得出的最优解决方案。原创 2025-01-15 18:10:24 · 90 阅读 · 0 评论 -
【读书笔记·VLSI电路设计方法解密】问题38:一个ASIC项目的最优解决方案是什么
然而,要达到绝对的最佳解决方案需要巨大的执行努力,这通常是不合理的。对于实际的设计项目,尤其是针对消费电子市场的产品,如果项目执行时间超过某个时间节点,产品将完全错过市场窗口,失去继续开发的意义。在大多数情况下,如果从项目整体盈利性来判断,一个“良好”的技术实现(不一定是最优的)可能是最佳解决方案。要实现这一最佳解决方案,需要大量的执行努力,包括工程资源、硬件设备、工具许可投资和执行时间。任何点与最佳解决方案线之间的距离代表了该实现的质量,通过上述标准的综合评估来衡量:距离越大,实现质量越差。原创 2025-01-09 20:07:50 · 184 阅读 · 0 评论 -
【读书笔记·VLSI电路设计方法解密】问题37:市场调研在ASIC项目中的作用是什么
如果市场条件发生变化或遇到不可预见的技术困难,必须保留终止项目的可能性。糟糕的管理可能会导致比预期更严重的损失,因为它会允许本应终止的项目继续推进,并可能引发与客户的摩擦。有许多技术卓越的产品最终却成为财务灾难的例子,仅仅因为它们上市时间过早或过晚,或者设计用于无法支撑产品量产需求的市场,无法实现资本回报。通过与客户直接沟通,设计和管理团队可以更容易地理解项目的复杂性和市场需求。除了与客户讨论外,还应采取另一种方法,即研究竞争对手的产品、数据手册,以及通过贸易展览等渠道获得的其他数据来源。原创 2025-01-09 19:58:30 · 84 阅读 · 0 评论