可测试性设计流程:Tessent MBIST

Design flow for Tessent MBIST


本文主要讲述可测试性设计流程中MemoryBIST部分,用于帮助大家快速了解 Tessent MBIST flow,了解Tessent shell commands的基本用法,参考(翻译)自《Tessent MemoryBIST User’s Manual》,FYI。

Design loading
  1. Set the context
    set_context dft -rtl
    open_tsdb ../core_tsdb_outdir
    set_tsdb_output_directory
    
    设置context是Tessent shell的需求,用来指定目前需要工具来做的事以及工具处理对象的状态。比如,只有在context被设置为dft时,才可以创建MBIST hardware。如果当前的design是RTL需要指定-rtl,如果是门级网表需要指定-no_rtl。如果是门级网表那么在dft insertion 阶段结束时会把额外的连接网表写出来。如果是RTL会把更改的结构和testIP创建出来。设计的格式可以是Verilog、VHDL、mixed language。
    如果MBIST结构已经在block中插入了,当它要集成到Hier level,需要使用open_tsdb command来打开子模块的TSDB,如果子模块和主模块使用相同的TSDB则不需要这个命令,但需要set_tsdb_output_directory指定输出路径。
  2. Read the libraries
    read_cell_library ../lib/IO_macros.tcelllib
    read_core_descriptions ../lib/r.memlib
    set_design_sources -format tcd_memory -y ../lib/memlibs -extensions memlib
    
    使用read_cell_library command来读取在design中实例化的库单元的库文件。MBIST library在Tessent Shell中被叫做Tessent Core descriptions(TCDs)并且作为TCDs被加载。使用set_design_sources 来调用TCD。通常MBIST library file由memory IP厂商提供,使用前不需要进行修改。
    如果有repair需求,flow需要有额外的设置:
    • memory library file必须包含特定的wrapper来产生和插入repair逻辑。
    • Redundancy Analysis wrapper也是必须的用来产生解决memory repair问题(冗余逻辑memory repair 的修复方案)的BIRA逻辑。
#repair_enable
read_verilog ../fuseBox.v -interface_only -exclude_from_file_dictionary
read_core_description ../fuseBox.tcd
#DEF
read_def
  1. Read the design
    在设置好context并且load完需要的库后,就可以使用read_verilog来read design。除此之外Memory placement(DEF, Design Exchange Format files)、power domain data(UPF, Unified Power Format)、CPF(Common Power Format files)也可以在这一步load进去,这些文件会影响memory的分区以及memory BIST controller的规划。
  2. Elaborate the Design
    使用set_current_design命令对design进行详细设计。该命令指定后续操作针对的对象,如果在设计中缺少某些module,工具将会识别出来,也可以使用add_black_box -module来对它们进行定义。
  3. Report the Design Data
    可以使用一系列命令来检查loaded design以及和库的连接情况。
    report_design_sources
    report_config_data
    report_memory_instances
    
Specify and verify DFT Requirements
  1. Set DFT Specification Requirements
    set_dft_specification_requirements -memory_test on (-boundary_scan on -tck_injection on)
    set_design_level chip
    
    为了插入MBIST,必须使用set_dft_specification_requirements指定DFT specification的要求,这会启用针对MBIST的DRC spec并且让create_dft_specification执行时包括MBIST wrapper。
    如果有repair需求,flow需要有额外的设置:
    set_dft_specification_requirements -memory_test on -memory_bisr_chains auto -memory_bisr_controller auto
    
  2. Add Properties and Constraints
    在创建DFT specification时可以增加或更改properties和constraints:
    为了在chip level插入MBIST,必须要连接4个TAP pin(TDI、TCK、TMS、TDO)到IO macros,TRST是可选的,如果TAP pin已经命名为tck,tdi,tms,tdo,trst,会自动进行设置。
    set_attribute_value tck_p -name function -value tck
    set_config_value
    report_config_syntax
    add_primary_inputs
    add_pin_constraints
    add_dft_signals
    
    也可以使用默认的配置,DefaultsSpecification,它会被自动读到.tessent_startup file或者也可以使用read_config_data指定。
  3. Define Clocks
    在详细设计时,Tessent shell会自动trace memory clk pin到clock source。所以我们只需要定义clk。
    add_clocks CLK -period 12ns -label blockA_ram_clk
    add_clocks clk_ref -period 10ns -label clk_ref
    add_clocks U_PLL/VCO -label clk_100mhz -reference U_PLL/REF -freq_multiplier 4
    
  4. Run DRC
    运行DRC check来保证约束的正确性,一旦DRC干净了,Tessent shell将会从SETUP模式跳转到ANALYSIS模式。
    check_design_rules
    #memory clock path中存在时钟门控单元
    add_dft_clock_enables
    #设计中包含多路复用器并且必须控制
    add_dft_contrl_points
    #要在memory clock path插入多路复用器
    add_dft_clock_mux
    
    如果设计在setup模式存在任何问题,比如定义时钟有误则会发生DRC违例,只有清理干净所有违例才能进入下一步骤。
Create DFT Specification

基于DFT requirements specified来创建DFT specification。

  1. Invoke create_dft_specification
    使用create_dft_specificcation命令自动创建一个DFT specification,这个specification会存储在内存中,可以使用report_config_data来报出这个specification。
    DFT specification包括IJTAG network wrapper到BIST controller的电路以及MBIST wrapper到MBIST的配置。IJTAG网络符合IEEE1687标准。

    set dft_spec [create_dft_specification]
    report_config_data $dft_spec
    read_config_data
    
  2. Edit/Configure the DFT Specification According to Your Requirements
    使用默认配置不需要修改,如果要自定义可以参考以下方法:
    Method1: 更改设计约束并重新生成DFT specification
    使用这种方法重新回到setup模式修改配置后重新生成DFT specification。

    set_system_mode setup
    set_memory_instance_options -physical_cluster_size_ratio 40
    check_design_rules
    create_dft_specification -replace
    

    Method2: 使用GUI界面进行直接修改
    首先使用 display_specification命令启动GUI界面然后进行修改,可以report_config_data 来查看当前做的修改,如果要加到DFT specification中可以使用 read_config_data。

    Method3: 在内存中直接修改DFT specification
    可以通过 add_config_element和set_config_value命令来对DFT specification进行修改,通过这种方法每次运行相同的flow,specification都会被修改。

  3. Validate the DFT Specification
    这是一个可选的步骤,通过这个步骤可以确认修改后的specification是否存在error。

    process_dft_specification -validate_only
    
Process DFT Specification

Create DFT Hardware with the DFT Specification
按照Specification创建相应结构。

process_dft_specification

使用该命令生成并插入DFT specification需要的所有DFT硬件结构,在chip level会插入TAP controller,在physical和sub-block level会插入IJTAG scan interface。

Extract ICL

Extract ICL用来验证process_dft_specification命令创建并插入的ICL module连接是否正确,是否存在DRC问题,如果不存在,提取顶层的ICL description并创建本部分综合使用的SDC。如果存在DRC可以使用open_visualizer来debug。
Preparation for Pattern Generation

Create Patterns Specification

create pattern specification创建默认的pattern specification。pattern specification是一个用来告诉你process_patterns_specification创建了哪些用来测试的配置文件。可以通过对默认的pattern_specification进行修改来生成想要的测试pattern specification。

  1. Automatically Created Patterns Specification
    当使用create_patterns_specification产生默认的pattern specification时,默认的pattern specification只会存储到内存中,每次执行process_patterns_specification 时会将它的副本写入到TSDB/pattern目录中,并且验证没有error,如果想看specification的具体内容可以使用report_config_data命令。
set pat_spec [create_patterns_specification]
report_config_data $pat_spec
  1. Edit/configure the Patterns Specification According to Your Requirements
    可以通过以下方法来根据个人需求修改或配置pattern specification,通常是不需要修改的。
    Method1: Edit the pattern specification in memory
    这是首选的方法,可以通过tcl或dofile来修改,可以在以后迭代使用。
set pat_spec [create_patterns_specification]
set_config_value -in $pat_spec/Patterns(MemoryBist_p1)/tester_period 50ns

Method2: Write out the patterns specification, edit the file, and read the file back in
先将pattern specification写出来再对file进行修改,显然这种方式更简单但是不推荐,因为它会覆盖掉原文件,所以假如必须要使用最好先复制一份原文件备份。

create_patterns_specification
report_config_data
write_config_data initial_mbist_cfg.pat_spec -wrappers PatternsSpecification(blockA, signoff)
read_config_data bonding1_config_edited.pat_spec
report_config_data

Method3: Use the GUI to edit the patterns Specification
使用add_config_tab PatternsSpecification()命令并通过GUI编辑模式进行specification修改。

add_config_tab PatternsSpecification(blockA,rtl,signoff)
Process Patterns Specification

Process Patterns According to the Patterns Specification
使用命令process_patterns_specification来根据默认的patterns specification或者根据个人需要修改过的patterns specification生成patterns和testbenches。

process_patterns_specificcation
Run and Check Test Bench Simulation

这是使用Tessent Shell来插入MBIST的最后一个步骤。对MBIST进行仿真验证并查看结果。

  1. Run Simulations
    使用run_testbench_simulations命令来启用simulation编译并执行simulation test benches。testbench来自于process_patterns_specification命令产生的<tsdb_outdir>/patterns/.patterns_signoff。
run_testbench_simulations
  1. Check Results
    使用check_testbench_simulations命令来check run_testbench_simulations的结果。
check_testbench_simulations
  1. Formal Verification
    Just reminder,please run formality check to see if there any other issue.
Test logic Synthesis

对于RTL和netlist的测试逻辑综合方法是不同的。

  1. RTL Design Flow Synthesis
  • Using Generated SDC for MemoryBIST
    extract_icl和extract_sdc命令在执行后都会创建相应的sdc用于综合、布局布线和静态时序分析。需要注意的是extract_sdc命令在使用时必须在extract_icl之后。
    当extract_icl的对象是带有sub-block的physical block,那么会为physical block和sub-block都生成sdc。
  • Synthesizing the RTL Design with Test Logic
    这个过程可以通过写脚本来自动实现,由综合工具去综合带有DFT的RTL design。使用 write_design_import_script命令可以生成让综合工具用来执行综合命令的脚本。
write_design_import_script
  1. Gate Level Design Flow Synthesis
    门级网表的综合flow是全自动化的,只需要使用run_synthesit命令去综合测试逻辑并集成到design中就好。
  • Run Synthesis
    run_synthesis 命令只会综合TSDB中包含的test logic RTL。当创建和插入MBIST、Boundary scan、IJTAG逻辑时,生成的RTL会自动写到TSDB中,在执行process_dft_specification命令期间。
run_synthesis
  • Concatenate Netlist Generation
    当run_synthesis命令成功执行完成后,会把综合后的test logic以及为此而修改的design module创建并放置到TSDB的dft_inserted_designs目录中。
  • 10
    点赞
  • 47
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 2
    评论
### 回答1: Tessent MBIST User Guide是一个关于Tessent Memory Built-In Self Test(MBIST)软件的用户指南。这个软件是由Mentor Graphics公司开发的,主要用于芯片设计中的集成电路自检测。这个指南提供了一个详细的使用说明,包括了该软件的主要功能和特点,以及用户如何使用和配置该软件来优化集成电路的测试Tessent MBIST可以帮助设计师更容易地检测芯片中的故障,提高芯片的可靠和稳定。该软件还提供了多种测试模式,包括逻辑模式和随机模式等,以帮助用户更好地测试不同类型的集成电路。在使用该软件时,用户需要遵循一些基本的指南,如如何设置测试向量、如何选择不同的测试模式等。总体而言,Tessent MBIST User Guide是一个非常实用的指南,它可以帮助芯片设计师更好地理解和使用Tessent MBIST软件,从而提高芯片的可靠能。 ### 回答2: Tessent MBIST User Guide是一本使用手册,它介绍了Tessent MBIST工具的使用方法,并提供了关于如何在电路设计过程中使用MBIST (Memory Built-in Self-Test)技术的细节。MBIST技术可以用来测试电路中的内置存储器(SRAM, ROM等)是否正常工作。 这个手册提供了用户需要的所有信息,包括如何使用Tessent MBIST 工具,如何设置测试模式,如何编写和运行测试程序等。它还介绍了如何分析测试结果和进行故障排除。 另外,Tessent MBIST User Guide还提供了有关如何使用该工具来减小测试时间和测试芯片的功耗。通过使用该工具,用户可以高效地测试电路,同时减少测试成本和时间。 总之,Tessent MBIST User Guide是一个非常实用的手册,能够帮助电路设计人员快速学习和使用MBIST技术,从而提高测试效率和电路品质。 ### 回答3: Tessent MBIST User Guide 是一份关于硬件测试的用户手册。Tessent MBIST(Memory Built-In Self-Test)是一种内置式自测试技术,可用于测试集成电路的存储器单元,如SRAM、DRAM和ROM等。 该用户手册详细介绍了Tessent MBIST与其他测试技术的对比和优势,如其高效、可靠、灵活和可重复使用等。手册中还介绍了Tessent MBIST的体系结构、设计流程、操作方法、文件格式和仿真模型等内容。 手册提供了详细的应用指南,包括测试场景的设置、仿真验证、测试覆盖率的评估和结果分析等。同时,手册还提供了许多实际案例,展示了Tessent MBIST在各种应用场合下的应用效果。 总之,Tessent MBIST User Guide 是一个全面而详细的硬件测试指南,有助于工程师了解、掌握和应用Tessent MBIST技术,提高集成电路的测试效率和质量。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

旺旺小小书

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值