精华内容
下载资源
问答
  • 主要介绍了JS正则表达式验证端口范围(0-65535),文中给大家提到了Js正则表达式验证IP+端口号的代码,需要的朋友可以参考
  • 有时需要限制选择器的选择范围。 效果 实现 实现需要使用组件的picker-option属性,具体参照官方文档: http://element-cn.eleme.io/#/zh-CN/component/datetime-picker#datetimepicker-ri-qi-shi-jian-xua...

    场景

    DateTimePicker是ElementUI的日期和时间共存的选择器。

    有时需要限制选择器的选择范围。

    效果

    实现

    实现需要使用组件的picker-option属性,具体参照官方文档:

    http://element-cn.eleme.io/#/zh-CN/component/datetime-picker#datetimepicker-ri-qi-shi-jian-xuan-ze-qi

    picker-option是object类型。

    Picker Options

     

    参数说明类型可选值默认值
    shortcuts设置快捷选项,需要传入 { text, onClick } 对象用法参考 demo 或下表Object[]
    disabledDate设置禁用状态,参数为当前日期,要求返回 BooleanFunction
    firstDayOfWeek周起始日Number1 到 77

    注意disabledDate这个参数的使用,参数为当前日期,要求返回是Boolean,类型是Function。

    举例

    添加验证规则

    控件显示:

    <el-form-item label="支付截止日期:" prop="finalPayTime">
                  <el-date-picker
                    v-model="demandBid.finalPayTime" format="yyyy-MM-dd HH:mm"
                    type="datetime"
                    placeholder="支付截止日期" :picker-options="pickerOptions5">
    </el-date-picker>

    其中:picker-options="pickerOptions5" 所以在return中添加:

     pickerOptions5: {},

    注意prop属性是 finalPayTime

    在rules中添加验证规则:

      rules: {
              finalPayTime: [
                {required: true, message: '请选择支付截止日期'},
                {validator: checkFinalPayTime, trigger: 'blur' }
              ],

    执行验证方法:checkFinalPayTime

    在data中声明方法:

    var checkFinalPayTime = (rule, value, callback) => {
            //var valueDate = moment(value).format('YYYY-MM-DD')
            if (new Date(value) > new Date(this.demandBid.goUpTime)) {
              return callback(new Error('支付截止日期必须早于去程起飞时间'));
            }else if(new Date(value) <new Date()){
              return callback(new Error('选择的支付截止日期无效'));
            }else{
              callback();
            }
          };

    限制选择范围

    在此页面的created方法中执行初始化时间控件的操作,即在加载完后就执行相应的方法。

    export default {
        created() {
       
            this.initDateTimePicker(demandObj);
     
        },

    如果有多个日期选择空间,则在initDateTimePicke方法中依次声明

     methods: {
          /**
           * 初始化日期控件配置
           * */
          initDateTimePicker(demandObj) {
            this.initGoUpTime(demandObj);
            this.initGoDownTime(demandObj);
            this.initReturnUpTime(demandObj);
            this.initReturnDownTime(demandObj);
            this.initFinalPayTime(demandObj);
            this.initFinalOutTicketTime(demandObj);
          },

    这里以 this.initFinalPayTime(demandObj);为例

     /**
           * 支付截止日期控件配置
           * @param demandObj
           */
          initFinalPayTime(demandObj) {
    
            this.pickerOptions5 = Object.assign({}, this.pickerOptions5, {
              disabledDate: (time) => {
                if (demandObj.goStartTime != null && demandObj.goStartTime != undefined && demandObj.goStartTime != '') {
                  if ( new Date(demandObj.goStartTime).getTime() > Date.now()) {
                    return new Date(demandObj.goStartTime).getTime() < time.getTime() ||   new Date() > time.getTime() + 3600 * 1000 * 24;
                  } else {
                    return new Date() > time.getTime() + 3600 * 1000 * 24
                  }
                } else {
                  return new Date() > time.getTime() + 3600 * 1000 * 24
                }
              }
            })
    
          },

    注意:

    比较时间时要用getTime()来获取毫秒数比较。

    要将字符床时间放在new Date()去转换为时间格式。

    注意disabledDate返回是Boolean,即要选择当前时间之后,就要小于当前时间而不是大于。

    在 time.getTime() + 3600 * 1000 * 24加一天是让当天可选。

    展开全文
  • 功能验证流程

    千次阅读 2019-08-24 21:26:03
    下图显示了功能验证流程: 这个验证过程可以被分解成三个主要阶段: 制定验证策略和验证计划;... 一个典型的百万门的设计可能有百万乃至上亿个需要测试的功能点, 将测试空间缩小到一个可以管理的范围,...

    下图显示了功能验证流程: 这个验证过程可以被分解成三个主要阶段: 制定验证策略和验证计划; 创建验证平台, 运行和调试; 覆盖率分析和回归测试

    1 制定验证策略和验证计划阶段
    制定验证策略和验证计划阶段主要处理以下三个问题:
    (1) 主要功能点和测试用例
    当前, 复杂设计的测试空间是非常大的。 一个典型的百万门的设计可能有百万乃至上亿个需要测试的功能点, 将测试空间缩小到一个可以管理的范围, 或者说是一个有实际意义的集合并且没有损害其期望的功能, 这是第一步。 针对这些功能点, 我们将根据具体情况拟定验证策略和测试用例, 最后具体化到一个详细的、 可执行的验证计划中, 作为整个验证工作的指导;

    (2) 验证平台的抽象层次
    验证平台的抽象层次将决定它主要的处理对象: 比特、 包或者更高层次的数据类型;高层次的抽象建模可以让验证平台中低层次的功能自动化;

    例如, 一个以太网的验证平台运行在比特的抽象层次中, 则要求验证工程师手工创建一个一个的数据包, 从而组成一个测试用例。 然而, 若相同的验证平台在更高的层次上建模, 例如包这个层次, 它就能够自动的生成和注入数据包, 而不需要验证人员去手工的创建每一个数据包。 这个方法将极大地减少创建测试用例的时间, 从而获取更高的测试覆盖率。 这将大大解放验证工程师, 使之可以专注在一些很难查找的边界情况 ( conner-case)上面。 提高验证平台的抽象层次, 也使得创建测试用例和检查结果更加容易;

    (3) 激励生成和结果检查原则
    这些原则定义了输入到验证平台的激励是如何提供的, 结果是如何检查的, 并判断测试是通过还是失败
     

    2 验证平台搭建阶段
    这是第二个阶段, 也就是验证平台的搭建, 书写测试用例和调试阶段。 在这个阶段,书写验证平台代码和测试用例。 验证平台持续被扩展, 因为测试用例不断被添加进来。 其中, 验证平台的搭建要以可重用为基本原则, 而且能够方便设计工程师和验证工程师添加测试用例;

    3 回归测试和覆盖率收敛阶段
    一旦几乎全部测试用例被成功运行, 验证就进入了回归测试 ( regression test) 和覆盖率收敛阶段。 回归测试要求能够周期的批处理运行, 二是激励必须能够容易得到重现, 成功或者失败能够自动检查。 覆盖率显示出该设计被测试的程度, 是验证收敛的重要标准;

    一般会出现下面几种情况:

    (1)code coverage 高 functional coverage 高   理想情况

    (2)code coverage 高 functional coverage 低   需要进行更多的仿真或者修改testbench

    (3)code coverage 低 functional coverage 高   可能错过了某些覆盖点

    (4)code coverage 低 functional coverage 低   需要进行更多的仿真或者修改testbench

    验证技术和验证方法学

    本节将介绍三种常用验证手段白盒、 黑盒和灰盒验证; 三种主要的验证技术: 形式验证、 仿真验证和硬件加速验证; 三种重要的验证方法学: 随机激励生成、 断言验证和覆盖率驱动验证;

    黑盒、 白盒与灰盒验证
    功能验证的最终目标是验证一个设计是否能够像预期的那样工作。 然而, 并非在设计中的任何一个设计缺陷都能通过激励在其输出边界上被检测到, 为此可能会被遗漏。 这样的错误可能包括下列几种情况:
    1) 从来没有被激发过的错误;
    2) 被激发的错误没有被传递出来;
    3) 多个潜在的错误掩盖了其他错误;

    1 黑盒验证
    黑盒验证  指的是只通过其边界信号来验证一个模块或者设计的功能。 黑盒验证的一般的架构如图所示, 通过这种方法, 激励可以被应用到设计和参考模型中; 在某个抽象层次 (例如事务级、 指令级、 时钟周期级等), 通过被测设计和参考模型的输出被校对。黑盒验证存在下列主要的缺点:
    1) 很难验证和设计相关的特点
    2) 很难调试
    3) 要求一个精确的参考模型
    同一个设计规范, 不可能所有的实现都做得等价。 每一个实现都包含了很多和设计相关的细节, 以达到性能或者效率上的差异, 这是每个设计之间最大的区别 ( 例如fifo的读写阈值设定或者总线仲裁器的算法) 。 这都是通过黑盒验证方法很 难 验 证 的 具 体实现。
    另外一个难题是, 是否使用黑盒验证取决于被测的复杂度。 黑盒验证需要通过多个时钟周期才能查看到传递到外部引脚上的内部错误。 为此, 要求更长的仿真时间来传递这个错误; 即使这个错误在输出到外部检测到, 也很难追溯这个问题的根源。
    采用黑盒验证还有一个难题, 在某种程度上要求有一个参考模型能够足够精确得可以检测所有的内部错误。 对于这样一个模型, 未必存在或者很难做得像设计那样, 为此不可能完全依靠这种验证方法;

    2 白盒验证
    白盒验证 和灰盒验证  提供了另外一个途径来解决黑盒验证的局限性。 在白盒验证中, 可以不需要参考模型, 因为可以通过在设计内部或者外部输出信号放置监控器和断言来保证设计操作的正确性。
    3 灰盒验证
    灰盒验证是一个综合了白盒和灰盒的一个手段, 也就是在设计内部添加监控器和断言来减少对参考模型的精确要求, 在错误发现的时候也减少调试的压力;

    验证存在的挑战

    功能验证是芯片设计流程中的一个挑战。 随着设计规模的变大和复杂性的提高, 上市时间的缩短, 这都意味着验证工程师要在更短的时间内验证一个更大, 更复杂的设计。 一个有效的验证方案必须解决以下挑战, 来达到验证收敛;

    (1) 完备性
    验证完备性的挑战, 就是如何最大限度地验证被测设计的行为。 难点在于如何获取所有必须被验证的场景。 这是手工操作的过程, 可能存在错误而且冗长。 在这个领域, 最重要的进步是采用覆盖率驱动的验证方法学。 覆盖率驱动验证方法学要求制定一个可以数量化衡量完备性, 可追踪, 有组织的验证计划。 这对于验证计划的严格要求可以暴露出可能被遗漏的相关场景。
    (2) 可重用性
    验证可重用性的挑战是如何优化验证环境的架构, 使之可以在不同的场合重用 (下一个版本的项目或者同一个版本的不同层次或者一个类似的项目)。 重用可以通过以下几种方式来实现: 模块化验证组件、 采用标准的接口、 将激励产生机制和验证架构分离等; 一个项目中, 深层次的重用就是如何实现一个验证平台可以供多个测试用例使用。 当然, 验证平台的重用的程度取决于验证工程师投入多少人力和时间去规划和优化, 其中也要折中考虑到项目的进程和投入回报。
    (3) 可靠性
    验证可靠性的挑战在于如何减少在完成一个验证项目中的手工操作。 很明显, 手工操作可能存在错误、 冗长和耗时很大。 相反, 自动化系统可以在更短的时间内完成更多的工作。 然而, 自动化系统必须通过手动搭建。 为此, 在可靠性上的改进必须细心分析在搭建自动化系统上的投入和该系统的可靠性。 约束随机验证是一个很好的方法, 通过搭建一个自动化的系统来产生激励和自动比较, 进而提高验证的可靠性。
    (4) 效率
    效率就是如何在给定的时间内使对验证工作投入的产出最大化 (例如, 调试失败场景的个数、 验证环境模块的实现等)。 提高验证效率已成为功能验证中的最重要的挑战。 在设计流程中, 重用等技术已经给予了设计工程师更高的效率。 验证效率的提高已远落后于设计方面, 这使得功能验证成为了完成一个项目中的瓶颈。 高效的功能验证要求消除在设计和验证之间的这个鸿沟。 提高验证效率可以通过提高验证平台的抽象层次和采用重用的。
    (5) 性能
    验证程序性能上的挑战就是如何最大化验证程序的效率。 消耗在一个验证项目上的时间主要是由验证工程师投入的人工来决定的, 为此, 在设计和搭建验证环境中验证程序性能是第二个要考虑的因素。 在运行回归测试的时候, 迭代周期主要为验证平台运作的有效性来决定, 验证程序的性能成为这个阶段的主要因素。 对专业工具和语言的掌握是实现一个验证环境和改善验证性能的必要条件。

    验证方法学

    验证一个设计需要回答两个问题: “ does it work?” ( DUT 能够正常工作么?) (在验证计划中可以分解成: 测试什么功能点? 怎么测? 最后功能对不对?) 和 “ are we done?” (我们做完了么?)。 第一个问题属于最基本的验证概念, 也就是说设计能否符合设计者的意图;第二个问题就是问我们的验证是否充分和完备, 验证是否达到收敛。 我们可以通过这两个问题来揭示整个设计和验证的流程:

    展开全文
  • 计算机化系统CSV验证问答.doc

    千次阅读 2021-07-18 01:55:55
    计算机化系统CSV验证问答Q1:什么是计算机化系统?由计算机系统控制部分和受控的功能和模块构成,计算机控制部分包括控制软件和硬件(如电脑、固件等) ,受控部分包括仪器设备和人员、SOP 程序、组织、培训等。在制药...

    计算机化系统CSV验证问答

    Q1:什么是计算机化系统?

    由计算机系统控制部分和受控的功能和模块构成,计算机控制部分包括控制软件和硬件(如电脑、固件等) ,受控部分包括仪器设备和人员、SOP 程序、组织、培训等。在制药工厂中,计算机化系统主要有实验室仪器设备、应用程序、IT基础设施和生产单元等。

    Q2: 全球哪些监管法规重点要求了计算机化系统验证?

    美国、欧盟、中国都有相关的法规

    美国 FDA 21 CFR Part 11:电子记录/签名

    欧盟 Annex 11:计算机化系统

    欧盟 EMA:发布计算机化系统验证-核心文件,Annex2:复杂计算机化系统验证2018年4月发布, 2018年8月1日强制实施

    中国 CFDA:2010版GMP附录- ;2015年12月

    中国CFDA : 新版GLP,第十六条 强调计算机化系统验证 2017年9月1日生效

    ISPE GAMP5(指南基于风险的验证策略/V 模型文档

    PIC/s PI-011(指南)在法规监管GxP环境下计算机化系统验证良好规范

    《药品数据管理规范》(征求意见稿, 2018 年 1 月)是数据可靠性的法规文件,明确地规定了对计算机系统需要有验证,且对验证要求都做出了明确的规定

    Q3:一个完整的 CSV 验证需要考虑哪些?—— CSV 实施框架 V Model

    GAMP5 V 模型的核心是风险分析与控制, V 模型左边主要是需求规格,V 模型底部是系统的安装/调试/配置,V 模型右边主要是确认与测试,以证明需求是否得到满足。

    具体而言,V 模型左边包括验证计划 VP、系统影响性评估 SIA 或法规风险分析、URS 用户需求说明、FRS 功能规格说明、以及根据这些功能需求所做出详细风险分析,即功能风险分析 FRA、DS/CS设计/配置规格。 另外,还包括系统供应商评估,这个也是验证前期需要做的重要环节。

    系统经过安装/调试/配置后,然后进行 IQ/OQ 确认测试,需要准备相关 SOPs 和进行员工培训,再进行 PQ 确认测试,RTM 需求追踪矩阵,验证总结报告 VSR。

    Q4:CSV 验证主要交付文档有哪些?

    包括:验证计划(VP)、风险评估(RA)、用户需求规范(URS)、功能需求规范(FRS)、设计/配置规范(DS/CS);安装确认(IQ)、运行确认(OQ)、性能验证(PQ)、需求追踪矩阵(RTM)、验证报告(VSR)。

    从合规方面主要考虑的关键点:电子记录安全性、审计追踪、数据备份与恢复、灾难恢复、登陆/密码安全性、电子签名、数据完整性 Data Integrity 等。

    Q5:GAMP 5 软件系统包含哪几类?

    其实有 5 类,但是主要是 3 个大类:

    第一类: ?操作系统,如 Windows 等,验证策略是不推荐做十分详细的验证,记录版本。

    第二类:可配置软件包,如 OpenLAB ECM, LIMS, CSD 软件,需要做确认针对于用户需求的操作和供应商评估确认。

    第三类:完全定制化软件,需要审计供应商和验证整个系统,通常制药实验室不常见。

    Q6:IT基础设施在 CSV 验证中地位与作用

    应用程序例如软件系统等,是搭建在IT基础网络设施,应以合适的方式进行适当的确认和记录应存档

    Q7:验证计划( VP )主要包括哪些内容?

    包括的内容如下:

    系统概述与验证目标系统与项目的范围验证项目的人员角色与职责定义/缩写/参考资料验证原理/依据 和策略法规风险分析结果交付项目进度供应商管理可接受标准 与系统释放培训要求文档管理

    Q8:如何进行供应商评估确认?

    GMP 相关性和对系统供应商进行合适的潜在风险的确认和评估是必要的,一般进行问卷调查,如果做得严格些,可以进行供应商现场审计。

    Q9:国内外的法规风险评估( RA )有什么区别?

    从法规上来分析系统风险级别高低,国内通常选择系统影响性评估( SIA ),是一种简化的法规风险评估( RA )。相比于国外法规RA分析,国内的风险评估是相对简化的。

    Q10:URS (用户需求说明)和 FRS (功能需求说明)是写在一起还是分开写?

    URS 定义系统必须满足什么样的商业化需求和合规上需求,FRS 主要是说明系统如何在技术上符合 URS,主要是针对自定义的软件,在大多数时候,URS/FRS 两个需求是可以写在一起的 UFRS。

    Q11:如何做详细风险分析 FMEA(失效模式与影响分析)让合规风险降至最小化?

    使用合理的风险分析定制验证/确认活动的内容或规则,测试范围和深度可以在风险中定义,做 CSV 验证的目的就是让系统风险控制在可接受的范围而不是让风险为零。

    Q12:DS 设计规格 / CS 设计规格有什么区别?如何做?

    CS 通常用于商业化软件,D

    展开全文
  • 数字IC设计入门(9)初识数字芯片验证

    千次阅读 多人点赞 2020-08-23 10:05:39
    芯片验证就是采用相应的验证语言,验证工具,验证方法,在芯片生产之前验证芯片设计是否符合芯片定义的需求规格,是否已经完全释放了风险,发现并更正了所有的缺陷,站在全流程的角度,它是一种防范于未然的措施。...
    1. 什么是验证及验证方法学?

    芯片验证就是采用相应的验证语言,验证工具,验证方法,在芯片生产之前验证芯片设计是否符合芯片定义的需求规格,是否已经完全释放了风险,发现并更正了所有的缺陷,站在全流程的角度,它是一种防范于未然的措施。我们知道芯片流片回来测试时发现硬件bug,那时基本就无力回天了(芯片内的硬件bug一般都没办法修正,当然部分bug是可以通过软件或烧efuse等措施来屏蔽),因此把问题拦截在流片之前非常之重要,这正是验证存在的意义。
    什么是验证方法学?验证工程师绕不开的一个基本概念。芯片规模越大功能越复杂,潜在的问题也就越多,验证的难度也就越大,验证方法学,就是研究怎样降低验证工程复杂度的同时,还能保证验证的可靠性,提升验证效率的一门学问。从它被提出到今天,其核心依然是带约束的随机激励、覆盖率驱动以及重用,并利用面向对像语言的特性对常用功能进行高度封装,再提供统一的事物层接口使不同抽象层级的建模数据得以共享和有效通信,从而极大地提升验证平台的构建效率,并加速EDA仿真,最终对缩短芯片面市周期做出贡献。

    1. 验证的主要工作

    芯片验证的主要工作是根据规格文档和详细设计文档提取验证功能点编写测试激励并搭建验证环境,或利用已有的验证环境对DUT进行验证和回归。验证具体岗位还可以进行细分,例如功能仿真验证,FPGA原型验证,硬件模拟加速平台验证(Palladium,ZeBu,Veloce),后端时序验证等,常见工作如下。
    熟悉芯片规格,主要是学习各种相关的文档材料,包括但不限于协议、需求、规格、功能说明、历史芯片文档、重用环境评估与恢复。
    提取验证功能点(非常重要),测试点一般分解过程如下,首先根据各种文档梳理出验证特性,然后根据验证特性细化出测试点。
    功能点提取过程
    测试点分为场景类、功能类、性能类、白盒测试点(设计人员提供)、接口类、异常类等维度,全面、明确、细致,无歧义的将所有验证特性细化为一个个不可分割的小点,每个点明确采用directtest还是coverage覆盖还是assertion覆盖。功能覆盖需要细化覆盖范围,比如典型值、边界值、异常值、cross。当然测试点也不是一次分解完成,在整个验证过程中会进行多次分解和review,直至完善。

    测试点分解绝对算是芯片验证工作中的最重要的一环,是充分体现验证人员经验、能力、智慧、价值的一项工作。芯片中的bug往往都是没有想到的点或者没有覆盖到的点。所以测试点分解一定要追求完备、细致、无歧义,要做到测试点分解完成后,无论哪个验证人员测试,验证质量都是有保证的。过于粗糙的测试点会导致不同的验证人员在测试用例设计时有不同的理解和实现,或许就会遗漏掉一些corner点。同时粗糙的测试点也会造成工作量评估不准确,导致后期突发任务增多,造成项目延期。
    撰写模块级和系统级验证方案
    对于验证方案,每个公司可能有不同的标准,目的是设计验证架构指导后续验证工作,保证所有测试点都能在该验证过程中覆盖到。标准化、参数化的方案设计是非常重要,要考虑到该模块的后期集成和重用,验证方案中一般还包括进度安排、风险评估等。

    注意:设计参考模型或checker时一定不要过多参考设计方案或代码,理论上设计和验证从spec开始就要分开,是平行独立的两条线,过多的参考设计是非常不可取的,造成的后果就是参考模型/checker和设计代码实现一样,case总是一跑就过,完全测试不出设计bug。
    开发验证环境、参考模型和验证脚本
    这是验证人员的基本功,一个足够完备灵活自动化的验证环境能节省后面测试用例实现的很多工作量,测试用例会变得很简单,不同的测试用例只需要开关某些配置和修改一些约束;反之一个糟糕的验证环境会让测试用例变得冗长、复杂、低效。软仿测试平台现在流行基于UVM搭建环境,一般使用高级硬件语言如SystemVerilog开发。
    验证执行
    验证执行阶段,按照测试点一个一个进行覆盖,写测试用例(直接测试、随机测试)、debug,后期进行代码覆盖率和功能覆盖率的收集分析、用例增加以及最后用例检视。这个阶段把验证发现的debug做好登记。
    撰写验证报告
    验证执行做完后,需要输出验证报告(一般都会有评审环境),报告主要包括各功能点覆盖情况、代码覆盖情况、性能分析、功耗分析、风险评估等类容。
    ⑦配合芯片设计工程师查找修复设计缺陷,带领其他工程师完成项目验证工作;协同设计和固件工程师在硬件加速器/FPGA平台进行验证调试;与硬件工程师共同确立硬件实现方案,提供硬件设计建议;协助测试工程师完成芯片测试等工作也是验证人员需要干的活。

    1. 数字IC验证流程

    一般认为数字芯片验证,就是对RTL代码进行EDA仿真,并从中发现RTL代码BUG后,再提交设计工程师进行BUG修复的过程。实际项目操作中,验证工作的参与不仅仅是在RTL代码的仿真阶段,它应该贯穿整个项目的始终。如果说开发一颗芯片是一场战斗,那么设计与验证是同时投入,积粮草、挖战壕、冲锋陷阵都在一起,但拼杀结束后,设计可以陆续撤离,而验证则要负责打扫战场,确认所有敌人都不再喘气儿,保证万无一失。
    下面用这张图示意验证各重要环节在整体开发流程中的位置与配合关系。
    芯片设流程图
    架构师从原始需求提炼出来功能规格(FS)与架构规格(AS),两套流程使用不同的思路和方式对其进行实现,实现过程中互为对照同步收敛,产生分歧时以架构为根本决策依据,最后殊途同归。

    验证流中,首要环节为测试提取测试点,验证的后续所有动作基本都是围绕测试点来展开的。测试点是验证活动的核心,直接决定验证结果的可靠性与完备性,非常重要,但因为它是一个相对主观东西,很大程度上依赖于工程师的经验、理解能力、以及责任心,可以说衡量一名验证工程师的技术水准。

    接着是验证平台搭建,这部分现在已经非常标准化,大部分公司都使用UVM,基本框架都差不多,主要取决于对UVM的理解与System Verilog的编程能力。

    验证环境搭建完成后,要进行自测试以排除低级简单的错误,这是一个简单而必要的步骤,完成设计代码与验证环境的第一次集成。接下来就进行Sanity Test(冒烟测试),顾名思义,就是一跑就冒烟挂了。这是设计代码和验证环境都刚刚完成后的测试,目的就是确保寄存器读写OK和打通基本数据流。这个过程设计人员和验证人员高度配合,发现bug会立即修改。这个过程会发现很多代码问题,这个阶段发现的bug一般不提问题单。

    冒烟测试完成后,DUT已经基本可以正常工作,这时候就正式开始进入验证执行阶段。验证是一个不断迭代的过程,需要不断编写或修改测试用例来覆盖功能点和rtl代码。仿真中发现问题,更正问题,记录问题,回归测试,往复循环的同时,分析功能覆盖率与代码覆盖的空洞,根据分析结果增加用例运行次数,或者调整随机约束,或者增加direct testcase,使覆盖率趋于收敛。Regression 在Sanity test后将一直持续到Tape Out。

    EDA仿真到最后,出口标准主要有三个,一是所有testcase全部通过,二是代码覆盖率达标,最后是功能覆盖率达到100%。

    1. 需掌握的知识点

    ①linux基础,脚本语言(bash、tcl、perl、python等,要掌握一门或多门脚本语言);
    ②数字电路和IC设计基础知识;
    ③C/C++、Verilog、System Verilog编程语言;
    ④验证方法学(UVM)。
    以下书籍可以作为入门教材。
    《数字电子技术基础(第五版)》阎石 主编
    《Verilog数字系统设计教程》
    《SystemVerilog测试验证平台(中文版)》
    《UVM实战》
    《芯片验证漫游指南―从系统理论到UVM的验证全视界》

    关于更多芯片介绍类文章和芯片设计资料请看以下链接。
    https://blog.csdn.net/weixin_43745611/article/details/108305382

    本文是通过收集网上资源整理,版权属于原作者。主要源自以下两篇博文。
    https://zhuanlan.zhihu.com/p/165336811
    https://blog.csdn.net/wordwarwordwar/article/details/78841528

    展开全文
  • 需求工程规格说明、需求验证、需求管理

    千次阅读 多人点赞 2020-04-24 18:52:14
    维护人员参考需求执行产品的演化。 也就是说,需求的影响力贯穿于整个后续的产品生命周期,而不是单纯地存在于需求开发阶段。软件需求规格说明文档要在产品生命周期的各个阶段都扮演重要角色,发挥重要作用。软件...
  • 在机器学习任务中,拿到数据后,我们首先会将原始数据集分为三部分:训练集、验证集和测试集。  训练集用于训练模型,验证集用于模型的参数选择配置,测试集对于模型来说是未知数据,用于评估模型的泛化能力。 在...
  • Dubbo参数验证

    千次阅读 2019-09-02 16:10:43
    参数验证功能 [备注1]是基于 JSR303 实现的,用户只需标识 JSR303 标准的验证 annotation,并通过声明 filter 来实现验证 [备注2]。 Maven 依赖 <dependency> <groupId>javax.validation</...
  • ASP.NET Core WEBAPI 模型验证 验证特性自定义返回

    千次阅读 热门讨论 2019-06-25 00:19:00
    Range(min,max,msg),这个方法的取值范围 max >= value >=min // POST api/values [HttpPost] public void Post([FromBody]UserModel model) { } 看起来是这么一回事,先用postman请求一次 emmmm,...
  • 什么是验证

    千次阅读 2020-02-10 17:07:41
    一、什么是验证? 比如,我们设计了一件shirt,我么要确认它的袖子是否一样长、尺寸和颜色是否是客户所需、扣子是否有缺损等,若都满足,则判定合格,这个过程就是验证。 二、我们进行验证,除了有验证计划,还...
  • IC验证简单介绍

    万次阅读 多人点赞 2019-01-31 13:55:00
    验证流程管理   下图既是一副比较完整的芯片端到端验证流程图,大多数公司的验证流程是大同小异的,差异点在于各个流程中具体做的事情。     规格熟悉 这是属于项目刚立项后验证人员要做的事情,主要是学习...
  • 毕业论文参考文献

    万次阅读 2020-12-10 16:29:09
    在我国各级政府强有力的主导下,旅游产业规模不断壮大,城市旅游综合接待水平不断提高,人们旅游消费需求旺盛,旅游日益成为我国居民生活的...[全文]发表时间:2020-07-04关键词: 旅游管理毕业论文参考文献 旅游...
  • 上一篇文章中(SPSSAU:验证性因子分析如何使用?),初步介绍了验证性因子分析的功能及应用场景。下面通过一个实例来具体了解一下,验证性因子分析的操作步骤以及过程中需要注意的内容。1、背景当前有一份215份的研究...
  • 这篇文章将详细介绍微软证书漏洞CVE-2020-0601,并讲解ECC算法、Windows验证机制,复现可执行文件签名证书的例子。 这些基础性知识不仅和系统安全相关,同样与我们身边常用的软件、文档、操作系统紧密联系,希望这些...
  • 快速学习jQuery插件中的jquery.validate.js表单验证插件使用方法,Validation是历史最悠久的jQuery插件之一,经过了全球范围内不同项目的验证,并得到了许多Web开发者的好评,感兴趣的小伙伴们可以参考一下
  • 在上一期的Lab1中,我们给设计文件搭建了最简单的验证平台并编译和仿真过了这个SV程序。今天的Lab2的学习目标是: 1.拓展lab1中的测试平台,从一个输入端向一个输出端发送数据包。 2.用新的测试平台来编译和仿真...
  • 关于芯片验证中写testcase的一些想法

    千次阅读 2020-06-20 22:16:04
    在芯片验证中,搭建好testbench后,就必须开始着手创建testcases。testcase按功能可划分为三类:冒烟用例、随机用例、定向用例。按开发时间顺序,一般也是冒烟用例→随机用例→定向用例。 冒烟用例(sanity testcase...
  • 百度了许久都没找到一个像样的demo 只好自己改写了 我是后端开发 前端css样式不怎么...LoginSlider 这个就是我的滑块登录验证的组件 :randomStr :随机码 这个随机码就相当于session 唯一标识 因为我这里没有采用...
  • SpringBoot里参数校验/参数验证

    万次阅读 多人点赞 2019-05-08 13:47:56
    是该规范的参考实现,它除了实现规范要求的注解外,还额外实现了一些注解。 validation-api-1.1.0.jar 包括如下约束注解: 约束注解 说明 @AssertFalse 被注释的元素必须为 false @...
  • java bean 属性验证框架 valid

    万次阅读 2019-10-13 18:21:51
    只有属性值在枚举值范围内,验证才会通过。 rangesConstraint 指定属性范围内约束 创建方式 参见工具类 Constraints#rangesConstraint * 值在指定范围内约束 * ( 1 )这里为了和注解保持一致...
  • ASP.NET的六种验证控件,及正则表达式

    千次阅读 2018-10-29 20:56:49
    请忽略下面的复制内容 控件名 功能描叙  RequiredFieldValidator(必须字段验证) 用于检查是否有输入值  CompareValidator(比较验证) 按设定... RangeValidator(范围验证) 输入是否在指定范围  Regula...
  • 强大的JQuery表单验证插件 FormValidator使用介绍 jQuery formValidator表单验证插件是客户端表单验证插件。 在做B/S开发的时候,我们经常涉及到很多表单验证,例如新用户注册,填写个人资料,录入一些常规数据等等...
  • 自定义规则:数组的元素最长1个长度,元素范围为大写A-D 代码参考 控制器层: $validate = validate('Curriculum'); if (!$validate->scene('get_classify_course')->check($data)) { ...
  • 验证随机函数VRF

    万次阅读 2019-03-26 09:47:33
    它的全称叫 Verifiable Random Function(随机可验证函数),那它跟一般的随机函数有什么不同?有什么用,为什么区块链需要用到 VRF?这次被我骚扰的是资深全栈工程师黄祺,他曾在 BFTF 区块链知享会中介绍区块链中 ...
  • 验证的目的

    千次阅读 2013-04-11 09:17:24
    Q:验证的目的?   A:发现Bug,发现所有的Bug,或者证明没有Bug(转自夏晶的帖子)       Q:对验证工程师的要求?   A:Hacker mentality ,Organized testing ,Tool automation。    也就是,...
  • IC验证的一些理解

    万次阅读 多人点赞 2018-05-21 13:03:56
    下面这些问题和回答是基于我个人对验证(主要是动态仿真验证)的理解,可能有理解的不到位、理解有偏差的地方,欢迎大家指正。Q:验证的目的?A:发现Bug,发现所有的Bug,或者证明没有Bug。Q:对验证工程师的要求?...
  • 在对全息成像原理仔细分析的基础上,提出通过综合考虑多个参数进而确定参考光强取值范围的方法,并用透射和反射同轴数字全息成像实验及基于实验结果的图像重建验证了进一步缩小参考光强取值范围的有效性。...
  • -致意ConsenSys的 Nate Chastain 和 Mara Schmiedt- Tl:dr:目前,很多人都在讨论密码学货币投资者不断变化的角色以及资产...本文将探讨一个专注验证以太坊网络的代理验证者,在当前的 Eth 2.0 规范以及 5 周期...
  • Yii2 rules验证规则

    千次阅读 2017-08-14 00:35:50
    // 它可以是类名,验证器昵称,或者是验证方法的名称。 'validator', // 可选项,用于指定在场景(scenario)中,需要启用该规则 // 若不提供,则代表该规则适用于所有场景 // 若你需要提供除了某些特定场景...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 194,159
精华内容 77,663
关键字:

参考范围验证