VSLVD Unit 1
VSLVD Unit 1
AND SCRIPTING
LANGUAGES FOR
VLSI DESIGN
Dr.Sk.Shoukat Vali
Asst. Professor,
ECE,
VNRVJIET.
What is verification?
• Verification is a process that ensures conformance of a design to
some predefined set of expectations
• In case of digital design verification, the expectations are defined by
the specifications
• Verification can be described as the reverse process of design, in that
it starts from the implementation and confirms that the specifications
are met
• The goal of verification is to demonstrate functional correctness of a
design, attempt to find design errors and to attempt to show that the
design implements the specification
• Design verification is the most important aspect of the product
development process consuming as much as 80% of the total product
development time.
• The intent is to verify that the design meets the system requirements
and specifications
Front End Design
VLSI Design Flow
• The VLSI design cycle starts with a formal specification
of a VLSI chip, follows a series of steps, and eventually
produces a packaged chip
HDL -Hardware description language.
• It is used to design digital logic. Eg: VHDL, Verilog.
• HDL is used for RTL design.
HVL -Hardware Verification language.
• It is used to Functionally verify the digital logic designed using a HDL
Eg: system-C, system-Verilog.
• HVL is used for RTL Verification (Random Verification).
• We can use hdl like verilog for the verification also but the problem
is we dont have options like structures in it that's why we prefer hvl
for the verification because it gives more freedom.
Scripting language
• It is a programming language designed for integrating and
communicating with other programming languages.
• Some of the most widely used scripting languages are JavaScript, VBS
(visual basic script), PHP, Perl, Python, Ruby, ASP and Tcl.
• Since a scripting language is normally used in conjunction with
another programming language, they are often found alongside
HTML, Java or C++.
• One common distinction between a scripting language and a
language used for writing entire applications is that, while a
programming language is typically compiled first before being allowed
to run, scripting languages are interpreted from source code or
bytecode one command at a time.
Scripting Languages
• In the new competitive generation of chip designing where time is a critical
parameter and also the complexity of designs are increasing exponentially.
• Adding to that it is also observed that the Verification is always considered the
longest pole and takes nearly 70% of the chip design life cycle.
• Hence any opportunity to automate a task which is repeatable for more than
once is considered of most importance to improve the verification productivity.
• This is where “scripting” skills are highly valuable for any design or verification
engineer.
UNIT – I
Introduction to Verification Methodology
• Basic Testbench Functionality
• Directed Testing
• Methodology Basics
• Functional Coverage
• Testbench Components
• Layered Testbench
• Building a Layered Testbench
• Simulation Environment
The Verification Plan
• The verification plan is derived from the hardware specification
• Contains a description of what features need to be exercised and the
techniques to be used
• These steps may include directed or random testing, assertions,
HW/SW co-verification, emulation, formal proofs, and use of
verification IP.
The Verification Process
• The process of verification parallels the design creation process
• A designer reads the hardware specification for a block, interprets the
human language description, and creates the corresponding logic in a
machine-readable form, usually RTL code
• A verification engineer must also read the hardware specification,
create the verification plan, and then follow it to build tests showing
the RTL code correctly to implement the features
• Hence a verification engineer need to understand the design and its
intent and to consider all the corner test cases that the designer
might not have thought about
Basic Testbench Functionality
The purpose of a testbench is to determine the correctness of the DUT(device
under test). This is accomplished by the following steps.
• Generate stimulus
• Apply stimulus to the DUT
• Capture the response
• Check for correctness
• Measure progress against the overall verification goals
Some steps are accomplished automatically by the testbench, while others are
manually determined.
Directed Testing
• Traditionally way of verifying the correctness of a design
• In this approach, according to the hardware specification write a verification
plan with a list of tests, each of which concentrated on a set of related features.
• Then write stimulus vectors that exercise these features in the DUT.
• Simulate the DUT with these vectors and manually review the resulting log files
and waveforms to make sure the design does what you expect.
• Once the test works correctly, you check it off in the verification plan and move to
the next one.
• It produces almost immediate results, since little infrastructure is needed when
you are guiding the creation of every stimulus vector.
• With ample time and staffing, directed testing is sufficient to verify many
designs.
• If you had enough time, you could write all the tests needed for 100% coverage of
the entire verification plan.
• When the design complexity doubles, it takes twice as long to complete or
requires twice as many people to implement it.