Multicore Enabled Verification of AMBA AHB Protocol Using UVM
Multicore Enabled Verification of AMBA AHB Protocol Using UVM
Copyright to IJIRSET
DOI:10.15680/IJIRSET.2016.0502018
1289
ISSN(Online): 2319-8753
ISSN (Print): 2347-6710
Copyright to IJIRSET
DOI:10.15680/IJIRSET.2016.0502018
1290
ISSN(Online): 2319-8753
ISSN (Print): 2347-6710
C. AMBA AHB
It is a second generation AMBA bus protocol which is used for synthesizable designs that requires high performance. It
supports a high frequency of operation with multiple masters. The number of masters and slaves may vary, and data is
transferred between the two using an arbitration mechanism. The main features of AMBA AHB includes burst transfer,
split transfers, data buses with wider configuration et. al. [18].
A few of the components of AMBA AHB are:
Master: it is used to send signals to the slave thereby initiating an operation which could be either a read or a
write. These signals are address and control signals.
Slave: after the execution of code, the response is sent back to the master by the slave via arbiter.
Arbiter: it is used to ensure that the selected slave is sent the required signals via a proper mechanism.
D. AHB SIGNALS
The signal nomenclature contains an H at the starting of each signal name. Some of the signals used here are:
HCLK : it is the bus clock. It is used to time all the data transfers. All the signals are made sensitive to the rising
edge of the clock.
HRESETn : it is an active low signal and is used to reset the bus.
HADDR[31:0] : it is the address bus for the system.
HTRANS[1:0] : it is used to recognize the type of transfer for a burst. The different types of transfer could be
IDLE, BUSY, SEQUENTIAL and NON-SEQUENTIAL.
HBURST : the different type of bursts are sequential, WRAP4, INCR4, WRAP8, INCR8, WRAP16, INCR16.
HWRITE : this signal is used to determine the type of operation being performed. There could be two types of
operation viz. read and write.
HSIZE : this is used to indicate the transfer size which could be a byte, a word or a half-word.
HWDATA[31:0] : it is generally a 32 bit data bus which is used to transfer data from a master to the respective
slave. It is used for writing data.
HRDATA[31:0] : it is generally a 32 bit data bus which is used to transfer data from a slave to the respective
master. It is used for reading data.
HREADY : it is used to check whether the transfer should start or not. If it is high then, a new transfer starts, and
if low then no new transfer can start.
HRESP : it is used to show the response from the slave after the complete data transfer.
E. SUMMARY
This chapter gave an overview of the AMBA AHB bus protocol where we learnt about the various signals that are used
in creating the verification IP for AHB. Here, the features of AHB are also studied which revealed that the it is a highperformance, high-frequency bus and hence is very useful in the hardware systems being used today.
Copyright to IJIRSET
DOI:10.15680/IJIRSET.2016.0502018
1291
ISSN(Online): 2319-8753
ISSN (Print): 2347-6710
Centralized Version Control System (CVCS): problem occurs when we have to share data with others which
are on a remote device. The solution is to have a common server which contains all the files that are versioned and
hence all the clients can checkout from that common server as in Fig. 4.
Copyright to IJIRSET
DOI:10.15680/IJIRSET.2016.0502018
1292
ISSN(Online): 2319-8753
ISSN (Print): 2347-6710
Distributed Version Control System Block Diagram (DVCS): this is a more general approach which reaches a
larger number of audience. Here, people can get the latest snapshots of any document and can even pull requests. Here,
complete backups are available. See Fig. 5. for the block diagram.
Copyright to IJIRSET
DOI:10.15680/IJIRSET.2016.0502018
1293
ISSN(Online): 2319-8753
ISSN (Print): 2347-6710
D. SUMMARY
Summarizing the chapter, I must say that we have learnt most of the basics that are required to know about this version
control tool and how important it is to learn these tools. We also came to know of the most basic stages that are used in
creating a new version of a file.
V. SIMULATION RESULTS
This chapter contains all the simulation results that are obtained after creating and running the verification IP for
verifying the AMBA AHB protocol. Here, the outputs for both the verification IP's one being in SystemVerilog and the
other one being in VLang.
A. SIMULATION RESULTS FOR AHB VIP SYSTEM VERILOG AND VLANG
Here are the outputs after running the verification IP for the advanced high-performance AMBA bus.
The final output of the AHB SystemVerilog verification IP using UVM is obtained without having any errors and
may be seen in Fig. 7. as given below
Also, after the successful creation of a verification IP for AHB written in System Verilog using UVM, the
verification IP for the same has been created using a new language called as VLang that supports theulticore constructs.
And, finally the complete output of the AHB VIP written and run in VLang simulator using UVM can be seen with
the Fig. 9
B. SUMMARY
Summarizing the chapter, I may say that the verification IP for AMBA AHB bus protocol using SystemVerilog
UVM as well as VLang UVM has been successfully created and the outputs have been shown clearly.
Copyright to IJIRSET
DOI:10.15680/IJIRSET.2016.0502018
1294
ISSN(Online): 2319-8753
ISSN (Print): 2347-6710
VI.
This research work in which a verification IP for AMBA AHB bus protocol has been created and hence verified.
This work was carried out using two different languages viz. SystemVerilog and VLang (both using UVM
methodology). Multicore constructs have been enabled using the latter which is a free and an open source software and
which supports multicore constructs. This is a novelty that the same two work were carried out on two different
languages. Also, since the technology is going more towards the multicore side, the discussion and hence the research
work has also been towards the multicore side.
Also, for the future, it may be said that this work could be taken to higher levels with a deeper study involved in
understanding this novel language that supports multicore constructs. A further higher level of complexity may be
added to the design by adding the concept of a Register Abstraction Layer called the RAL layer.
REFERENCES
[1] Ioannis Skazikis, The ARM Processor Architecture, Matr-Nr. 637868
[2] Bergeron Janick, What is Verification?, in Writing Textbenches Using SystemVerilog, Ed. New York: Springer, year, pp. 2-21
[3] Bergeron Janick, What is Verification?, in Writing Textbenches Using SystemVerilog, Ed. New York: Springer, year, pp. 38-39
[4] http://www.accellera.org/about
[5]
Kathleen A Meade and Sharon Rosenberg, A Practical Guide to Adopting the Universal Verification Methodology (UVM), Second Edition
[6] JamesT. Townsen d, Searial vs. Parallel Processing: Sometimes they look like Tweedledum and Tweedledee but they can (and Should) be
Distinguished, Psychological Science, Vol. 1, No. 1 (Jan., 1990), pp. 46-54 . URL: http://www.jstor.org/stable/40062391
[7] http://spectrum.ieee.org/computing/software/the-trouble-with-multicore
[8] verlang.org
[9] Stuart Sutherland and Tom Fitzpatrick, Keeping Up with Chip the Proposed SystemVerilog 2012 Standard Makes Verifying Everincreasing Design Complexity More Efficient,
[10] Alan J. Hu , Formal Hardware Verification with BDDs: An Introduction,
[11] Abhishek Jain1, Giuseppe Bonanno2, Dr. Hima Gupta3 and Ajay Goyal 4, Generic System Verilog Universal Verification Methodology
Based Reusable Verification Environment For Efficient Verification Of Image Signal Processing Ips/Socs, International Journal of VLSI design &
Communication Systems (VLSICS) Vol.3, No.6, December 2012 , DOI : 10.5121/vlsic.2012.3602
[12] Geoffrey Blake, Ronald G. Dreslinski, and Trevor Mudge, A Survey of Multicore Processors, IEEE Signal Processing Magazine [26]
November 2009 , DOI : 10.1109/MSP.2009.934110
[13] Mark D. Hill and Michael R. Marty, Amdahls Law in the Multicore Era ,
[14]
Joseph Gasparakis and Peter P Waskiewicz, Jr., Design considerations for efficient network applications with Intel multi-core processor
based systems on Linux, white paper, July 2010
[15]
Interconnections in Multi-core Architectures: Understanding Mechanisms, Overheads and Scaling, ICSA'05 Proceedings of the 32nd
annual international symposium on Computer Architecture, IEEE Computer Society Washington, DC, USA 2005, pp. 408-419, DOI :
10.1109/ISCA.2005.34
[16] Shobana Sudhakar and Rohit K Jain , The Need for Speed: Understanding design factors that make multi- core parallel simulations efficient
, DVCon
[17]
Vanessa R. Cooper, Getting Started with UVM, First Edition, Austin, USA, 2013, 2012 Verilab, Inc. - http://www.verilab.com
[18] AMBATM Specification (Rev 2.0), Copyright ARM Limited 1999 , 13th May 1999, Issue A, First release
[19] http://git-scm.com/book/en/Getting-Started-About-Version-Control
http://git-scm.com/book/en/Getting-Started-git-basics
Copyright to IJIRSET
DOI:10.15680/IJIRSET.2016.0502018
1295