zoukankan      html  css  js  c++  java
  • ATPG原理及实现——10.write testbench

    工具支持的三种testbench:

    • MAX Testbench (通过stil2verilog将STIL pattern转换为Verilog simulation testbench)
    • Verilog DPV Testbench (Verilog Testbench 将测试激励应用于DUT,并根据数据文件中指定的预期数据检查响应)
    • Legacy Verilog Testbench (Not recommanded)

    一、MAX Testbench

    • 没有Verilog PLL——更快的仿真运行时间
    • 降低内存使用量
    • 简化仿真调试
    • 可以为测试平台生成Verilog仿真脚本
    • 一个pattern文件,两个使用者:验证(模拟)、ATE(制造测试)
    • 支持流行的Verilog simulators:VCS、NC-Verilog、Verilog-XL和MTI

    MAX Testbench flow

    方法一——先生成STIL,再转换

    从TetraMAX写出STIL pattern文件

    使用STIL pattern作为输入运行stil2verilog以生成Verilog testbench

    使用生成的测试pattern运行Verilog仿真

    Example:

    UNIX%  stil2verilog <STIL_pattern_ file _name>  <verilog_TB_file_name>

    产生两个文件:

    verilog testbench file: <verilog_TB_file_name>.v

    Data file: <Verilog TB file name>.dat

    方法二——在tmax中直接转换

    在TetraMAX中将STIL pattern转换为Verilog testbench:

    write_testbench -input <stil_filename>
            -output <testbench_name>
            [-replace]
            [-config_file config_filename]
            [-parameters { list_of _parameters} ]

    Unified STIL flow

    write_patterns  -unified_stil_ flow(USF)

    • 是单个STIL文件,提供所有可能的模拟模式(串行,并行,混合串行/并行和并行N移位),用于标准扫描和压缩扫描。
    • USF可以与MAX Testbench或Verilog DPV一起使用
    • STIL文件包含串行测试patern,并且是ATE的目标文件
    • 消除了在并行负载下模拟压缩pattern的一些限制

     二、verilog DPV

    使用PLl直接验证ATE-ready的STIL pattern 

    pattern可以“on-the-fly”模拟

    支持流行的Verilog模拟器(PLI): VCS,NC-Verilog,Verilog-XL和MTI

     Simulate with Pattern

    1. 写出不同类型的pattern

      write_patterns all_pats.stil  -format stil  -parallel
      write_patterns fast_pats.stil  -format stil  -parallel -type fast

    • 对于每个类型的pattern,TetraMAX 产生 2个文件:

       Testbench:all_pats_stildpv.v  &  fast _pats_stildpv.v

       Patterns: all_pats.stil  & fast _pats.stil

    • Patterns来自all_pats_stildpv.v:$STILDPV_setup ( "all_pats.stil" ,,, "test.dut" ) ;

    2.对all pats_stildpv.v仿真:

    vcs  -R  -Mupdate  +ace+2  +tetramax 
           -P $STILDPV_HOME/lib/stildpv _vcs.tab 
           +define+tmax_parallel=2 
           -v ./libs/io.v   ./libs/core.v 
               ./libs/bboxes_sim.v   ./libs/rams_sim.v 
               ./design_data/orca_final.v   ./all_pats_stildpv.v    
           $STILDPV_HOME/lib/libstildpv.a  -l  all_pats.log  -o simv

    3.在不更改testbench的情况下对Fast-Sequential patterns运行仿真:

    unix%  mv all_pats.stil  all_pats.stil.bak

    unix%  ln -s fast_pats.stil  all_pats.stil

    unix%  ./ simv -l fast.log

     

    三、Debug ATPG模拟不匹配或ATE failure

    --  即使具有完美的STA和模拟的DUT模型而没有失配,实际的DUT仍然可能在ATE发生故障

    --  如果在STA和仿真中都使用了相同的ATE时序和post-route SDF,并且STA报告没有违规,则由于以下原因仍可能发生仿真不匹配:

    --  如果在STA和仿真中都使用了相同的ATE时序和路由后SDF,并且STA报告没有违规,则由于以下原因仍可能发生仿真不匹配:

    • 仿真模式(zero,unit,typical)问题
    • 基于0-delay环境预测的ATPG结果
    • 仿真模型可能与ATPG模型不匹配

    解决:

    simulation失败了可以查看timing、设置等哪里出现问题;

    如果已经到ATE阶段了,芯片流回来了,不能改了,但又不能让这些问题让整个设计block,因此使用命令将有问题的部分mask掉

    Masking Commands

    定义output masks

    输出掩码用于防止ATPG算法通过特定的输出端口观察故障,在屏蔽输出上不再观察到故障,因此覆盖范围将下降

    add po_masks <port_name> l -all    

    Scan Cell Constraints

    加载(0、1、X)到特定扫描单元中

    add_cell_constraints  < 0 | 1 | X >  < chain | inst > 
                [ -position {< cell_ pos1 | sci > [cell_pos2] } | -all>>]

    no-Scan Cell mask

    add_capture_masks /PROBLEM/NONSCAN/FLOP

    mask multi-cycle or false path

    add_slow_cells <instance_path>

    timing exception

    set_simulation -timing_exceptions_for_stuck_at

  • 相关阅读:
    JAVA程序员常用英语
    计算机常用英语汇总
    从一个前端角度来说页面的优化:雅虎35条(转)
    前端学习(五)
    PS常用快捷键(收藏)
    web前端开发规范文档
    前端学习(四)
    Web前端开发面试题
    linux --批量修改文件内容
    git --添加多个文件
  • 原文地址:https://www.cnblogs.com/yilia-er/p/14252648.html
Copyright © 2011-2022 走看看