首页 > 其他分享 >Verification -- Introduction

Verification -- Introduction

时间:2024-04-06 17:55:07浏览次数:11  
标签:错误 验证 -- Introduction design Verification 耗时 rst 设计

AISC设计流程由几个步骤组成,包括 design specification、design entry、design synthesis、design verification、physical design and design sign-off.

Design verification (DV) 通常是指使用仿真工具对设计进行功能验证的pre-silicon effort。

What is digital design verification ?

Digital Design Verification 是在发布或部署数字设计或系统之前测试和验证其正确性和功能的过程。这是数字系统开发过程中必不可少的一步,对于确保系统符合所需的规格和性能标准至关重要。

Digital Design Verification 的目标是识别和消除任何设计错误,并确保系统在不同条件和用例下按预期运行。该过程涉及创建一个验证环境,该环境可以模拟各种场景并测试系统在不同条件下的行为。

What is the need of functional verification ?

Verilog RTL 编码错误可以采取多种形式,但这里有一个示例:假设您正在 Verilog 中设计一个简单的计数器模块,该模块从 0 计数到指定的最大值,然后重置回 0。下面是实现此计数器的示例代码片段:

module counter (
  input clk,
  input rst,
  output reg [7:0] count
);

always @(posedge clk or negedge rst) begin
  if (rst) begin
    count <= 8'd0;
  end else begin
    if (count == MAX_VALUE) begin
      count <= 8'd0;
    end else begin
      count <= count + 1;
    end
  end
end

endmodule

在此代码中,计数器模块具有 8 位输出计数,从 0 计数到 MAX_VALUE。但是,代码中存在可能导致意外行为的错误。

错误出在模块的复位逻辑中。复位输入 rst 应为低电平有效信号,但该代码使用该电平有效比较来检测复位条件。这意味着当 rst 为高电平而不是低电平时,计数器将重置,这可能会导致意外行为和不正确的结果。

若要修复此错误,代码应改用低电平有效比较:(rst == 1'b0)

always @(posedge clk or negedge rst) begin
  if (!rst) begin
    count <= 8'd0;
  end else begin
    if (count == MAX_VALUE) begin
      count <= 8'd0;
    end else begin
      count <= count + 1;
    end
  end
end

Importance of design verification

Design Verification 是项目生命周期中最耗时的任务之一,因为它涉及确保涉及满足所有必须的规范并按预期执行。

以下是 Design Verification 可能非常耗时的几个原因:

  • 增加设计复杂性:随着设计复杂性的增加,需要验证的可能场景数量也会增加。这意味着验证设计所需的测试用例和仿真的数量也会增加,使设计验证成为一项耗时的任务。
  • 迭代过程:设计验证是一个迭代过程,涉及运行仿真、分析结果和修复设计错误。此过程可能需要重复多次,直到设计满足所有必需的规格并按预期执行。这种迭代过程可能非常耗时,特别是对于不同模块之间有许多交互的复杂设计。
  • 验证环境的开发:验证环境的开发是一项耗时的任务,涉及创建测试平台、开发测试用例和运行仿真。验证环境必需全面并涵盖所有可能的场景,这可能是一项耗时的任务。
  • 设计验证的时间敏感性:设计验证是一项时间敏感的任务,因为它必须在设计制造之前完成。在验证过程中未发现的任何错误或错误都可能导致代价高昂的返工或项目进度延迟。

What happens if a bug is missed ?

在验证中遗漏硬件错误可能会在时间、金钱和声誉方面付出昂贵的代价。以下是在验证中遗漏硬件错误的一些潜在成本:

  • 返工和延迟:如果在验证过程中未发现硬件错误,则可能要到设计周期的后期,甚至在设计完成之后才能发现该错误。在设计完成后修复硬件错误可能既昂贵又耗时,并可能导致项目进度延迟。
  • 收入损失:如果在设计投放市场后发现硬件错误,可能会导致收入损失并损害公司声誉。客户可能会对产品失去信心,导致销售额和收入下降。
  • 产品召回:在某些情况下,硬件错误可能严重到需要召回产品。这可能是一个昂贵且耗时的过程,并可能对公司的声誉造成重大损害。
  • 法律责任:如果硬件错误导致用户受到伤害,公司可能面临法律责任和损害赔偿。

When can you stop verification?

验证是一个迭代过程,一直持续到达到所需的置信度。何时停止验证没有固定的规则,因为它取决于各种因素,例如项目要求、进度、预算和风险承受能力。但是,停止验证的一些常见标准是:

  • 实现代码覆盖率目标:当满足所有代码覆盖率目标(如分支、语句、表达式、切换和FSM)且整体代码覆盖率处于可接受的水平时,验证团队可以停止验证。
  • 实现功能覆盖率目标:当所有功能覆盖率目标都已实现且功能覆盖率处于可接受水平时,验证团队可以停止验证。
  • 满足性能目标:当设计满足所有性能目标(如时序限制和功耗要求),可以停止验证。
  • 查找并修复所有关键 Bug:当发现并修复所有关键 bug, 并且在一段时间内没有引进新的严重 bug 时,可以停止验证。
  • 可用资源:如果可用资源不足以继续,例如预算或时间限制,则可以停止验证。

标签:错误,验证,--,Introduction,design,Verification,耗时,rst,设计
From: https://www.cnblogs.com/sys-123456/p/18117486

相关文章

  • 题解:AT_xmascon21_b Bad Mood
    AT_xmascon21_bBadMood题意给定你一个\(n\timesm\)的矩形。以一条对角线为基础上,制作一个无向图,该图的顶点对应于格子的共有\((m+1)\times(n+1)\)个顶点,画上的对角线对应于图的边。这种方式能形成的连通分量的数量为得分。求最小得分和最大得分。思路最小得分是好......
  • JetBrains IDE 2024.1 (macOS, Linux, Windows) 发版 - 开发者工具
    JetBrainsIDE2024.1(macOS,Linux,Windows)-开发者工具CLion,DataGrip,DataSpell,Fleet,GoLand,IntelliJIDEA,PhpStorm,PyCharm,Rider,RubyMine,WebStorm请访问原文链接:JetBrainsIDE2024.1(macOS,Linux,Windows)-开发者工具,查看最新版。原创作品,转载请......
  • 题解:CF1918B Minimize Inversions
    CF1918BMinimizeInversions思路暴力一个一个的算,复杂度巨大。数学规律让逆序最少,也就是让升序更多。我们可以通过多组数据实验,最终我们会发现,将数列\(A\)减少一个逆序对,让数列\(B\)随着\(A\)变化,最多会只会增加一个逆序对。而让\(A\)相邻两个数保持升序,\(B\)相邻......
  • 响应式流的核心机制——背压机制
    一、响应式流是什么?响应式流旨在为无阻塞异步流处理提供一个标准。它旨在解决处理元素流的问题——如何将元素流从发布者传递到订阅者,而不需要发布者阻塞,或订阅者有无限制的缓冲区或丢弃。响应式流模型存在两种基本的实现机制。一种就是传统开发模式下的“拉”模式,即消费者主动......
  • CF1934B Yet Another Coin Problem 题解
    CF1934BYetAnotherCoinProblem题解题意目前有\(5\)种硬币,面值分别为\(1,3,6,10,15\)。给你一个数字\(n\),求出可以凑出\(n\)的最少的硬币的数量。思路这道题,大多数的人大概会想到动态规划的方法。但是,我们应该有敢于创新的精神。于是我就想到了一个简单的数学方法......
  • 敏捷转型ADKAR变革管理模型介绍
    敏捷转型ADKAR是一个目标导向的变革管理模型,旨在引导个人和组织实现敏捷转型。该模型由Prosci的创始人JeffHiatt创建,其五个核心成果——认知(Awareness)、渴望(Desire)、知识(Knowledge)、能力(Ability)和巩固(Reinforcement)——构成了敏捷转型的关键步骤。认知(Awareness):在这一阶段,团队......
  • 适配器模式
     1.介绍适配器模式将某个类的接口转换成客户端期望的另一个接口,用户调用适配器转换出来的目标接口方法,适配器再调用被适配者的相关接口方法; 2.实现方式(1)类适配器模式/***@Description:被适配类*@date:2024/4/615:56*/publicclassVoltage220V{......
  • 2024年PhotoVogue全球摄影公开征稿启事(截止2024年4月20日)免参赛费+总奖金10000美元
    2024年PhotoVogue全球摄影公开征稿启事赛事亮点:亮点一:免参赛费亮点二:作品入选可以参加意大利PhotoVogue摄影节亮点三:两位获奖者将分别获得5000美元创作基金 一、赛事介绍2024年PhotoVogue全球摄影公开征集活动邀请世界各地的艺术家提交关于人类与动物和大自然关系的作品......
  • 常用API(一):StringBuilder (用StringBuilder操作字符串效率更高比String) StringBuff
     packagecom.itheima.StringBuilder1;publicclassStringBuilder1{publicstaticvoidmain(String[]args){StringBuilders=newStringBuilder();StringBuilders1=newStringBuilder("pengsuoqun");//创建新字符串s1.append(1......
  • 均值不等式
    均衡不等式这个名字霸气泄露,但学起来依然霸气泄露。算数平均值:若有正数a,b,则\(\frac{a+b}{2}\)是\(a,b\)的算术平均值。几何平均值:顾名思义,一看就是有关\(ab\)的。若有\(a,b\),则\(\sqrt{ab}\)是\(a,b\)的几何平均值。正题:均衡不等式娱乐上网搜了搜,是哪个闲人......