Professional Documents
Culture Documents
Technology
Acknowledgement iii
Declaration iv
Company profile 1
1)Neuro-endoscopy 2
Result 15
Conclusion 16
ACKNOWLEDGEMENT
I take this opportunity to express my gratitude and regards to my esteemed training in-charge
for his guidance, monitoring and constant encouragement throughout the course of this
project. The support and help for the guide was very crucial in completing this project.
I would also like to thank Mr Anurag Pathak and Ms Kriti Sharma who helped me in
understanding the concepts involved in fulfilment of project. Above all I would like to thank
Regards,
____________________________
ADITYA GUPTA(15102031)
DATE: ______________________
DECLARATION
I hereby declare that the report of the project work entitled “VERIFICATION OF
Limited and Jaypee Institute of Information Technology in the partial fulfillment of the
requirements for the award of the degree of B.Tech in the Department of Electronics &
out by me. The material contained in this Report has not been submitted to any other
include features of a high-level programming language like C++ or Java as well as features
for easy bit-level manipulation similar to those found in HDLs. Many HVLs will provide
constrained random stimulus generation, and functional coverage constructs to assist with
HVLs. SystemVerilog attempts to combine HDL and HVL constructs into a single standard.
We need to verify the design to make sure that the design is an accurate representation of the
specification without any bugs. Verification is carried out to ensure correctness of design, to
avoid surprises at a later time, to avoid a re-spin of the chip and to enter the market on time
In the process of verification we are going to verify modules, SOC’s (System On Chip) by
driving the input to check the design behavior. we should check the behavior of the design by
driving correct and error input, in both the cases need to observe the design as it is behaving
Corporate Affairs, Govt. of India) is a Design and Product Company focused on VLSI
Design, FPGA Based Design and nurturing the ecosystem for the same.
Verilog RTL Development & Verification, CMOS Layout & PCB Design. Our Embedded
Software expertise ranges from Firmware & Device Drivers Development, ARM
Tevatron VLSI Chip Design Group: Offers complete Chip Design expertise from RTL to
GDSII implementations in 28nm, 32nm, 45nm technology nodes including pre and post-
silicon testing & FPGA/Emulation based prototyping. Expertise includes Front End Design
SystemVerilog offers several data types, representing a hybrid of both Verilog and C data
types. SystemVerilog 2-state data types can simulate faster, take less memory, and are
ARRAYS
An array is a collection of variables, all of the same type, and accessed using the same name
plus one or more indices. there are different types of arrays, few array declaration examples
as packed arrayand array size/dimensions declared after the object name is referred
as unpacked array.
DYNAMIC ARRAY
A dynamic array is one dimension of an unpacked array whose size can be set or changed at
run-time.
ASSOCIATIVE ARRAY
Associative arrays allocate the storage only when it is used, unless like in the dynamic array
exists(index) --> returns 1 if an element exists at the specified index else returns 0.
first(var) --> assigns the value of first index to the variable var.
last(var) --> assigns the value of last index to the variable var.
next(var) --> assigns the value of next index to the variable var.
prev(var) --> assigns the value of previous index to the variable var.
OOPS CONCEPT
CLASS
A class is the implementation of an abstract data type . It defines attributes and methods
which implement the data structure and operations of the abstract data type, respectively.
Instances of classes are called objects. classes define properties and behaviour of sets of
objects.
class A ; // attributes:
int i
// methods:
task print
endclass
INHERITANCE
say ``A inherits from B''. Objects of class A thus have access to attributes and methods of
POLYMORPHISM
Instances of subclasses may be assigned to variables declared of the superclass type. If the
subclass overrides a method specified in the superclass, the method defined in theclass of
ENCAPSULATION
The technique of hiding the data within the class and making it available only through the
methods, is known as encapsulation.Access control rules that restrict the members of a class
from being used outside the class, this is achieved by prefixing the class members with the
keywords.
ABSTRACT CLASS
The virtual keyword may be used on a class to make the class “abstract”. An abstract
class may not be instantiated. Users must subclass the abstract class tocreate instances of
the class.
VERIFICATION ENVIRONMENT
RANDOMIZATION
Variables declared as rand or randc are assigned random values when randomize() function is
called, where the constraint specifies the valid solution space from which the random values
functions for randomization. Calling randomize() causes new values to be selected for all of
Assertions are primarily used to validate the behavior of a design. An assertion is a check
embedded in, or bound to a design unit during simulation.Warnings or errors are generated on
Immediate Assertions
Concurrent Assertions
COVERAGE
Coverage is used to measure tested and untested portions of the design. Coverage is defined
Code Coverage
Functional Coverage
Code Coverage
Code coverage measures how much of the “design Code” is exercised.This includes,
execution of design blocks, Number of Lines, Conditions, FSM, Toggle and Path.
Functional Coverage
Functional coverage is a user-defined metric that measures how much of the design
information, has to utilize consistently between diverse systems at distinctive deferrals. The
FIFO model permits the transmitter to send information, while the collector is in not
functioning stage. The information then tops off the FIFO memory until the beneficiary starts
emptying it.
VERIFICATION PLAN
The verification plannings are growing in a rapid manner hence it becomes more and more
skillfully requirements to create a good plan before the verification has been finally started .
The verification plan must consist of the entire verification process and creatiopn of a good
plan will save a lot of tedious and unfruitful time later manner , which proposes a fiveday
INTERFACE: The Interface block is not shown in the plan but this is one of the essential
modules throughout the verification plan. In this particular block all the commonly used
depending on the test case configurations field selection. For the implemented FIFO design,
GENERATOR: The generator block creates a mailbox mbx. The mbx mailbox is used to
send the generated transaction to the driver block. The generator put the transaction tr into the
5. DRIVER : The driver block receives the transactions from the mailbox mbx and assigns
the values in the transaction to the individual signals of the DUT through virtual interfaces.
The driver also sends the transaction to scoreboard using drv2sb mailbox.
MONITOR: This is the receiver section that receives the data from the receiver side of the
Asynchronous FIFO. The transaction is also sent to the scoreboard using mon2sb mailbox.
7. SCOREBOARD: The scoreboard receives the transactions from the driver through
mailbox “drv2sb” and another transaction from the mailbox “mon2sb”. The two transactions
are compared with each other. Since in case of Asynchronous FIFO the data sent by the write
clock domain system to the DUT should be same as that of the data received by the read
clock domain system of the DUT. Therefore, if the two transactions received by the
8. ENVIRONMENT: The environment block instantiates all the modules and mailboxes. It
consists of the following modules: Build: It instantiates the mailboxes and other testbench
modules i.e. driver, monitor, scoreboard. Reset: It is used to initialize all the signals at the
time of initialization and set them to their initial values. Start: This method is used to run all
the task and functions in all the modules. Wait for end: This method is used to wait for the
completion of the last transaction. Run: This task run all the methods in the environment
module in the specified order. Report: Its main function is to detect the errors in the design
At the same time the write pointer “wptr” and the read pointer synchronized to the write
clock domain gets updated. Each time the data “rdata” is read from the asynchronous fifo the
address “raddr” gets updated. At the same time the read pointer “rptr” and the write pointer
RESULTS:
CONCLUSION: Since the data sent by the write clock domain to the asynchronous fifo is
same as the data received at the read clock domain from the asynchronous fifo. Therefore, the
asynchronous fifo is functionally correct.when the wdata is sent by the write clock domain,
the 8-bit wdata is stored at the memory location pointed to by the waddr. The wptr and
rq2_wptr gets incremented to point to the next empty memory location in the fifo.. During
next transaction , the next word wdata is stored at the next memory location pointed to by the
So, in this way data from the write clock domain are stored at the consecutive memory
location present in the asynchronous fifo until the memory becomes full. In case the memory
REFERENCES
1. Amit Kumar School of Engineering and Technology, ITM University, Gurgaon, India
International
Design,” SNUG 2000 Users Group Conference, San Jose, CA, 2002) User Papers, March
2002.
4. http://www.verificationguide.com/p/systemverilog-tutorial.html, VerificationGuide.com,