Evaluation on how to use SystemVerilog as a design and assertion language
Abstract (Summary)
SystemVerilog is the first design and verification language that has been standardized and its
purpose is to meet the demand that comes with the huge complexity of the chips being built today.
SystemVerilog is a superset of Verilog-2001 and adds a fine set of extensions to both design and
verification. However, currently there is no defined subset of what can be synthesized and the
tool vendors can define by themselves what constructs and methods of the language that can be
synthesizable. There is by that mean a divergence when it comes to supported constructs of the
language. SystemVerilog also have a subset of assertion capabilities, abbreviated as SVA, which
enables the possibility for the designer to specify certain properties of the design that should hold
true during verification. This increases observability in the designs and enables other verification
methodologies such as formal verification to be adopted.
The main purpose of this thesis is to evaluate how SystemVerilog can be used as a design
language and to investigate how SystemVerilog assertions (SVA) can be used to verify present
VHDL-designs without altering the code, but also to clarify if and how the present design flow
will be altered when introducing SystemVerilog. Other intentions with this thesis is to evaluate
the maturity of the tools used at the department, when it comes to pure SystemVerilog features,
and also to look into some differences of SystemVerilog compared to the pure verification
language, ‘e’.
In this thesis one can read about methods and constructs of the language that are synthesizable
today with Synopsys design compiler. A Fast fourier transform has been implemented in
SystemVerilog to test specific constructs of the language and to evaluate the present designability.
Moreover, it will cover the present maturity of the simulator and the synthesis tool being
used when it comes to pure SystemVerilog features. An assertion based verification of a bus
being used at Ericsson is addressed in this document as well as assertions on a pure
combinational design. These designs are solely written in VHDL and bound to SVA using a
specific wrapper technique that one can read about in the thesis. The thesis also contains
information about verification methodologies that can be adopt when using SystemVerilog
assertions, as well as guidelines for writing assertions in SystemVerilog.
I
II
Sammanfattning (Abstract in swedish)
SystemVerilog är det första design och verifieringsspråk som har standardiserats och dess syfte är
att bemöta de krav som kommer med den komplexitet som de chip som byggs i dag har.
SystemVerilog är en expansion till det hårdvarubeskrivande språket Verilog-2001 och det har en
rad bra utökningar för både design och verifiering. För tillfället finns det dock ingen definition på
vilka delar av språket som kan användas för konstruktion och verktygstillverkarna kan själva
bestämma vad som kan användas för syntes. Detta medför att det finns skillnader vad beträffar
vilka delar av språket som stöds. SystemVerilog har även en underklass som underlättar för
skrivandet av avancerade assertions, SVA, som öppnar upp för möjligheten för en designer att
specificera visa egenskaper av sin design som skall bestå under verifieringen av designen; annars
ges ett felmeddelande. Detta bidrar till ökad observerbarhet i konstruktionen och möjligör
användandet av andra verifieringsmetoder som formell verifiering etc.
Detta examensarbetes huvuduppgift är att ta reda på hur systemverilog kan användas som
designspråk och att reda ut hur man kan använda SVA på befintlig VHDL-kod utan att modifiera
koden. Uppgiften är också att klargöra om och hur det nuvarande designflödet blir förändrat vid
införandet av SystemVerilog. Andra avsikter med rapporten är att utvärdera mognadsgraden på
de verktyg som används för design på avdelningen, med avseende på SystemVerilog, samt att se
på skillnader mellan SystemVerilog jämfört med det renodlade verifieringsspråket ’e’.
I denna rapport kan man således läsa om metoder och konstruktorer från språket som kan
syntetiseras idag med Synopsys design compiler. En FFT (fast fourier transform) har designats i
SystemVerilog för att testa specifika egenskaper av spåket och för att utvärdera nuvarande
designmöjligheter. Vidare täcker den in rådande mognadsgrad på den simulator och på det
syntesverktyg som används på avdelningen, vad beträffar SystemVerilog-specifika egenskaper.
En assertion-baserad verifiering av en buss som används på avdelningen finns med i detta
dokument samt även assertions på en helt kombinatorisk design.
Dessa konstruktioner är enbart skrivna i VHDL och bundna till SVA via en specifik teknik som
man kan läsa om i rapporten.
Rapporten innehåller också information om de verifieringstekniker som kommer med
SystemVerilog assertions samt några riktlinjer för vad man ska tänka på när man skriver
assertions i SystemVerilog.
III
IV
Bibliographical Information:
Advisor:
School:Linköpings universitet
School Location:Sweden
Source Type:Master's Thesis
Keywords:sv systemverilog sva hdvl
ISBN:
Date of Publication:11/10/2006