/SublimeLinter-contrib-xsim

Vivado Simulator (XSim) xvlog/xvhdl plugin for SublimeLinter. Linting for Verilog/SystemVerilog and VHDL.

Primary LanguagePythonMIT LicenseMIT

SublimeLinter-contrib-xsim

GitHub tag (latest SemVer) Project license GitHub stars

English | 简体中文

This linter plugin for SublimeLinter provides an interface to xvlog/xvhdl - Verilog/SystemVerilog/VHDL compilers provided with Vivado Simulator (XSim). xvlog will be used with "Verilog" and "SystemVerilog" files , xvhdl with "VHDL" files.

Installation

SublimeLinter must be installed in order to use this plugin.

Please use Package Control to install the linter plugin.

Before installing this plugin, you must ensure that xvlog/xvhdl are installed on your system. Once you install Vivado Design Suite, they will be in the directory PATH_TO_VIVADO/VIVADO_VERSION/bin.

In order for xvlog/xvhdl to be executed by SublimeLinter, you must ensure that its path is available to SublimeLinter. The docs cover troubleshooting PATH configuration.

Verilog/SystemVerilog/VHDL syntax highlight is not natively supplied by Sublime Text. You may install Sublime Text Verilog, Sublime Text SystemVerilog and Sublime Text VHDL Mode to do the job.

Settings

Passing arguments to xvlog/xvlog_sv/xvhdl

Arguments can be passed in a linter settings file or set in a project settings file:

  • Using linter settings file:

    // SublimeLinter Settings - User
    {
        "linters": {
            "xvlog": {
                "args": ["--relax"],
                "working_dir": "${TEMP:${project_path:${folder:$file_path}}}",
            },
            "xvlog_sv": {
                "args": ["--relax"],
                "working_dir": "${TEMP:${project_path:${folder:$file_path}}}",
            },
            "xvhdl": {
                "args": ["--relax"],
                "working_dir": "${TEMP:${project_path:${folder:$file_path}}}",
            }
        },
    }
  • Using Project specific settings:

    // .sublime-project
    {
        "folders":
        [
            {
                "path": "."
            }
        ],
        "settings": {
            // SublimeLinter-contrib-xsim
            "SublimeLinter.linters.xvlog.args":[
                "-i", "$project_path/PATH_TO_HEADER_0",
                "-i", "$project_path/PATH_TO_HEADER_1",
                "--relax"
            ],
            "SublimeLinter.linters.xvlog_sv.args":[
                "-i", "$project_path/PATH_TO_HEADER_0",
                "-i", "$project_path/PATH_TO_HEADER_1",
                "--relax"
            ],
            "SublimeLinter.linters.xvhdl.args":[
                "--relax"
            ]
        }
    }

    It is recommended to use project specific settings when using xvlog with -i [include] <directory_name> command option.

  • Remarks

    • xvlog_sv is equal to xvlog with --sv command option on, which is specifically made for SystemVerilog files.

    • args is command option passed to xvlog/xvhdl

      • --relax: Relax strict HDL language checking rules, which is default settting of Vivado.
      • -i: Specify directories to be searched for files included using Verilog `include. Use -i|--include for each specified search directory
      • For more information please check UG900, or using xvlog/xvhdl --help.
    • work_dir is working directory xvlog/xvhdl

      • Since .dir .log .pb folders or files will be generated in working directory, so I set $TEMP (i.e. temporary directory in Operating System) as working directory, when TEMP is not exist, the following directory will be selected.

Demo

xvlog for Verilog file:

xvlog

xvlog_sv for SystemVerilog file

xvlog_sv

xvhdl for VHDL file

xvhdl

Acknowledgment