Reference Methodology
Tessent MemoryBIST Flow
1
Introduction
What is BIST?
Built-in Self Test, or BIST, is a technique of designing
additional hardware and software features into integrated
circuits to allow them to perform self-testing, i.e.: testing
of their own operation (functionally, parametrically, or
both) using their own circuits, thereby reducing the
dependence on an external automated test equipment
(ATE).
Hence, Memory BIST (commonly referred to as MBIST) is
the technique of testing memories embedded in integrated
circuits by applying, reading and comparing test patterns
designed to expose defects in the memory device.
2
Introduction (continued)
Below is a generic block diagram of a MemoryBIST
architecture:
3
Introduction (Tessent)
What is Tessent?
Tessent is a suite of software automation tools that generates and
inserts the Embedded Test Controllers (i.e. BIST) into Integrated
Circuits that allow self-testing and failure diagnostics of embedded
memories.
Features, such as top-down or bottom-up flow, greatly improves the
embedded test insertion predictability. Tessent supports WTAP, a
distributed version of the central TAP using the IEEE 1500 protocol,
which allows complete physical block footprint predictability.
Various embedded test objects that can be inserted into your design
using the Tessent Hierarchical Integrated Flow tools include the
following:
• Memory BIST controllers
• LogicTest controllers (LBIST)
• Boundary scan registers
• IEEE 1149.1 Circuit test access port (TAP)
• IEEE 1500 Core wrapper test access ports (WTAP)
4
Introduction (Tessent)
Below is a block diagram at the Chip-Level with Embedded Test from
Tessent. It shows the top-level TAP driving the block-level distributed
Wrapper TAP (WTAP). The WTAP in-turn drive the embedded MBIST
and LBIST controllers.
5
How to insert MBIST into Integrated Circuits
There are two techniques (methods) of inserting MBIST into
an integrated circuit:
RTL
GATE
This presentation focuses on the RTL MBIST insertion flow at
the block-level, using the Mentor Graphics Tessent
MemoryBIST tool.
DISCLAIMER: please refer to the Mentor Graphics Tessent MemoryBIST
Usage Guide and Reference documents for additional information and in-depth
details.
6
RTL Design Flow (overview)
7
GATE-Level Design Flow (overview)
8
Getting Started: Tessent MemoryBIST flow (overview)
Whether for RTL or GATE-Level netlist, the Mentor Graphics
Tessent MemoryBIST flow is comprised of 5 steps, which are
performed at different stages within the flow:
9
Getting Started: Tessent MemoryBIST flow (contd)
Step 1: ETChecker – checks if a design meets the embedded test
requirements, identifies where test-point locations and dedicated
isolation will be inserted and extracts all pertinent design
information from the RTL or netlist.
Step 2: ETPlanner – Plans your embedded test insertion and
generates the needed Tessent Integrated Flow environment.
Step 3: ETAssemble – Inserts the embedded test controllers,
such as WTAP, memory BIST Controller and Interface Collars.
Step 4: Prelayout ETSignOff – Performs pre-layout ETSignOff
using rule checkers, Static timing analysis, formal verification, and
simulations.
Step 5: Final ETSignOff – Performs final post-layout ETSignOff
using rule checkers, Static timing analysis, formal verification, and
simulations.
10
Preparation: What do you need to begin?
You will need to prepare the following items before you
begin:
Memory Library Models:
Verilog Simulation Model (*.v)
LogicVision Scan Model (*.memlib or *.lvlib)
Standard Cell Library Models:
Verilog Simulation Model (*.v)
LogicVision Scan Model (*.scan)
Synopsys Liberty Model (*.lib)
The Verilog simulation and Synopsys Liberty models are
provided by the foundry.
11
Preparation: Generating the LogicVision Scan Models
You can generate the LogicVision Scan Models for the
Standard cells using the Tessent ETLibGen tool:
etlibgen gf28 \
-mode nonScan \
-libertyFile <technology>.lib \
-y ./verilog \
-scanmodelExtension scan \
-configFile gf28.etlib
Once you have prepared your work area; and setup the
library models you need, we can now begin the individual
steps for the RTL flow.
12
Step One: ETChecker
Step One: ETChecker is comprised of the following four (4)
sub-steps, represented in the block diagram below:
13
Step One: ETChecker
1.etchecker <design> -gentemplate ON
Generates the template file: <design>.etchecker
Generates a Makefile
Modify the template file sections: “lv.target”, “lv.EmbeddedTest”, “lv.Assert”
Modify the Makefile section: “etcOptions”, “BATCH=on|off”
2.make <design>.clockInfo
Extracts clock information from the design
Review the following log and report files:
etCheckInfo/etchecker.log_clockInfo
etCheckInfo/etchecker.rpt_clockInfo
Review the following design output files:
etCheckInfo/etp/<design>.etpClockTree
etCheckInfo/etp/<design>.etpClockDomainInfo
etCheckInfo/etp/<design>.etpConstraints
Update the template file generated in (#1): <design>.etchecker with
the clock information extracted
Modify the template file section: “lv.ClockDomainBase”
Modify the template file section: “lv.InternalClocksource”
14
Step One: ETChecker (success)
3.make <design>.ruleCheck
Performs design rule checks (DRC) on the design
Review the following log and report files:
etCheckInfo/etchecker.log_ruleCheck
etCheckInfo/etchecker.rpt_ruleCheck
Success is achieved ONLY by the creation of the following
directory and output file(s):
4. etcHandoff/<design>.etCheckerInfo
No error message reported
No fatal severity message reported
15
Step Two: ETPlanner
Now that the “checking” portion of the design is complete, we
begin the planning section of the flow. This is the stage
where test trade-offs are made based on:
Test quality
Test time
Power consumption
Area
However, before we begin; to maintain consistency between
design groups, it is useful to create Global Definition files that
can be used by everyone involved in the same project.
16
Step Two: ETPlanner (Global Definition Files)
What is a Global Definition file?
Global Definition files: contain information used at
different stages of the flow to maintain consistency
among different design groups involved in the same
project.
Maintenance and support of the Global Definition files
by a single DFT entity is possible, and no designers will
be left behind for environment details
The 3 Global Definition files recommended are:
ICTechnology file
CADEnvironment file
ETDefaults file
17
Step Two: ETPlanner (Global Definition Files - contd)
1. ICTechnology file:
Specifies the directory path location of all required technology libraries,
such as: Verilog simulation models, LogicVision scan models, Synthesis
models, etc.
2. CADEnvironment file:
Specifies the default simulator (example: Cadence NCVerilog, Synopsys
VCS, Mentor Graphics ModelSim), and the simulation commands you want
to use (example: ncxlmode, vcs, vlog).
Specifies the synthesis tool to be used (example: Synopsys DC-Compiler)
Specifies the command to create directories (example: /bin/mkdir)
Specifies the command to create soft links (example: /bin/ln –s)
3. ETDefaults file:
Defines all embedded test defaults for Memory BIST and Logic BIST; such
as diagnostic features, power limits, algorithm selection, etc.
18
Step Two: ETPlanner
Step Two: ETPlanner is comprised of the following three (3)
sub-steps, carried out in this order:
1.Generate the Embedded test plan template files: <design>.etplan; and
<design>.etplan.README
etplanner <design> \
-mode genPlan \
-etCheckerInfoFile ../etchecker/etcHandoff/<design>.etCheckerInfo \
-CADEnvFile ./CentralFiles/HWLib.CADEnv \
-ICTechFile ./CentralFiles/gf28.LVICTech \
-etDefFile ./CentralFiles/HWLib.ETDefaults \
-etplanFile <design>.etplan \
-memLib ../LIBS/srams/*.memlib \
-outDir outDir \
-log ./logfiles/etplanner.log_genPlan
19
Step Two: ETPlanner (contd)
Review and update the following sections in the <design>.etplan
file, refer to the <design>.etplan.README file for additional
instructions:
CADEnvironment: ./CentralFiles/*.CADEnv
ICTechnology: ./CentralFiles/*.LVICTech
DesignSpecification
RTL | Gate Extension
Modules RTL | Gate
Embedded Test
Global Options
Module Options
MemBistControllerOptions
MemBistStepOptions
MemBistCollarOptions
20
Step Two: ETPlanner (contd)
Once we are satisfied with our chosen options, the following
steps confirms the plan, and generates all the necessary files,
soft links, and workspaces:
2.make checkPlan
Verifies the Embedded Test Plan and generates a report
Review the output file: OutDir/<design>.ETSummary to make sure your
specifications are met (example: Test time, Power)
If your specifications are not met, return back to ETChecker (Step One), or
modify <design>.etplan from (#1.) and re-run (#2.) -> make checkPlan
3.make genLVWS
Verifies the Embedded Test Plan
Generates the LVWorkSpaces for the implementation of the plan
21
Step Two: ETPlanner (flow)
To summarize, below is a block diagram representing
the steps in the ETPlanner flow:
22
Step Two: ETPlanner (success)
Success is achieved ONLY by the creation of the
following directory and output file(s):
OutDir/<design>.membist_checkPlan
Describes the memory BIST architecture that will be implemented
Review the following log files to make sure no errors or fatal
severity messages are reported:
OutDir/etplanner.log_checkPlan
OutDir/etplanner.log_genLVWS
23
Review of Rule Checking and Planning
At this point of the flow, let’s review the steps we have just
completed:
a) Step One: ETChecker
Checked the design for Embedded Test compliance
Executed in two (2) modes: “clockInfo” and “ruleCheck”
Success was demonstrated by the generation of the file
<design>.etCheckerInfo in the etcHandoff directory
b) Step Two: ETPlanner
Plan the Embedded Test solution
Success was demonstrated by the generation of the file
<design>.ETSummary, and the file
outDir/<design>.membist_checkPlan
Success was also demonstrated by the generation of the LV workspace
directories, where the plan will be implemented
24
Step Three: ETAssemble
Now that the “checking” and “plan” portion of the design is
complete, we begin the “assemble” section of the flow. This
is the stage where the actual implementation of the
Embedded Test Plan is executed.
There are seven sub-steps required to be executed in Step
Three. These sub-steps are well documented in the
generated Makefile and README files located in the LV
workspace directory. Review these files for additional
information.
You will need to change directory to the
<design>_LVWS/ETAssemble to start the
implementation.
25
Step Three: ETAssemble
1. make embedded_test:
Generate and insert the WTAP, memory BIST controllers into your design
The generated BIST files are written into the ./outDir directory, verify that
they exist (i.e.: *.v), and also the timing constraint files (i.e. *.sdc)
Review log file: ./outDir/etassemble.log to make sure no error
messages are reported, and warning messages are understood.
2. make mbist_full_sim:
Run a full address simulation using the memory assembly module to verify
the memory BIST controllers are operating correctly
Review the log file:
./outDir_etv/verilog.log_membistv_P1_<design>_int_MBIST_asse
mbly_rtl
3. make designe:
Generate the <design>.tcm file, and extract connection information
Review the log file: outDir/designe.log_<design>
26
Step Three: ETAssemble
4. make config_etSignoff:
Generate the <design>.signoff testbench configuration file, which is
required to perform early verification of all Embedded Test features.
Review the log file: ./outDir_etv/etv.log_config_etSignOff
5. make lvdb_prelayout:
Generate the pre-layout circuit database
Review the log file: ./outDir_etv/etv.log_CreateLVDB
6. make testbench:
Generate the testbench based on (#4.) above for early verification
Review the log file: ./outDir_etv/etv.log_testbench
7. make sim:
Simulate the testbench created in (#6.) on the entire RTL design with the
embedded test controllers
Review the log files: ./outDir_etv/verilog.log_wtapbist_DP1 and
./outDir_etv/verilog.log_membistv_P1_<design>
27
Step Three: ETAssemble (success)
Success is achieved when:
1. All generated log files reviewed report no error messages, and
warning messages are understood.
2. Simulation performed in (#.7) is error free, meaning no mis-
compares are reported at the end of simulation for both the WTAP
and MEMBIST steps:
513000 * Resetting the WTAP with the signal WRSTN
518000 * Shifting Instruction register and expecting inverted default
518000 Instruction after a reset 111...
[statusEnable=1]...1[01] being shifted out.
550000
550000 End of the WTAP TESTLOGICRESET Test
Simulation finished at time = 550000
Number of Z Compare Events = 0
Number of 1/0 Compare Events = 309
Number of Compare Failures = 0
Simulation complete via $finish(1) at time 55 US + 0
./outDir_etv/wtapbistv_DP1.v:106 $finish;
28
Step Three: ETAssemble (success contd)
56896 Starting controller abric_CLK625MHz_int_MBIST1_cntrl
----- 0% -----
----- 10% -----
----- 20% -----
----- 30% -----
----- 40% -----
----- 50% -----
----- 60% -----
----- 70% -----
----- 80% -----
----- 90% -----
----- 100% -----
66272 Checking that signal DONE is YES on IR_STATUS0
66400 Checking that signal GO is PASS on IR_STATUS1
69808
Simulation finished at time = 69808
Number of Z Compare Events = 0
Number of 1/0 Compare Events = 21
Number of Compare Failures = 0
Simulation complete via $finish(1) at time 6980800 PS + 0
./outDir_etv/membistv_P1_abric.v:116 $finish;
3. Verify and review the generated Timing constraints for the MBIST
controller: ./outDir/<design>_etassemble.sdc
29
Step Four: Pre-Layout ETSignOff
1. Synthesis:
Generate GATE-level synthesized netlist by synthesizing the RTL
Original RTL files (*.v), plus the Tessent modified RTL files (*.v_et)
Generated MemBIST controller RTL files (*.v)
Generated WTAP RTL files (*.v)
Consolidate the timing constraints for synthesis:
Functional SDC
MemBIST Controller SDC [from (#1.) in the Step Three]
2. Formal Verification:
Execute formal verification on the RTL-to-RTL netlist
GOLDEN: Original RTL files (*.v)
REVISED: The Tessent modified RTL files (*.v_et)
Execute formal verification on the RTL-to-GATE netlist
GOLDEN: Original RTL (*.v), plus Tessent modified RTL (*.v_et) files
REVISED: pre-layout synthesized GATE-Level netlist
30
Step Four: Pre-Layout ETSignOff (success)
3. Simulation:
Perform simulation on the pre-layout synthesized GATE netlist [from
(#1.) in step four] to ensure the testbench validates the WTAP and MBIST
operation of the BIST Controller, Collars and Memories.
4. Hand-Off to Layout:
Prepare the database to hand-off to Layout
Success is achieved when:
1. Formal Verification: reports no errors among the following databases
RTL-to-RTL: verification is error free
RTL-to-GATE: verification is error free
2. Simulation performed on the synthesized GATE-Level netlist [from step
(#.3) above] is error free, meaning no mis-compares are reported
at the end of simulation for both the WTAP and MEMBIST steps (see
simulation snapshot for example).
31
Step Five: Post-Layout ETSignOff
1. Formal Verification:
Execute formal verification on the RTL-to-GATE netlist
GOLDEN: Original RTL (*.v), plus Tessent modified RTL (*.v_et) files
REVISED: post-layout Synthesized GATE-Level netlist
Execute formal verification on the GATE-to-GATE netlist
GOLDEN: pre-layout synthesized GATE-Level netlist
REVISED: post-layout synthesized GATE-Level netlist
2. Simulation:
Perform parasitic back-annotated simulation on the post-layout GATE
netlist to ensure the testbench validates the MBIST operation of the BIST
Controller, Collars and Memories.
32
Step Five: Post-Layout ETSignOff (success)
Success is achieved when:
1. Formal Verification: reports no errors among the following databases
RTL-to-GATE: verification is error free
GATE-to-GATE: pre-layout versus post-layout verification is error free
2. Parasitic back-annotated simulation performed on the post-layout
GATE-Level netlist [(#.2) from step five] is error free, meaning no
mis-compares are reported at the end of simulation for both the
WTAP and MEMBIST steps (see simulation snapshot for example).
3. Hand-Off to Chip-Level Integration:
Prepare the database to hand-off for Chip-Level Integration
33
Reference Methodology Database Location
A Reference Methodology for the Tessent MemoryBIST RTL
flow exists in the following directory location:
Directory location:
/remote/proj4/infotech/poc/poc12_sjc
RTL Source Code:fromCustomer
DFT: MBIST/RTL
Formal Verification: LEC
Synthesis: SYNTH
ATPG: ATPG
Simulation: SIM
Static Timing Analysis: STA
Memory Library Models: LIB/srams
Standard Cell Models: LIB/std/cmos
Tutorial location:
/
remote/tools/linux/mentor/tessent_2009_5/tessent_SoC_2009_5
.EP03/ETCreate/support/ETCreate/training
-rw-r--r-- 1 cadmgr lmadmin 374049 Mar 31 2010 LV2005_ELT_Hier_Day2.pdf
-rw-r--r-- 1 cadmgr lmadmin 15313143 Mar 31 2010 LV2005_ELT_Hier_Day2.tgz
-rw-r--r-- 1 cadmgr lmadmin 292941 Mar 31 2010 LV2005_EMT_Flat_Day1.pdf
-rw-r--r-- 1 cadmgr lmadmin 2821000 Mar 31 2010 LV2005_EMT_Flat_Day1.tgz
34
Acknowledgements
THANK YOU
35