Escolar Documentos
Profissional Documentos
Cultura Documentos
(2006-2010)
DEPARTMENT OF ELECTRONICS & COMMNICATION
ENGINEERING
A SEMINAR REPORT
ON
System verilog
Submitted in partial fulfillment of the requirements in the award of Degree of
Bachelor of Technology in Electronics and Communication Engineering
BY
RAKESH KUMAR
Reg No: 00600697
ROLL NO: 35
S7,ECE
COCHIN UNIVERSITY OF SCIENCE AND TECHNOLOGY
(COCHIN UNIVERSITY COLLEGE OF ENGINEERING KUTTANAD)
Certificate
Certified that this is a bonafide record of the seminar entitled
‘SYSTEM VERILOG’
Presented by
RAKESH KUMAR
of the VII semester, Electronics and Communication in the year 2009 in partial
fulfillment of the requirements in the award of Degree of Bachelor of Technology in
Electronics and Communication Engineering of Cochin University of Science and Technology.
Acknowledgement
Many people have contributed to the success of this. Although a single sentence
hardly suffices, I would like to thank Almighty God for blessing us with His grace. I
extend mysincere and heart felt thanks to Mr. Manoj V.J., Head of
Department, Electronics & Communication Engineering, for providing us the right
ambience for carrying out this work. I am profoundly indebted to my seminar guide,
Ms. Biji L., Ms. Renju, Ms. Preeja,Ms. Sandhya Rajan for innumerable acts of
timely advice, encouragement and I sincerely express my gratitude to her.
I express my immense pleasure and thankfulness to all the teachers and staff of the
Department of Electronics & Communication Engineering, CUCEK for their
cooperation and support.
I would also like to thank all my friends, specially my family, who were the source
of constant encouragement.
Rakesh Kumar
CONTENTS
S .No. Topic Page No.
1. Abstract 5
2. History 6
3. System Level Language 7
4. Introduction 8
5. ROOTS of SYSTEM VERILOG 9
6. SystemVerilog 3.0 Features 10
7. Interfaces 11
8. Abstract Data Type 12
9. Enumerated Data Type 13
10. String data type 13
11. User-defined Types 14
12. Structure 14
13. New Operator 15
14. Always tatement 15
15. OOP 16
16. Verilog Hierarchy Enhancements 17
17. Funtion 18
18. Enhanced for loops 19
19. Jump Statement 19
20. SystemVerilog 3.1 Features 20
21. SystemVerilog 3.1Is Based on Proven Technology 20
22. Test Bench Block 21
23. Object Oriented Classes 22
24. Clocking Domain 23
25. Direct C Language Interface 24
26. Vendor Interest 25
27. Application 26
28. Conclusion 27
29. References 28
ABSTRACT
IEEE 1800TM SystemVerilog is the industry's first unified hardware description
and verification language (HDVL) standard. SystemVerilog is a major extension of
the established IEEE 1364TM Verilog language.
Verilog 1995 version has been in market for a very long time. IEEE extended the
features of Verilog 1995 and released it as Verilog 2001. But this was no good for
verification engineers, so verifcation engineers had to use languages like "e",
VERA, Testbuider. It was rather painfull to have two language, one for design and
other for verification. SystemVerilog combines the Verification capabilties of HVL
(Hardware Verification Language) with ease of Verilog to provide a single platform
for both design and verification.
HISTORY
The requirements for the language were first generated in 1981 under the
VHSIC program. In this program, a number of U.S. companies were involved
in designing VHSIC chips for the Department of Defense (DoD). At that
time, most of the companies were using different hardware description
languages to describe and develop their integrated circuits. As a result,
different vendors could not effectively exchange designs with one another.
Also, different vendors provided DoD with descriptions of their chips in
different hardware description languages. Reprocurement and reuse was
also a big issue. Thus, a need for a standardized hardware description
language for design, documentation, and verification of digital systems was
generated. A team of three companies, IBM, Texas Instruments, and
Intermetrics, were first awarded the contract by the DoD to develop a
version of the language in 1983. Version 7.2 of VHDL was developed and
released to the public in 1985. There was a strong industry participation
throughout the VHDL language development process, especially from the
companies that were developing VHSIC chips.After the release of version
7.2, there was an increasing need to make the language an industry-wide
standard. Consequentl, the language was transferred to the IEEE for
standardization in 1986. After a substantia enhancement to the language,
made by a team of industry,university, and DoD representatives, the
language was standardized by the IEEE in December 1987; this version of
the language is now known as the IEEE Std 1076-1987. The official language
description appears in the IEEE Standard VHDL Language Reference Manual
made available by the IEEE.
VERILOG 1995
VERILOG 2001
INTRODUCTION
What is SystemVerilog?
SystemVerilog extends the IEEE 1364 Verilog-2001 standard
– Adds abstract, system-level modeling constructs to Verilog
– Adds extended test bench features to Verilog
SystemVerilog is being released in two primary stages
– SystemVerilog 3.0 (released June 2002)
Extends the hardware modeling aspects of Verilog
– SystemVerilog 3.1 (released June 2003)
Extends the verification aspects of Verilog
SystemVerilog is being defined by Accellera
– Accellera is a consortium of EDA and engineering companies
– Expected that the IEEE add to the next 1364 Verilog standard
IEEE 1800TM SystemVerilog is the industry's first unified
hardware description and verification language (HDVL) standard.
SystemVerilog is a major extension of the established IEEE
1364TM Verilog language.
SystemVerilog was created by the donation of the Superlog
language to Accellera in 2002.
The bulk of the verification functionality is based on the OpenVera
language donated by Synopsys.
In 2005, SystemVerilog was adopted as IEEE Standard 1800-2005
INTREFACES
Verilog connects models using module ports
The declarations are common to all the modules using the interface
Can also contain assertions for proper use, and procedures for modeling
Enumerated Types
Verilog does not have enumerated types
Operations:
User-defined Types
Verilog does not have user-defined data types
Structures
SystemVerilog adds structures to Verilog
struct {
real r0, r1;
int i0, i1;
bit [15:0] opcode;
} instruction_word;
...
instruction_word.opcode = 16’hF01E;
New Operators
Verilog does not have increment and decrement operators.
SystemVerilog adds:
+=, -=, *=, /=, %=, &=, ^=, |=, <<=, >>=, <<<=, >>>= assignment operators
Synthesis will ignore the sen. list and put only comb. Logic
Always_comb
The mux example with always_comb directive:
always_comb
if(select)
out = i1;
else
out = i2;
Always_comb
if(select1)
out = i1;
else if(select2)
out = i2;
OOP
Are used for testbenches
Reusability
– New .name and .* automatically connect nets and ports that have the same
name
Functions
Function declration can be as in verilog 1995/2001 or can be declared as in C or
C++. In SystemVerilog following rules hold good for any Function declaration.
• Default Port Direction : Any port is seen as input, unless declared as other
types. Following are port types
o input : copy value in at beginning
o output : copy value out at end
o inout : copy in at beginning and out at end
o ref : pass reference
• Default Data TYpe : Unless declared, data types of ports are of logic type.
• begin..end : There is no need to have begin, end, when more then one
statement is used.
• return : A function can be terminated before enfunction, by usage of return
statement.
• Variables : Systemverilog allows to have local static, or local dynamic
variables.
• life time : SystemVerilog allows a function to static or automatic.
• Wire : Wire data type can not be used in port list;
• void : SystemVerilog allows functions to be declared as type void.
Jump statements
SystemVerilog adds the C jump statements break, continue and return.
• break : out of loop as in C
• continue : skip to end of loop (move to next loop value) as in C
• return expression : exit from a function
• return : exit from a task or void function
Can use a special "$exit" system task that will wait to exit simulation until
after all concurrent program blocks have completed execution (unlike
"$finish," which exits simulation immediately).
program test (input clk, input [15:0] addr, inout [7:0] data);
@(negedge clk) data = 8’hC4;
address = 16’h0004;
@(posedge clk) verify_results;
task verify_results;
...
endtask
endprogram
class Packet ;
bit [3:0] command;
bit [39:0] address;
bit [4:0] master_id;
integer time_requested;
integer time_issued;
integer status;
task clean();
command = 4’h0;
address = 40’h0;
master_id = 5’b0;
endtask
task issue_request( int delay );
... // send request to bus
endtask
endclass
Clocking domain
Clocking domains allow the testbench to be defined using a cycle-based
methodology, rather than the traditional event-based methodology
– Difficult to learn
VENDOR’S INTEREST
SystemVerilog has been adopted by 100's of semiconductor design
companies and supported by more than 75 EDA, IP and training solutions
worldwide.
INTEL
AMD
MOTOROLA
TEXAS Instruments
National Semiconductor
Segates
Trancends
Kingston
EDA companies
Cadence
Mentor
Synopsis
Vera
APPLICATION
In FPGA design
In ASIC design
Gate level design
RTL synthesis
3D IC fabrication
Systolic Architecture
Higher Level Design, simulation, synthesis, Test…
Conclusion
--SystemVerilog combines an enhanced Hardware Description
Verification
Enhanced IP protection
Verilog 1995 version has been in market for a very long time. IEEE extended the features of
Verilog 1995 and released it as Verilog 2001. But this was no good for verification engineers, so
verifcation engineers had to use languages like "e", VERA, Testbuider. It was rather painfull to
have two language, one for design and other for verification. SystemVerilog combines the
Verification capabilties of HVL (Hardware Verification Language) with ease of Verilog to provide
a single platform for both design and verification.
REFERENCES
SYSTEM VERILOG REFERENCE MANUAL.
SYSTEM VERILOG PRIMER
STUART SUTHERLAND PAPER
WWW.SYNOPSIS.COM.
WWW.ACCELLERA.COM