精华内容
下载资源
问答
  • 芯片验证,作为芯片研发过程中无比重要一环,将其流程化,甚至先固化僵化,再去...规格描述文档,描述产品主要功能,通信接口相关信息,以及通信协议和相关模块具体功能和实现方法。无论对于验证团队还是设计...

    aff87eea0beb3eff4700e074f60f59e1.png

    芯片验证,作为芯片研发过程中无比重要的一环,将其流程化,甚至先固化僵化,再去优化部分环节的做法,我个人认为是可行且有效的,这样可以提高研发效率,培养提高团队验证战斗力。一款芯片的验证周期是覆盖产品的生命周期的,成熟的验证团队将多次验证经验不断的优化提升,最终形成一套完善的验证流程。

    f783e90b59255c66f4cb121fb989d6c7.png

    规格描述文档,描述产品主要功能,通信接口相关信息,以及通信协议和相关模块的具体功能和实现方法。无论对于验证团队还是设计团队,芯片规格描述文档都是至关重要的输入,工程师们都要通过这个文档开展自己的工作,就像一个引子贯穿于自己的工作当中。

    fb201174c68b00640311aba5ddba173b.png

    1. 分解测试点

    当验证工程师拿到自己相应的规格描述文档,会根据此文档了解相关的功能点,通过分解测试点的方法将其量化,到底有多少功能点?做到心中有数,大概可以估计后期开发组件的复杂度和开发测试用例的难度以及数量。

    6f13c34d636d96b16300c6438fd1b3b2.png

    2. 建立验证方案计划书

    整个芯片的验证方案计划由验证经理负责,验证方案计划文档突出验证工作的要做什么验证,以及如何验证,从而保证芯片验证的充分性和完备性,当然,最终目的还是为了保证按时交付高质量的芯片。一般而言,验证方案计划会采用分层次的验证方法去阐述,将整个设计分成多个子系统,再将子系统分成多个模块去验证,分别将功能验证和部分设计协议验证分到各个模块以及子系统。

    在这个过程中,大概会包含以下内容:

    1)具体验证策略。

    2)所需要的EDA工具和IT支持力度。

    3)验证完成输出件以及标准。

    4)需要的资源以及项目进度。

    5)待验证的功能。

    6)未覆盖功能,风险控制。

    所以除了这个芯片总的验证方案计划书,每个验证工程师都应该建立自己验证任务的验证方案计划表,当然并不是自己信口开河随便制定,需要整个验证团队帮你审查,看有没有需要优化或者本身理解不到位的地方。

    a1df4780efe63cd9034e33c026d84911.png

    如何将测试点分解和验证方案计划两个关键的基础工作做好,预示着验证工程师能否顺利按时完成验证任务,因此,验证流程中要对测试点分解和验证计划的评估绝对的负责,不能草草了事,这个过程非常非常非常重要,俗话说良好的开端就是成功的一半想必就是这个道理吧。

    3. 验证平台搭建与调试

    一旦验证方案计划完成,就可以着手搭建验证环境了。验证环境是验证工程师发现设计缺陷的一系列验证代码和EDA工具的集合,验证的代码针对特定芯片的设计,但EDA的工具其实是通用的。验证环境组件主要包括激励生成器,将激励驱动到DUT的驱动器,将DUT信号采样的采样器,和参考模型以及比较预期结果的计分板。存在与不同的验证环境中的各个验证组件可能会有一定的复用性,因此开发可复用的验证组件也会非常重要。这个阶段是整个验证过程中花费时间很多的一个阶段。

    e1ced7c67c8a4198380e0c8c7cf3e304.png

    由于前期的充分准备,验证工程师已经对自己所属模块的任务非常熟悉了,大干特干的情绪一下就来了,但是笔者建议,开始搭建验证环境的时候,切记不要一次把某个验证组件所有的功能都写全,先完整的开发某一个简单功能的闭环环境,编译通过,甚至就此简单闭环环境一条简单测试用例可以冒烟的时候,再去添加新的功能,不断的闭环,一点点的添加完善环境。

    d5505a66acb6f95aec891be7b9ab1694.png

    在调试的过程中,会有各种千奇百怪的错误,编译错误,语法错误,预期错误,都需要一一排解,才能将环境调通。调通后验证工程师要将各种异常进行辨别,异常的行为有可能是自身环境的错误,也有可能是设计代码的错误,这个时候,就需要验证工程师对规格的理解来判断了。接下来就是根据测试点分解的文档,不断的开发测试用例了。

    4. 测试用例开发与debug

    d41cf95770faae1ada729749302b443c.png

    用例开发就是围绕芯片功能开发相关的场景激励,测试用例要根据测试点分解的文档来完成,所以前期测试点分解的工作质量直接影响此时用例开发的质量,当然在这个过程中,测试点分解文档也需要不断完善,不断提高。用例开发与测试点文档相互作用,一一对应,最终将所有测试点完成测试。

    85a642c7acd252cd13387b638e2ec65c.png

    5. 回归测试以及反标测试点

    回归测试是验证计划中测试点相应所有测试用例集合连续运行的统称。之所以要回归测试,是因为现代验证方法都不可能是直接用例对应测试点,随机化的元素更多的融入验证环境和验证测试用例当中了,每运行一次实际驱动的激励是不同的,另一方面,经过长时间的维护和调试环境以及修复代码,实际改动的地方很多,为了避免这些改动带来的风险,必须重复验证原先的验证集合。将这些测试用例与测试点文件中的测试点描述一一对应的过程称为反标测试点。

    当整个验证流程进行到回归测试这一步的时候,发现的bug数目急剧下降是一个比较正常的状态,为了找到难以发现的bug,整个验证团队在这一时期除了每天例行回归所有测试用例,还需要不断增加一些随机性更加强大的测试用例,来增强自己验证的完备性。另外还可以开展“头脑风暴”,让脑洞大开,查找更多的bug。

    20b89eaee725919542477c0c1e703510.png

    一般而言,流片之前,回归测试一直不停,当回归测试无bug时间超过两周甚至更长的时间,才可以放心的流片(Tape Out),虽然这是一个值得庆祝的阶段性的胜利,但是验证工作依然不能掉以轻心,在交付流片后的这段时间里,验证团队依然要继续回归,继续想办法找到那些难以找到的bug,因为流片出来后,某些bug还是有机会通过叫做“挑线”手段被修复的,另外这个时候发现的问题也可以对后续回片测试有所帮助,可以在HDL中先行修复验证正确性,回片测试的时候就会更加轻松确定问题所在。

    6. 回片测试以及“逃逸”分析

    b98bc18eea509402ffa5958b2a6148c6.png

    当芯片流片完成后,并且芯片制造那边的测试已经通过,也就是说基本可以排除不存在由于制造而产生的错误(之所以说是基本,是因为有些问题是谁也说不准)。硬件团队将这些芯片装配到测试系统中,进行测试。验证的终极目标其实是为了芯片在产品中正确被应用,而不发生错误。

    205fbadf70977ccc72f42bfe68daf4f6.png

    所以这一阶段设计和验证团队必须要支持硬件团队测试,发现问题要及时跟进帮助分析,因为硬件调试测试debug的难度要远远大于前端验证的,因为硬件仿真环境没有像验证环境那种全套的追踪能力。此时如果发现问题,可以用一些寄存器配置或者其他预留方式去避免芯片失误,但是,如果确认错误必须在硬件层面修改,那么必须要重新流片了。这个时候“逃逸”分析就很重要了,验证团队必须重视这个阶段的回溯,分析为什么这类错误不能或者没有在验证阶段发现,如果可以,验证团队需要在验证环境下想办法复现该问题,并评估分析为什么会漏掉。只有这样,团队的验证水平才会不断提升。

    2bcbe6766e8a8627444ad376b59257e4.png

    欢迎扫一扫关注微信公众号

    e0ae74de90be78346389a48db75fee91.png

    08eb6819dba18d0de943ced3e9f9ef61.png
    展开全文
  • 测试覆盖

    2011-10-28 11:16:51
    不是所有已报告的缺陷都报告实际的缺陷,这是因为某些缺陷可能是扩展请求,超出了项目的规模,或描述的是已报告的缺陷。然而,需要查看并分析一下,为什么许多报告的缺陷不是重复的缺陷就是未经确认的缺陷,这样做是...
  • 形式化方法的优点对于软件要求的描述同样适用于软件设计的描述。另外由于有了软件要求的形式化描述,我们可以检验软件的设计是否满足软件的要求。对于编程来讲,我们可以考虑自动代码生成。对于一些简单的系统,形式...
  • 文章目录错误描述原因解决参考 错误描述 使用openpyxl新建workbook并执行操作,在save ...新建workbook在save时,对于已有文件的覆盖方式不对。 也有可能是其他错误,但是不重要,看解决方法,可以从根...

    错误描述

    使用openpyxl新建workbook并执行操作,在从某文件目录load workbook时,报错zipfile.BadZipFile: File is not a zip file

    Traceback (most recent call last):
      File "*.py", line 49, in *
        wb = load_workbook(filename)
      File "/home/*/.local/lib/python3.6/site-packages/openpyxl/reader/excel.py", line 316, in load_workbook
        data_only, keep_links)
      File "/home/*/.local/lib/python3.6/site-packages/openpyxl/reader/excel.py", line 124, in __init__
        self.archive = _validate_archive(fn)
      File "/home/*/.local/lib/python3.6/site-packages/openpyxl/reader/excel.py", line 96, in _validate_archive
        archive = ZipFile(filename, 'r')
      File "/usr/lib/python3.6/zipfile.py", line 1131, in __init__
        self._RealGetContents()
      File "/usr/lib/python3.6/zipfile.py", line 1198, in _RealGetContents
        raise BadZipFile("File is not a zip file")
    zipfile.BadZipFile: File is not a zip file

    原因

    出现错误的直接原因是,试图打开一个之前没有close的表格文件。这项错误操作可能是因为这些原因引起的:

    • 之前的进程中,打开的workbook没有正常close,导致出现了额外的临时文件,在试图打开这些临时文件时会出现错误;
    • 之前的workbook在save时,对于已有文件的覆盖方式不对。

    也有可能是其他错误,但是不重要,看解决方法,可以从根源上避免这一类关于load/save的错误

    解决

    在写代码的时候一定要未雨绸缪,用安全的方式打开和退出excel文件,就可以从根源上避免上面的这一类关于load/save的错误。
    安全地打开excel
    打开文件时,用以下方式打开excel:如果已经存在原文件,就直接load;如果不存在,就新建workbook准备最后save.

    import os
    from openpyxl import Workbook
    from openpyxl import load_workbook
    if os.path.exists(new_filename):
        new_wb = load_workbook(new_filename)
    else:
        new_wb = Workbook()

    安全地保存为excel

    • 首先,文件一旦用完就要记得退出。
    • 其次,退出文件时,对所有的workbook,如果需要save就save,如果不需要save(只读)就一定要close
    wb.save(filename) # 对需要保存写入内容的workbook
    wb.close() # 对程序中只读的workbook

    参考

    python编辑已存在的excel坑: BadZipFile: File is not a zip file

    展开全文
  • <br>对于基本知识、基本定理和基本方法,关键在理解,而且理解还存在程度的问题,不能仅仅停留在看懂了的层次上,对一些易推导的定理,有时间一定要动手推一推,对一些基本问题的描述,特别是微积分中的一些...
  • 忘记或者错误的内存回收会导致程序或系统的不稳定甚至崩溃,Java提供的GC功能可以自动监测对象是否超过作用域从而达到自动回收内存的目的,Java语言没有提供释放已分配内存的显示操作方法。 28、short s1 = 1; s1 =...
  • 枸杞由来和技术栈

    2021-01-02 15:11:32
    而我当时的工作主要负责的是 NW.js 和 Node.js ,再加上写一点 Vue。于是我就想做一个使用前端新技术的项目让自己不要落伍了。使用这些新技术不应该是浅尝辄止,而应该尽量向工业级和 best pratice 靠拢...
  • 例如,如果源输入表达式书写错误,并且这种错误解释器内核不能给出自动纠正策略,则应该报错而立即终止程序;如果解释器内核可以自动纠正之,则应该继续执行,但最好还是应该附加一个警告信息。 以上所述某种...
  • 软件测试规范

    2018-04-23 09:16:12
    测试错误类型 .......................................................................................................................................... 12 八.测试标准 ....................................
  • CruiseYoung提供带有详细书签电子书籍目录 http://blog.csdn.net/fksec/article/details/7888251 SQL Server 2008实战(SQL Server程序员和DBA不可或缺权威参考手册) 基本信息 原书名: SQL Server 2008 ...
  • 学习日志

    2020-12-17 22:36:13
    本系列文章仅是对于个人学习记录,如有错误望大家谅解给予指正。 第30次刷题 一、牛客网刷题 1.题目描述:我们可以用21小矩形横着或者竖着去覆盖更大矩形。请问用n个21小矩形无重叠地覆盖一个2*n大矩形,...

    【刷题记录】

    本系列文章仅是对于个人学习的记录,如有错误望大家谅解给予指正。

    第30次刷题

    一、牛客网刷题
    1.题目描述:我们可以用21的小矩形横着或者竖着去覆盖更大的矩形。请问用n个21的小矩形无重叠地覆盖一个2*n的大矩形,总共有多少种方法?
    2.代码:

    class Solution {
    public:
        int rectCover(int number) {
           if(number == 1 || number == 0) 
               return number;
           if(number == 2)
               return 2;
           int a = 1, b = 2, c;
            for(int i = 3; i <= number; i++){
                c = a + b;
                a = b;
                b = c;
            }
            return c;
        }
    };
    

    3.问题分析:比如n=3时,2*3的矩形块有3种覆盖方法:
    在这里插入图片描述

    第一种情况等价于情形1中阴影部分的n-1块矩形有多少种覆盖方法,为f(n-1);

    第二种情况等价于情形2中阴影部分的n-2块矩形有多少种覆盖方法,为f(n-2);

    故f(n) = f(n-1) + f(n-2),还是一个斐波那契数列。
    4.备注:解题牢记斐波那契数列公式,熟练应用。迭代算法。

    展开全文
  • 软件工程教程

    热门讨论 2012-07-06 23:10:29
    描述认识世界特殊方法 类和实例 类元:一类事物抽象概念;如“银行帐户” 实例:一类事物特定实例;如“张三丰帐户” 接口和实现 接口:说明事物行为契约(做什么) 实现:事物是如何工作特殊细节(如何做...
  • 测试培训教材

    2014-04-01 12:10:48
    1、测试流程管理、测试度量方法 按照尽早进行测试原则,测试人员应该在需求阶段就介入,并贯穿软件开发全过程。就测试过程本身而言,应该包含以s下几个阶段。  -测试需求分析和确定。  -测试计划。  -...
  • java 面试题 总结

    2009-09-16 08:45:34
    忘记或者错误的内存回收会导致程序或系统的不稳定甚至崩溃,Java提供的GC功能可以自动监测对象是否超过作用域从而达到自动回收内存的目的,Java语言没有提供释放已分配内存的显示操作方法。 25、short s1 = 1; s1 =...
  • JAVA面试题最全集

    2010-03-13 13:09:10
    找出下列代码可能存在的错误,并说明原因: 二、JSP&Servlet技术 1.描述JSP和Servlet区别、共同点、各自应用范围 2.在Web开发中需要处理HTML标记时,应做什么样处理,要筛选那些字符(< > & “”) 3.在...
  • 下面关于接口的描述错误的是:(选择1项) A) 定义接口的关键字为interface,接口中可以定义变量,但是必须同时为该变量赋值,接口中的方法默认全部为public类型。 B) 实现接口的关键字是implements,其后可以跟多...
  • 软件工程知识点

    2012-12-02 21:34:25
    需求分析要求以用户需求为基本依据,从功能、性能、数据、操作等多个方面,对软件系统给出完整、准确、具体的描述,用于确定软件规格。其结果将以“软件需求规格说明书”的形式提交。 在软件项目进行过程中,需求...
  • 信息建模方法是从数据的角度来建立信息模型的,最常用的描述信息模型的方法是E-R 图。(√) 10. 用于需求分析的软件工具,应该能够保证需求的正确性,即验证需求的一致性、完整性、现实性和有效性。(√) 三、 问答...
  • flash shiti

    2014-03-14 10:32:41
    14. 矢量图形用来描述图像的是: □ A. 直线 □ B. 曲线 □ C. 色块 □ D. A 和B 都正确 15. 下列那几个属性是flash mx 不建议使用的属性 □ A. scroll □ B. maxscroll □ C. _droptarget □ D. _highquality 16. ...
  • 指向的是window对象。而所谓的对象也就是引用类型,实际上在后台执行环境中,它就是一个指针。 回到Js当代码在执行的时候,会创建变量对象并且构建一个作用域链,而这个对象保存着当前函数...
  • 深入理解计算机系统(中文版)

    热门讨论 2014-03-05 22:49:05
    尤其值得一提的是对于每一个基本概念都有相应的笔头或程序试验,加深读者的理解。 作者介绍:  Randal E. Bryant 1973年获得密歇根大学(University of Michigan)学士学位,随即就读麻省理工学院...
  • ExtAspNet_v2.3.2_dll

    2010-09-29 14:37:08
    -v0.2beta2版本中关于PersistChildren(true)的描述有误,这个是设计时属性,和运行时是否保持状态没有关系。 -修正CheckBox控件的CheckedChanged事件会被触发两次的BUG(Data PostBack->AutoPostBack, Event ...
  • 入门学习Linux常用必会60个命令实例详解doc/txt

    千次下载 热门讨论 2011-06-09 00:08:45
    -n:防止sync系统调用,它用在用fsck修补根分区之后,以阻止内核用老版本超级块覆盖修补过超级块。 -w:并不是真正重启或关机,只是写wtmp(/var/log/wtmp)纪录。 -f:没有调用shutdown,而强制关机或...
  • -v0.2beta2版本中关于PersistChildren(true)的描述有误,这个是设计时属性,和运行时是否保持状态没有关系。 -修正CheckBox控件的CheckedChanged事件会被触发两次的BUG(Data PostBack->AutoPostBack, Event ...
  • 9.对于一个实现了IDisposable接口类,以下哪些项可以执行与释放或重置非托管资源相关应用程序定义任务?(多选) ( ABC ) A.Close B.DisposeC.Finalize D.using E.Quit 10.Net依赖以下哪项技术实现跨语言互用性...
  • 19、对于开发和测试环境,下列说法正确的是:开发和测试环境必须能反映生产环境 /生产环境同开发和测试环境必须分离/应按照开发和测试计划中设置的标准配置来建立环境 /为了实现对项目的控制,需要注意同步开发和...
  • 他认为对于SQL学习是永无止境,相信每一个查询Oracle数据库人都需要精通SQL语言,才能写出高效查询。他参与本书编写就是为了帮助别人实现这一目标。 目录 封面 -11 封底 -10 扉页 -9 版权 -8 版权声明 -7...
  •  27、对于不同的网络操作系统提供功能的描述,以下哪种说法是错误的?  A、windows NT server有良好的文件和打印能力,有优秀的目录服务  B、windows NT server有良好的文件和打印能力,没有优秀的目录服务  C、...
  • 他认为对于SQL学习是永无止境,相信每一个查询Oracle数据库人都需要精通SQL语言,才能写出高效查询。他参与本书编写就是为了帮助别人实现这一目标。 目录 封面 -11 封底 -10 扉页 -9 版权 -8 版权声明 -7...
  • DevOps-版本控制进阶

    2018-05-08 17:35:41
    “伪CI”描述的是实践持续集成(CI)过程中的一些错觉,然而这些并不是真正的CI实践。 基于持续集成,我和同事 Emily Luke做了一些研究, 我将分享伪CI是什么样的,为什么我们建议你“暂缓或谨慎使用”,以及预防伪C...

空空如也

空空如也

1 2 3 4
收藏数 63
精华内容 25
关键字:

对于方法覆盖的描述错误的是