Project setup: A UVM example


Important:

Edaphic Studio can parse through and analyze UVM. Supporting UVM is an early access feature and is still under development and as such has some limitations.

The main current limitation is that UVM needs to be imported as a module, which in IntelliJ jargon means having write-access to the UVM source directory. In practical terms, this means you will need to create a copy of the UVM source somewhere. This limitation will be removed in the future.

As a tool IntelliJ divides sources into modules and libraries. Modules contain the code you currently developing, while libraries link to external things you are dependent upon but will not be editing. UVM, Xilinx libraries, and many other itemss should be libraries but supporting SystemVerilog source code libraries requires work and the current focus is on finishing base editing features first.

So, for now, please follow the steps below especially step 5: "Adding UVM Source to Project" when setting up a UVM project


UVM project overview

The easiest way to create a project is to import existing files. It might be as simple as importing a top-level project directory but can get a little more involved, depending on the project structure and if the project uses external libraries (like UVM).

In this first example, we create a project file for the UBUS UVM example from the UVM open-source code. This example shows how to create a project for a top-level directory then add an external (in this case UVM) libarary to the project.

In this example, there are no conflicting file names. If your project structure repeats the same file names in different directories, then please take a look at the Truss example for how to exclude unwanted directories and files.

In this example, we are using Linux. If you are using Windows or Mac, then some commands are slightly different.

Let's go through the steps!


Step 1

Getting the source

The UVM source is available from the Accellera UVM standard site. There is a copy hosted on GitHub which we use in this example.

To get started clone the UVM source code to a local directory from a terminal:

git clone https://github.com/rekendahl/uvm

Make sure to remember where the UVM root directory location as we use it when we import the project into IntelliJ


STEP 2

Import project from IntelliJ start window.

Import UBUS example

Start IntelliJ. If this is the first time you launch IntelliJ, then you see a window like the one above.

Click on Import Project.

If you have used IntelliJ before it might launch directly into you last used project, if so then choose File->New->Project from existing sources... from the menu.

In the following steps, IntelliJ asks for what files to import.


Step 3

Selecting the source directory

Make sure "Create project from existing sources" is selected then click "Next".

Leave the project name, location and format as is and click "Next"

Click "Next" to confirm that you are importing the UBUS project.

Click "Next" to confirm that no Java frameworks where detected.

The project files imports, and a project (.iml) file gets created in the `ubus` directory. The main IntelliJ window opens.


STEP 4

Enabling IntelliJ's revision control

IntelliJ detects revision control systems and shows a pop-up that an "Unregistered VCS root detected". Click on the pop-up to bring up the options

Click on `Add root`. IntelliJ's graphical revision control system is now enabled.


STEP 5

Adding UVM source to project

We have imported the UBUS example source files (i.e., our project configuration). This project uses the UVM package, so we need to add the UVM source files to the configuration. Importing this source allows Edaphic Studio to navigate and use code-completion for the UVM package correctly.

To import UVM, we need to update the UBus project structure. Importing UVM can be done several ways. From the menu choose File->Project Structure or, preferred, type [Ctrl][Shift][A] to find any IDE action and type "project str" in the search bar. Then select "Project Structure" as in the following image.

Note! The default keymap [Ctrl][Alt][Shift][S] is shown in the window and you can use that key combination as well.

To modify the project structure use the [Ctrl][Shift][A] keycap and then type "proj str" in the search box. Select the Project Structure option from the filtered list.

The project structure window opens.

  1. Click on Modules on the left-hand side
  2. Click on the highlighted plus sign
UBUS10 - Import Module (note import path as step x).png

Choose Import Module from the pop-up window which opens a file browser. Select to import the /uvm/src directory. IntelliJ goes through the same import process as in Step 3 above. Just leave everything default and click next until you are back at the main project structure window which looks like:

The project setup is complete. Click OK to go back to the project and start coding and navigating.