Professional Documents
Culture Documents
(IJECET)
Volume 7, Issue 3, MayJune 2016, pp. 2937, Article ID: IJECET_07_03_004
Available online at
http://www.iaeme.com/IJECET/issues.asp?JType=IJECET&VType=7&IType=3
Journal Impact Factor (2016): 8.2691 (Calculated by GISI) www.jifactor.com
ISSN Print: 0976-6464 and ISSN Online: 0976-6472
IAEME Publication
http://www.iaeme.com/IJECET/index.asp
29
editor@iaeme.com
1. INTRODUCTION
The Universal Verification Methodology, also referred to as UVM [1], is designed to
have verification of ASIC [2], full custom. It is also helpful to verify FPGA based
designs. All the constructs and capabilities of UVM may not be useful to one project
rather it depends on the project, hence the name Universal. UVM base class libraries
[3] provide the common platform for verification engineer to develop complex test
bench. There are often multiple classes, methods or macros those are basic constructs
to develop testbench.UVM Class Reference Manual documents all of these classes but
which class to use is not much clear. Some of them are for internal use of the UVM
methodology. The goal of this paper is learning and adopting UVM. Paper also
suggests architecture of test bench [4] using preferred classes for developer.
Verification is important part of VLSI Design. History shows failures of chips due
to lack of proper verification strategy [5]. The statistics also shows that around 70%
of total time for chip specs to manufacture process is required for verification. Due to
increasing need of reducing time to market, time required for verification need to
reduce.
Reduction in time for verification can happen through reusability. That means the
stuffs already developed for verification should be reused for current scope of
verification. Maximum is the reusability minimum time required for verification.
There are many methods suggested by different EDA vendors. Some of such well
known methodologies include eRM (e Reusable Methodology) [6], introduced by
Verisity & later adopted by Cadence. eRM requires knowledge of e language &
Specman tool [7]. Other methodologies like OVM (Open Verification Methodology)
[8] and VMM [9] are introduced by Synopsys. There become need to have tool
independent methodology & should be universal across. This gives the UVM
(Universal Verification Methodology) which supported by Cadence, Mentor Graphics
as well as Synopsys. The UVM becomes interesting due to tool independent. The base
code of UVM is System Verilog [10].
http://www.iaeme.com/IJECET/index.asp
30
editor@iaeme.com
All complex test benches may be architected as shown in the figure with little or
more modification depending on project complexity. As shown in the figure the
environment should be instantiated in the test case. This makes easy for configuration
of environment with respect to test case. The environment may consist of one or more
agents depending on interface protocol supported by DUT. All agents have similar
architecture and consist of one or all of monitor, driver, sequencer and sequences.
UVM scoreboard is used for data checking.
mm_env_vir_sequencer;
uvm_component_utils(mem_env)
http://www.iaeme.com/IJECET/index.asp
31
editor@iaeme.com
5. RESULTS
With UVM test bench, functional coverage can be achieved. Typical UVM test bench
with coverage definition & test cases are the main outcome of this effort. UVM log
reports, waveform and functional coverage numbers are importance in verification
field.
Fig. 2 shows UVM log report if there is no any bug in the DUT. Corresponding
waveform is shown in Fig. 4. Please note that with UVM testbench number of stimuli
can be generated automatically. Fig.4 is snapshot of waveform of such number of
stimulus generated.
Fig. 3 indicates UVM log report for captured RTL bug. Encircled portion in red
color indicates the actual bug. In this case, data written to memory and data read from
memory from same address is different. Expectation is to have same data. Report
shows expected data is `d12 but received is `d13. Corresponding waveforms for this
report are shown in Fig. 5 and Fig. 6. Write operation to memory as seen from Fig.5 is
to address `d0 with data `d12. Fig. 6 shows read operation from memory to address
`d0. As seen from waveform read data is `d13.
As seen we get ready log report from UVM test bench and we may save
considerable time compare to analyzing waveform manually.
http://www.iaeme.com/IJECET/index.asp
32
editor@iaeme.com
http://www.iaeme.com/IJECET/index.asp
33
editor@iaeme.com
Figure 6 Read (Bug: Written Data & Read Data is not same)
Fig. 8 shows some improvement in functional coverage as we run few test cases.
The status shows that we have not yet covered all functionality and there is still need
of more test cases to run targeting uncovered portion.
http://www.iaeme.com/IJECET/index.asp
34
editor@iaeme.com
Fig. 9 shows achievement of our target of 100% functional coverage. This may
require number of test cases to run. If our definition of functional coverage complete,
we may conclude of verification activity after achieving 100% functional coverage.
Please note that there is also need of achieving code coverage to conclude on
verification activity. Code coverage is simulation tool dependent and hence not
discussed in this paper.
6. CONCLUSION
UVM is a rich and capable class library that has evolved over several years from
much experience with real verification projects large and small, and SystemVerilog
itself is a large and complex language. As a result, although UVM offers a lot of
powerful features for verification experts, it can present a daunting challenge to
Verilog and VHDL designers who want to start benefitting from test bench reuse.
With UVM testbench, functional coverage can be achieved. Typical UVM
testbench with coverage definition & testcases are the main outcome of this effort.
The showcase of waveform & functional coverage numbers to indicate its importance
in verification field
http://www.iaeme.com/IJECET/index.asp
35
editor@iaeme.com
ADVANTAGES
APPLICATIONS
1. The Universal Verification Methodology (UVM) is a powerful verification
methodology that was architected to be able to verify a wide range of design sizes and
design types
2. The Universal Verification Methodology (UVM) is a standardized methodology for
verifying integrated circuit designs.
http://www.iaeme.com/IJECET/index.asp
36
editor@iaeme.com
REFERENCES
[1]
[2]
[3]
[4]
[5]
[6]
[7]
[8]
[9]
[10]
[11]
[12]
[13]
[14]
[15]
http://www.iaeme.com/IJECET/index.asp
37
editor@iaeme.com