Example: bachelor of science

Synthesizable SystemVerilog: Busting the Myth that ...

SNUG Silicon Valley 20131 Synthesizing SystemVerilogSynthesizing SystemVerilogBusting the Myth that systemverilog is only for VerificationABSTRACTS ystemVerilog is not just for Verification! When the systemverilog standard was first devised, oneof the primary goals was to enable creating Synthesizable models of complex hardware designsmore accurately and with fewer lines of code. That goal was achieved, and Synopsys has done agreat job of implementing systemverilog in both Design Compiler (DC) and Synplify-Pro. Thispaper examines in detail the Synthesizable subset of systemverilog for ASIC and FPGA designs,and presents the advantages of using these constructs over traditional verilog .

SNUG Silicon Valley 2013 3 Synthesizing SystemVerilog 1.0 Introduction — debunking the Verilog vs. SystemVerilog myth There is a common misconception that “Verilog” is a hardware modeling language that is synthesizable, and “SystemVerilog” is a verification language that is not synthesizable.That is completely false!

Tags:

  Verilog, Systemverilog, And systemverilog

Information

Domain:

Source:

Link to this page:

Please notify us if you found a problem with this document:

Other abuse

Transcription of Synthesizable SystemVerilog: Busting the Myth that ...

1 SNUG Silicon Valley 20131 Synthesizing SystemVerilogSynthesizing SystemVerilogBusting the Myth that systemverilog is only for VerificationABSTRACTS ystemVerilog is not just for Verification! When the systemverilog standard was first devised, oneof the primary goals was to enable creating Synthesizable models of complex hardware designsmore accurately and with fewer lines of code. That goal was achieved, and Synopsys has done agreat job of implementing systemverilog in both Design Compiler (DC) and Synplify-Pro. Thispaper examines in detail the Synthesizable subset of systemverilog for ASIC and FPGA designs,and presents the advantages of using these constructs over traditional verilog .

2 Readers will takeaway from this paper new RTL modeling skills that will indeed enable modeling with fewer linesof code, while at the same time reducing potential design errors and achieving high synthesisQuality of Results (QoR). Target audience: Engineers involved in RTL design and synthesis, targeting ASIC and FPGA implementations. Note: The information in this paper is based on Synopsys Design Compiler (also called HDL Compiler)version and Synopsys Synplify-Pro version These were the most currentreleased versions available at the time this paper was written. Stuart SutherlandSutherland HDL, MillsMicrochip Technology, Silicon Valley 20132 Synthesizing SystemVerilogTable of Contents1.

3 Data types .. sets .. types .. types .. declarations (packed arrays) .. (unpacked arrays) .. types ..92. Parameterized models ..133. Shared declaration spaces packages and $unit .. $unit ..164. RTL programming .. blocks .. Decision statements .. statements .. and functions ..275. Module ports (internal to a module) ..296. Netlists ..307. Interfaces ..318. Miscellaneous Synthesizable systemverilog constructs .. Ending names .. begin_keywords and end_keywords .. fill tokens .. Constant variables (const) .. and timeprecision .. size functions ($clog2, $bits) ..379. Other Synthesizable constructs.

4 3810. Difference between Design Compiler and Synplify-Pro ..3811. Wish List and Recommendations .. uwire single source nets .. Foreach loops .. Task/function inputs with defaults .. Task/function ref arguments .. Set membership operator (inside) with expressions .. Package chaining .. Extern module declarations .. Configurations .. User-defined net types and generic net types ..4312. Summary ..4313. Acknowledgements ..4414. References ..44 SNUG Silicon Valley 20133 Synthesizing Introduction debunking the verilog vs. systemverilog mythThere is a common misconception that verilog is a hardware modeling language that is Synthesizable , and systemverilog is a verification language that is not Synthesizable .

5 That is completely false! verilog was first introduced in 1984 as a dual-purpose language to be used to both model hardwarefunctionality and to describe verification testbenches. Many of the verilog language constructs, such decision statements, were intended to be used for both hardware modeling and verification. Anumber of the original verilog constructs were intended strictly for verification, such as the $displayprint statement, and have no direct representation in hardware. Synthesis is concerned with the hardwaremodeling aspect of the language, and therefore only supports a subset of the original verilog IEEE officially standardized the verilog language in 1995, with the standards number 1364-1995,nicknamed verilog -1995 [1].

6 The IEEE then began work on extending the language for both design andverification, and in 2001 released the 1364-2001 standard, commonly referred to as verilog -2001 [2]. Ayear later, the IEEE published the verilog RTL Synthesis standard [3], which defined thesubset of verilog -2001 that should be considered IEEE also updated the verilog standard, as 1364-2005, aka verilog -2005 [4]. However, IntegratedCircuit functionality, complexity, and clock speeds evolved so rapidly in the 2000s, that an incrementalupdate to the verilog standard was not going to be enough to keep pace with the continually greaterdemand on the language capability to represent both hardware models and verification testbenches.

7 Thenew features that the IEEE specified to enhance the verilog language were so substantial that the IEEE created a new standards number, 1800-2005, and a new nickname, systemverilog [5], just to describe thelanguage additions. systemverilog -2005 was not a stand-alone language it was merely a set ofextensions on top of verilog -2005. One reason for the two documents was to help companies who provideVerilog simulators and synthesis compilers to focus on implementing all of the new capabilities. The confusing name In 2009, the IEEE merged the verilog 1364-2005 and the SystemVerilogextensions (1800-2005) into a single document.

8 For reasons the authors have never understood, the IEEE chose to stop using the original verilog name, and changed the name of the merged standard toSystemVerilog. The original 1364 verilog standard was terminated, and the IEEE ratified the 1800-2009 systemverilog -2009 standard [6] as a complete hardware design and verification language. In the IEEE nomenclature, there is no longer a current verilog standard. There is only a systemverilog standard. Since2009, you have not been using have been designing with and synthesizing systemverilog ! (The IEEE has subsequently released a systemverilog -2012 standard, with additionalenhancements to the original, now defunct, verilog language.)

9 It is important to note that the systemverilog standard extended both the verification and the hardwaremodeling capabilities of verilog . The language growth chart in Figure 1 that follows is not intended to becomprehensive, but serves to illustrate that a substantial number of the systemverilog extensions to theoriginal verilog enhance the ability to model hardware. The focus of this paper is on how these constructssynthesize and the advantages of using these systemverilog extensions in hardware design. SNUG Silicon Valley 20134 Synthesizing systemverilog Figure 1. verilog to systemverilog growth chartThe intent of this paper is to provide a comprehensive list of everything that is Synthesizable withSynopsys Design Compiler (DC, also called HDL Compiler) and/or Synplify-Pro.

10 The paper focusses onthe constructs that were added as part of systemverilog , and on how users can benefit from using theseenhancements. Synthesizable modeling constructs that are from the various versions of the Verilogstandard are mentioned for completeness, but are not discussed in detail in this should be noted that there is no official systemverilog synthesis standard. The IEEE chose not to updatethe verilog synthesis standard to reflect the many Synthesizable extensions that were added withSystemVerilog. The authors feel that this is short-sighted and is a disservice to the engineering community,but hope that this paper, used in conjunction with the old verilog synthesis standard, canserve as an unofficial standard for the Synthesizable subset of Data typesNote: In this paper, the term value sets is used to refer to 2-state values (0 and 1) and 4-state values (0, 1,Z, X).


Related search queries