Home > Community > Forums > Functional Verification > Verilog, System Verilog and SystemC

Email

* Required Fields

Recipients email * (separate multiple addresses with commas)

Your name *

Your email *

Message *

Contact Us

* Required Fields
First Name *

Last Name *

Email *

Company / Institution *

Comments: *

 Verilog, System Verilog and SystemC 

Last post Thu, Sep 3 2009 6:03 AM by mstellfox. 3 replies.
Started by jasonkee111 27 Aug 2009 12:23 AM. Topic has 3 replies and 4517 views
Page 1 of 1 (4 items)
Sort Posts:
  • Thu, Aug 27 2009 12:23 AM

    Verilog, System Verilog and SystemC Reply

     

    i confused about these languages.

    Can somebody clarify on it:
    1. For RTL design, Verilog or System Verilog should be used?Most of the article about System Verilog focus on verification. Which language is easier to user and perform well?is there anything that verilog can do and system verilog cant? since a lot of hardware design engineer still use verilog for RTL design.


    2. If the RTL design is written in Verilog, is it possible to use System Verilog to verify it?

    3. Is it possible to mix Verilog, System Verilog and System C in one design? e.g Model in System C, the design written in verilog, System Verilog for verification

    4. Since System C and System Verilog both also system level design, when to use System C and System Verilog?According to my understanding, System C is used in starting of system design in order to predict the performance of software and hardware while System Verilog is used in verification for RTL.

    5. How to determine which portion in a system should go to softcore or hardcore?

    6. I read a lot of threads that mention to use system verilog instead of system c for system level design(hardware design), is it correct? if in the case of SoC, where it involve the software and hardware, is system verilog have this kind of ability to synthesis(not sure the term to use) it?


    Thanks and sorry if asking silly question(s)..

    • Post Points: 20
  • Wed, Sep 2 2009 11:55 AM

    • mstellfox
    • Not Ranked
    • Joined on Mon, Jun 16 2008
    • Austin, TX
    • Posts 10
    • Points 1,015
    Re: Verilog, System Verilog and SystemC Reply

     Hi Jasonkee111,

    Good questions.  As you have discovered there are many languages available for design and verification with various advantages/disadvantages.  I will try to give you some recommendations based on my experience working with many customers.

    For RTL design, Verilog is still the main language being used today (alongside VHDL).  SystemVerilog offers some nice new capabilities to Verilog RTL and these new design constructs are incremental and fairly easy for a Verilog RTL designer to understand.  These features are mainly "convenience" syntax enhancements but do very little to raise the level of abstraction beyond the register transfer level.  If you are doing directed testing, you can use Verilog to write a basic testbench and directed tests for your design.  However, for verification most people are moving to a more automated approach to verification applying Coverage Driven and Metric Driven methodology, where you define your verification goals using functional coverage, leverage constrained-random stimulus generation to create the tests automatically, and define your checks independent of your tests.  The two best languages being used today for this type of advanced verification are e and SystemVerilog, where a lot of users find the e language to be easier and more efficient for building this type of testbench.  SystemVerilog can also be a good choice here, but you should keep in mind that this is a completely separate part of the language from the SystemVerilog constructs you use for design.  SystemC provides a class library which extends C++ and defines a common way to write Transaction Level Models (TLM) which are at a much higher abstraction level compared to Verilog/SystemVerilog RTL models.  SystemC has traditionally been used for creating models architectural exploration and for providing an early model of the hardware design for software development.  Cadence is now offering a synthesis tool, C-to-Silicon, which can be used to synthesize the SystemC TLM.  This enables capturing the design at a much higher level of abstraction, while still being able to use the same model for architectural analysis and software development.  As part of this offering, Cadence is building a complete methodology for enabling both design and verification to start at the TLM level.  For the verification at the TLM level, we are leveraging the same automated Metric driven approach that people are applying on RTL designs today, where e is a more natural choice for the verification language since SystemVerilog was built primarily for Verilog/RTL verification.  If you decide to use e or SystemVerilog for verification, you should probably leverage the Open Verification Methodology (OVM) which provides class libraries, utilities, and methodology guidelines for making it easier to write SystemVerilog or e testbenches. 

    Hopefully that clears up some of your questions.

    Regards,
    Mike

    • Post Points: 20
  • Wed, Sep 2 2009 11:01 PM

    Re: Verilog, System Verilog and SystemC Reply

    Hi Mike.

     What do  you mean by testing using Verilog? What differentiate the test and verify?

    System Verilog for RTL design is mucher higher on abstraction compared to Verilog. 

    if i use System Verilog for RTL design, what is the disadvantage?  

    What is the thing Verilog can do while System Verilog cant?

     

    • Post Points: 20
  • Thu, Sep 3 2009 6:03 AM

    • mstellfox
    • Not Ranked
    • Joined on Mon, Jun 16 2008
    • Austin, TX
    • Posts 10
    • Points 1,015
    Re: Verilog, System Verilog and SystemC Reply

    What do  you mean by testing using Verilog? What differentiate the test and verify?

    In Verilog, you can write procedural code to define tests to stimulate and check your design.  This is a manual process since you have to think of each test, and then write the stimulus and check the expected behavior.  This is a way to "verify" the design, but it is a "test-driven" manual approach, and not very efficient or effective.  

     if i use System Verilog for RTL design, what is the disadvantage? 

    You need to make sure that all the tools you use support the SystemVerilog constructs you intend to use.  This is the only disadvantage.

    What is the thing Verilog can do while System Verilog cant? 

    SystemVerilog is a superset of Verilog.

    • Post Points: 5
Page 1 of 1 (4 items)
Sort Posts:
Started by jasonkee111 at 27 Aug 2009 12:23 AM. Topic has 3 replies.