top of page

SpvGui

 

SpvGui:

 

SpvGui was developed to enable:

  • simulation control.

  • tests creation.

  • parameters adding/modification

  • regression creation.

  • enables build small tests, drive and check the design in the firsts phase, without coding.

  • Allows control and run tests without needing to know the language of verifying

this enables designer (Could be RTL/SW/Verification designer), control and change/create tests and other actions above.

All this through simple dialogues for understanding, even for people who do not need to understand the hardware, and the validation environment.

 

SpvGui supply 4 main modules:

  • SpvTestRunner  - enable running regression.

  • SpvPackeetTree - View for communication project

  • SpvTestEditor  - which explain in detail bellow.

  • SpvVerilogGuiStub - for future automation.

SpvTestEditor:

This is the GUI that display above.

the screen displays testing environment.

Main window

In the main window we could see 4 pages (left to right).

  • CurrTestDir:

    • include 1 dialog that mark the active test.

  • Test1:​

    • this is the active test page.

    • includes default page, + change some parameters.​

  • Default:​

    • main page, includes simulation configuration.​

    • Objects: Generators, Booleans, strings, number, declaration, clocks, processes ...,as will explain bellow.

  • HdlConnction:​

    • includes objects of  signals information.​

The concept is to export any dynamic information in your verification environment to GUI. the information in GUI saved under directory Runtime, to special data base that loaded when design loaded by call LoadRuntime("path"), any information in GUI become a C++ object. In the code, user could get pointer of any object in GUI, and use it as a simulation configuration.

More than that, in GUI we could create clocks, process, signals initialization, and more some other capabilities which run immediately, without any  coding.

 

Generator in GUI:

Generation is basic object in verification, We are interested in receiving a wealth of possible scenarios.

In SPV all the generators are derived from base class SpvGen. we could point on any generator object, and call function Gen() without need to know the generator type. this enable us declare generators in GUI, In code we just call GetGen("GUI_KEY_NAME"), and we use it, by call ptr->Gen().we could change in GUI the generator type, but code do not change.

 

How we add GUI objects to GUI page ?

 SpvGui dialogues wizard:

There are 45 dialogues, one Icon per dialog. In mouseover we will receive a reference message (Tool tip - Look at the clock tool tip).

There are ~10 icons groups.

Data Obj- String, Boolean, integer, List...

Ctrl: Include file, Choose Test, Create group.

Generators: Const, InRange,  Step, InRangeList, Weighted, sequence and the same for double type.

InDesignDrive: clock, clockJitter, Trigger, Initialization.

IP: E1T1, GB Ethernet and more.

Packets: Packet creation, packet compare more..

Coverage: Signal Coverage, single and cross.

Free Code: Create process, write register (Very smart dialogues).

Example: Page in SpvGui

Dialogues attributes:

  • dialog represents object type. dialog could create many object with the same type. 

  • new object that born by dialog, create one line in page.

    • Line in page is object, first word present the object type.​

  • any dialog obligate provide object name,(used to enables getting pointer in code).

  • Tool tip displayed, in mouse-over on Icons.

  • Any dialog,  there is buttons Save/Close

  • Dialog is parser: you could not save dialog , if you are missing fields, or if you write incorrect information. 

  • 'Dialog'/'List dialog'/'Group dialog' could be copied/cut/deleted/paste from page to page,and in page itself.

  • You have object 'A' of type 'b', copy 'a' and  click paste on same place, duplicates it. changing his name create new one (Another way to create new dialog).

  • most dialogues, enables  write comments.

  • Dialog could be opened in 2 ways.

    • Icon click, in save you will get new line in page.

    • line click (in page), it will display the information in line.

      • Look at example, Process dialog MAKE_RESET clicked.

      • User could change the info and save.​

 

Examples:  

Up 

bottom of page