Skip to content
| Marketplace
Sign in
Visual Studio Code>Programming Languages>IDXceliumNew to Visual Studio Code? Get it now.
IDXcelium

IDXcelium

IDLab Design

|
103 installs
| (1) | Free
IDLab Design digital simulation, synthesis and implementation hooks into Cadence Xcelium tools
Installation
Launch VS Code Quick Open (Ctrl+P), paste the following command, and press enter.
Copied to clipboard
More Info

IDXcelium

This extension aims to aid in (System)Verilog development by providing an easy-to-run interface to the Cadence® XCELIUM product suite.

Prerequisite on your machine

XCELIUM product suite

The XCELIUM executable xrun must be installed on your machine.

Verible

The extension requires the verible-verilog-ls executable installed on your machine.

On Linux and Windows, the plug-in will try to download the necessary executable (if it's not already available).

Get a binary distribution for your Operating System at https://github.com/chipsalliance/verible/releases

Extension Settings

This extension contributes the following settings:

  • idxcelium.verible.path: The path to verible-verilog-ls executable, e.g.: /usr/bin/verible-verilog-ls.
  • idxcelium.verible.arguments: Arguments for verible-verilog-ls server.
  • idxcelium.build.path: Specify custom path of the build directory.
  • idxcelium.xcelium.path: Specify custom path of the XCELIUM install (where the bin/ and tools/ are located).
  • idxcelium.xcelium.noWarn: List of string messages to ignore when parsing the log file, e.g.: NOMTDGUI.

Test view

A test is encapsulated in a view. A full yml view is shown below with additional information about the options. The optional parameters are annotated and filled with their default value, unless stated otherwise. Be careful, # counts as a comment in YML, if a # inside of a command or signal is required, it must be properly escaped.

Example test view

name: example  # identifier for the test, e.g. rtl, synth, pnr, ...
top: example_tb  # module name used as top level for this test, e.g. hello_world_tb

directories:  # (optional)
    build: ${workspaceFolder}/build  # (optional) where to put the build files
    include:  # (optional) list of directories to search for include files
        - ${workspaceFolder}/include

parameters:  # (optional) list of parameter objects as NAME: VALUE, must be integers
    - PARAMETER: 1

defines:  # (optional) list of define objects as NAME: VALUE, the value is optional
    - DEFINE:

files:  # list of all required (System)Verilog files, (shell) wildcards are allowed
    - ${workspaceFolder}/rtl/**.sv
    - ${workspaceFolder}/test/**.sv
    - ${workspaceFolder}/testbench/example_tb.sv

xrun:  # (optional) additional xrun command line options, e.g. -gui to open the gui (not done by default)
    - -gui

simvision:  # (optional) simvision commands, e.g. to probe signals (not done by default)
    - probe -create -shm -all -depth all -packed 4k -unpacked 1024 -memories  # this will probe all signals

signals:  # (optional) list of signals to view in the waveform window, more information below
    - /clk

Both xrun, simvision and signals options also accept a string instead of an array of strings. This allows the user to create their own files to use instead of using the list. This string is allowed to contain ${workspaceFolder} if a relative path is preferred. The string option is mutually exclusive with the array of strings and thus cannot be used together.

xrun: ${workspaceFolder}/config/xrun.f
simvision: ${workspaceFolder}/config/simvision.tcl
signals: ${workspaceFolder}/config/signals.svwf

signals

The signals options tries to make viewing signals easier. The user can put their own lines here, or he can use custom options:

  • waveform add -signals { example_tb.clk }: any simvision command can be put here, additional options (e.g. color) can be specified here.
  • add_signal clk: shorthand version of the above, bypasses the need to provide the module name, making reuse easier
  • /clk: even shorter version of the one above
  • waveform add -cdivider divider: add a divider (normal simvision command)
  • ---: shorthand version of the above

To change color or the radix of a waveform, this can currently only be done by storing the added waveform in a variable and changing settings in new lines, e.g.:

signals:
    - set id [add_signal write_buffer]
    - waveform hierarchy expand $id
    - waveform format $id -radix %h
    - waveform format $id -color \#44AA99

Symphony view

It can be usefull to group certain tests in a single file for ease of use or group settings for RTL, SYNTH and/or PNR simulations. A reduced yml view is shown below with additional information about the options.

# all configurations of a normal test view are valid here
# they will be used as the default (or base) for each of the tests
top: counter_tb

directories:
  build: ${workspaceFolder}/build/new  # you can specify a default build directory

files:  # files to be included in all tests
  - ${workspaceFolder}/counter_tb.sv
  - ${workspaceFolder}/counter.sv

parameters:  # parameters for all tests
  - dut.INCREMENT: 1

defines:  # defines for all tests
  - PERIOD: 100

# default timescale for all tests
timescale: 1ns/1ps

# default xrun options for all tests
# in this case an external files is specified
# but it will get overwriten in the tests so it does
# not really matter and is only shown for illustration
xrun: example_file.will_get_overwritten

# probe the rst clk and enable signals
simvision:
  - probe -create -shm rst clk en

# base list that gets extended for each test
signals:
  - /rst
  - /clk
  - /en
  - ---

# now we can define all tests, a small test and big test is shown here
tests:
  - name: small_increment  # identifier for the test, e.g. rtl, synth, pnr ...

    # each test contains all configurations so they can be overwriten for each
    # test individually, if not specified, the main configuration is used (or the default)
    directories:
      build: ${workspaceFolder}/build/new_small

    parameters:
      - dut.INCREMENT: 2

    defines:
      - PERIOD: 10

    timescale: 10ns/1ps
    
    xrun:
      - -gui

    # this test probes all signals, usefull for simple rtl test, but not for post-pnr tests
    simvision:
      - probe -create -shm -all -depth all -packed 4k -unpacked 1024 -memories

    # additional signals to view, only in this test
    signals:
      - /dut/internal_count


  - name: large_increment

    directories:
      build: ${workspaceFolder}/build/new_big

    parameters:
      - dut.INCREMENT: 14

    xrun:
      - -gui

    # only the count and overlow signals are probed
    simvision:
      - probe -create -shm count
      - probe -create -shm overflow

    # additional signals to view, only in this test
    signals:
      - /count
      - waveform format $id -trace analogSampleAndHold
      - waveform axis range $id -for default -min 0 -max 256 -scale linear
      - /overflow
  • Contact us
  • Jobs
  • Privacy
  • Manage cookies
  • Terms of use
  • Trademarks
© 2026 Microsoft