Mahale 2019
Mahale 2019
Mahale 2019
Abstract— In VLSI industry the design cycle is categorized mixture of different message types such as: I2C-like single
into Front End Design and Back End Design. Front End data rate (SDR) messages which use SCL clock speeds of up
Design flow is from Specifications to functional verification of to 12.5 MHz and HDR messages which achieve higher data
RTL design. Back End Design is from logic synthesis to rates. The specification also provisions for peer-to-peer
fabrication of chip. Handheld devices like Mobile SOC’s is an communication between I3C slaves [3].
amalgamation of many components like GPU, camera, sensor,
display etc. on one single chip. In order to integrate these Verification of SOC is complex when multiple IC’s are
components protocols are needed. One such protocol in the integrated and communication between IC’s is major hurdle.
emerging trend is I3C protocol. I3C is abbreviated as Verification Engineer must spend rigorous time to learn IP
Improved Inter Integrated Circuit developed by Mobile code, building complex test bench and developing test cases
Industry Processor Interface (MIPI) alliance. Most probably foreach IP is tedious. One solution is reuse of IP testbench
used for the interconnection of sensors in Mobile SOC’s. The and testcase. The paper [7] here depicts the reusable
main motivation of adapting the standard is for the increase verification environment for SOC verification. The main
speed and low pin count in most of the hardware chips. The advantage is ease of debugging and less complexity. The
bus protocol is backward compatible with I2C devices. The paper [9] also describes an efficient approach to verify SOC
paper includes detailed study I3C bus protocol and developing and provides verification flow by using IP test bench ad test
verification environment for the protocol. The test bench
case based on UVM. It is well established verification
environment is written and verified using system Verilog and
approach for IP and SOC Using the flow, both SOC and IP
UVM. The Universal Verification Methodology (UVM) is base
class library built using System Verilog which provides the engineers can work in their own specialized area and
fundamental blocks needed to quickly develop reusable and collaborate on debugging.
well-constructed verification components and test
environments. The Functional Coverage of around 93.55 % II. I3C PROTOCOL
and Code Coverage of around 98.89 % is achieved by
verification closure.
I3C protocol is new standard for mobile sensor interface
developed MIPI alliance group. The new I3C standard
Keywords—I3C, MIPI, SOC, UVM, VLSI supports speed up to 12.5 MHz and new communication
modes like HDR- DDR which transfers data on both the
edges. I3C is new protocol introduced for mobile sensor
I. INTRODUCTION proliferation that combines the advantage of I²C and SPI is
Communication interface plays important role for introduced. New features like in band interrupt, dynamic
communicating with various subsystems of the embedded addressing and power management. I3C interface is intended
system. The interface classified as Onboard communication to improve upon the features of the I2C interface, preserving
interface and external communication interface. The protocol backward compatibility. Two main concerns are paramount
that interconnects various components or subcomponents for the I3C interface: The use of as little energy as possible
within a system is referred to as onboard communication in transporting data and control, while reducing the number
interface. Some of the example of Onboard Communication of physical pins used by the interface [3].
interface are serial Interfaces like I2C, UART, SPI etc. and I3C bus supports multi-master configuration, so bus can
parallel bus interface[1,5]. have more than one master. The main master can be only one
I3C stands for Improved Inter Integrated Circuit i.e. i.e. the current master it can pass the ownership to the
improved I2C. It is mainly used to interface sensor secondary master present on the bus. I3C device with both
peripherals. As compared to I2C it supports new the configuration capabilities i.e. to be master and slave
communication modes, higher speeds. The I3C interface was cannot function as both role at the same time, it must be
developed by a working group that included participation by configured either master or either slave[4]. Current master
engineers from Advanced Micro Devices, Inc., Analogix role only one device can be configured to be the main master
Semiconductor, Inc., Cadence Design Systems, Inc., Google, i.e. current master. The block diagram of bus configuration is
Inc., Intel Corporation, Knowles Electronics, Lattice shown in Figure 1.
Semiconductor Corp., MediaTek Inc., NXP Semiconductor, I3C master has following roles:
Qualcomm Technologies, Quick Logic, Sony Corporation,
STMicroelectronics, Synopsys Inc. and others [4,6]. 1. I3C main master
I3C is a two-wire bus: serial data (SDA) corresponds to 2. SDR-only main master
bidirectional serial data; serial clock (SCL) corresponds to 3. I3C secondary master
serial clock that can act as either a clock pin or a data pin in
certain high-data-rate (HDR). The I3C bus supports a 4. SDR- only secondary master.
Transactions are generated by a sequencer and sent to driver. sent to the driver which in turn drives the DUT ports. For
Drivers use the information in these transactions to drive example, for testing an AHB interface, the sequencer will
DUT signals. Transactions are sometimes referred to as create AHB read and write transactions.
sequence items, these objects contain data fields, constraints
and functions and tasks used to manipulate the transaction. Class Hierarchy:
4. Driver
Drivers drive transactions on to DUT, they convert
transactions that are generated by the testbench environment
into signal level transitions.
Driver performs three functions
Figure 4: steps in creating sequence items • requests the sequencer to generate the next
2. Sequence transaction
Sequences are a group of transactions that focus on a • convert these transactions onto pin wiggles that
operation of the DUT. It is ordered collection of one or more can be driven on the DUT
sequence items. It is intended to test a scenario during the
verification process • sends the transaction information to the
scoreboard
Class Hierarchy:
• uvm_sequence_item is base class for user
defined sequence items
• uvm_sequence_base is base class for sequences
• uvm_sequence # (REQ, RSP) is parameterized
by the transaction type
5. Monitor
Monitors are used to monitor signal transitions that occur
on the bus. They convert these signal level transitions into
transactions. The monitor sends these transactions to
scoreboards and coverage collectors for analysis purposes.
The monitor class is derived from uvm_monitor base class.
Two types of agents: Active and Passive • Configures the testbench environment as
required; specifically, it sets up the appropriate
Active agent is one which contains driver and sequencer number of masters and slaves
and drives transactions to DUT.
• Creates the configuration objects that are
Passive agent is one which has only monitor and do not required to connect the UVM driver with the
drive the DUT. appropriate virtual interface or proxy class
• Connects the virtual sequencer to all the
sequencers in the testbench, which enables the
virtual sequencer to provide centralized control
to all sequencers
• Connects the scoreboard to all the agents
• The environment is also the best place for doing
factory overrides
7. Scoreboard
Scoreboards are crucial in any self-checking environment
to ensure proper operation of the DUT. They verify the
proper operation of the DUT by keeping track of all the
transactions in the system. For example, if a slave contains a
memory component, the scoreboard keeps track of all the Figure 11: Steps in Creating Environment
write and read transactions and checks if the slave is 9. Test
returning the right value.
Tests are responsible for two important items
• Instantiates environment