UVM Based Verification of CAN Protocol Controller Using System Verilog
UVM Based Verification of CAN Protocol Controller Using System Verilog
UVM Based Verification of CAN Protocol Controller Using System Verilog
Volume: 3 Issue: 5
ISSN: 2321-8169
2898 - 2902
_______________________________________________________________________________________________
[email protected]
Mr. Ashish Prabhu
Sr. Verification Engineer at LSI Pune, India
[email protected]
AbstractOver the years, design complexity and size have stubbornly obeyed the growth curve predicted by Gordon Moore. The
industry is migrating towards leading edge nodes, which can hold more than 100 Million gates. The chip makers want to pack as
many functions possible in their SoCs and provide as many feature additions to gain market share. And, of course, all of those
features need to be verified. Verification is currently the largest challenge facing the semiconductor industry in keeping pace with
both the customer demand for features and our technical ability to add millions of gates to our chips. Verification quality is a must
for functional safety in electronic systems. This paper describes the verification of CAN Protocol Controller using System
Verilog. The CAN Controller functions as the interface between an application and the actual CAN bus. Taking this need in
consideration, this paper describes flow from specification extraction to development of verification environment.
Keywords- UVM, ASIC, VLSI, CAN, DUT
__________________________________________________*****_________________________________________________
automatic test generation, self-checking testbenches and
I.
INTRODUCTION
coverage metrics to significantly reduce the time spent
During the last decades, several verification methodologies
verifying a Design Under Test (DUT).
have been developed to ease the process of ASIC
verification designs. EDA tool vendors usually develop
II. VERIFICATION
these methodologies which in most cases are not compatible
with tools from different vendors [4]. With the introduction
In VLSI (Very Large Scale Integration) technology we
of the Open Verification Methodology (OVM) which
design and make integrated chips. ASIC (Application
supports the use of SystemVerilog testbenches, need for
Specific Integrated Chip) designing is a process in which
verification became more standardized and hence, OVM
RTL (Register Transfer Level) design is made using
paved way for Universal Verification Methodology (UVM)
Hardware Description Language (HDL). Based on correct
which has become an official Accellera standard supported
RTL respective chip is manufactured. If RTL contains errors
by all EDA tool vendors today[4].
or bugs the final chip does not work properly according to
This research presents UVM based Verification process and
specified functionality. To make sure that RTL is working
methodology using SystemVerilog, explains verification
correctly according to specified functionality, verification is
strategy and reuse of design environment with reference to
required. According to Moores law number of transistor
verifying the CAN Protocol controller (IP) core.
increases in the design every 18 months. As the number of
Communication across a CAN bus starts with the
transistors in the design increases so the errors in the design
application providing the CAN controller with the data to be
increases. Thus verification is one of the most important
transmitted. The CAN controller provides an interface
processes of ASIC flow which make sure the functional
between the application and the CAN bus. The function of
correctness of the design.
the CAN controller is to convert the data provided by the
application into a CAN message frame fit to be transmitted
Verification is a process used to demonstrate the functional
across the bus. A transceiver receives the serial input stream
correctness of a design in its implementation [8].At every
from the controller and converts it into a differential signal.
step of developing a chip we need verification. At each level
The Physical connection of the CAN controller to the CAN
we need some
bus is done with the CAN transceiver.
level of verification. Basically verification covers the below
The Universal Verification Methodology (UVM) offers the
things.
most excellent structure to attain coverage driven
What we specified is what we envisioned.
verification. The coverage driven verification combines
What we design is what we specified.
2898
IJRITCC | May 2015, Available @ http://www.ijritcc.org
_______________________________________________________________________________________
ISSN: 2321-8169
2898 - 2902
_______________________________________________________________________________________________
What we taped out is what the RTL described.
What we manufactured is what we taped out.
Bug is error or misbehaving of design. It is unexpected
behaviour of the design. No design in VLSI is bug free.
Bugs found in early stages of verification costs very little. It
is always best to find bugs in the design as early as possible.
For complex designs synthesis takes lots of time. If we find
bugs in later stage it costs more.
IV.
_______________________________________________________________________________________
ISSN: 2321-8169
2898 - 2902
_______________________________________________________________________________________________
IMPLEMENTATION
2900
IJRITCC | May 2015, Available @ http://www.ijritcc.org
_______________________________________________________________________________________
ISSN: 2321-8169
2898 - 2902
_______________________________________________________________________________________________
Table 1 Verification Component
Components
Parent
Class
Description
top.sv
NA
interface.sv
NA
tr1_test.svh
can_base_te
st, uvm_test
tr1_test
can_env
uvm_env
can_scoreboard
uvm_scoreb
oard
can_agent
uvm_agent
sequence_item
uvm_seque
nce_item
can_driver
uvm_driver
can_monitor
uvm_monit
or
_______________________________________________________________________________________
ISSN: 2321-8169
2898 - 2902
_______________________________________________________________________________________________
// Sequences
`include "sequences/base_sequence.svh"
`include "sequences/reset_seq.svh"
`include "sequences/init_seq.svh"
`include "sequences/tr1_seq.svh"
// UVM Components
`include "can_driver.svh"
`include "can_monitor.svh"
`include "can_agent_config.svh"
`include "can_agent.svh"
`include "can_scoreboard.svh"
`include "can_env.svh"
// Base Test and Extended Tests
`include "test/can_base_test.svh"
`include "test/tr1_test.svh"
endpackage: can_pkg
IX.
CONCLUSION
Verification plays an important role for the functional safety
and understanding of electronic circuits. Literature survey is
done to select the verification methodology as UVM. The
Universal Verification Methodology (UVM) represents the
latest member of a family of methodologies for functional
verification of digital hardware. UVM was built on the
principle of cooperation between EDA vendors and
customers. It is based on SystemVerilog classes, and proven
to be a powerful OOP technique with highly reusability.
Due to the wide range of applications of CAN controller in
automobile industry this protocol needs to be verified. The
main objective of this project is to develop a generic
verification environment in SystemVerilog by the UVM
methodology. So here a verification environment is
proposed for CAN Protocol Controller. Here layered
testbench is developed where each layer has particular
functionality. By using OOP concept different functionality
are divided into different classes. Global class contains all
global signals and signals which need to be randomized.
Generator class performs all randomization and data
generation operation. Driver class performs driving
command to DUT. Monitor class monitors all activity of
whole testbench. Scoreboard class keeps the track of passed
and failed transactions. So here self-checking and generic
environment is developed. According to specification
testplan is developed which contains all possible test cases
and scenarios.
REFERENCES
_______________________________________________________________________________________