_images/icon-with-name.svg

Scaleda: Making IntelliJ IDEA an FPGA development tool

https://img.shields.io/jetbrains/plugin/d/21863?color=%2315559aff Documentation Status Online Documentation Verilog development using Scaleda

Overview

Scaleda (=Scalable + EDA) is an extensible FPGA EDA auxiliary tool for the IntelliJ platform. It has functions such as HDL project management, HDL language support, and FPGA tool calling, making IJ a flexible and powerful FPGA development tool. Currently, functions supported by Scaleda include:

  • Basic syntax functions of Verilog language (syntax highlighting, code folding, code formatting, code comments, code navigation, etc.);

  • Simple code completion in Verilog language;

  • Verilog language code inspection (syntax errors and semantic errors, as well as errors such as missing ports, multiple drivers, etc.);

  • Verilog, SystemVerilog code formatting using Verible;

  • Verilog, SystemVerilog, Tcl, Bluespec SystemVerilog syntax parsing highlighting;

  • It has its own engineering and IP structure, supporting the use of Vivado, Quartus Prime, iverilog, Yosys and other tools for simulation, synthesis, implementation and other operations;

  • Supports loading Vivado projects and calling synthesis, implementation and other operations;

  • Built-in waveform viewer Rvcd, Surfer;

  • Run server mode to perform remote EDA tasks;

  • Verible, Svlsor custom language server (LSP) support;

  • International multi-display language support;

For user manuals, API documentation, etc., please visit Online Documentation.

Install

Scaleda currently supports 2024.1.1 and above IJ platforms other than Gateway, including IDEA Community Edition and IDEA Ultimate Edition. You can choose to search for “Scaleda” in the plug-in market, directly download the compiled plug-in zip package, or compile the plug-in yourself.

Visit marketplace Visit marketplace

For server-side programs, please visit Github Release to download scaleda-kernel.jar.

Directly download the zip file to install

The plug-ins of the IJ platform are released in the form of zip compressed packages. You can directly download the compiled plug-in zip package and then install it in IJ. In the Releases page you can find the latest plugin zip package with a name like Scaleda-0.1.0.zip.

After starting IDEA, select File -> Settings -> Plugins -> Install Plugin from Disk..., then select the downloaded zip file and click OK to install the plug-in. For detailed procedures on installing Scaleda in IDEA, please refer to the Scaleda installation documentation.

Compile from source

Scaleda is primarily developed in Scala and uses sbt (instead of Gradle) as the build tool. Therefore, if you want to compile Scaleda from source, you need to install Scala and sbt.

After cloning this repository, use sbt to compile:

$ sbt compile

Note that when you start sbt under this repository for the first time, sbt may download the dependencies and source code of the IJ platform from the Internet, which may take some time and occupy disk space.

After compilation is complete, use the following command to package:

$ sbt packageArtifactZip

After packaging is completed, you can find the packaged zip file in the target/scala-2.13/ directory. You can install the plug-in using the method in the previous section.

manual

Please visit Online Documentation to view the manual.

The PDF version of the manual can be downloaded here <https://github.com/Scaleda/Scaleda/blob/master/docs/scaleda-manual.pdf>`__. (Applies to v0.0.9.)

Project structure

Here we introduce the structure of the Scaleda project, rather than the structure of the “FPGA project developed using Scaleda”. For the latter, please refer to the Scaleda project system introduction documentation.

Scaleda is an IDEA plug-in developed using Scala and Java. The structure of its source code is as follows:

Kernel part

The “kernel” part of Scaleda includes functions such as calling tool chains (such as Vivado) and defining project structures. The kernel is designed as a command line program that can run independently of the IJ platform. The kernel is located in the scaleda-kernel directory and exists as an sbt subproject. Run sbt 'project kernel; run' or execute the compiled java -jar scaleda-kernel.jar --help to view kernel usage help.

Plug-in section

Scaleda’s “plug-in” part includes Verilog language support, graphical project management and other functions to interface with the IJ platform. The code for the plug-in part is located in the src directory. Among them, the code under the package top.scaleda.idea is the plug-in code for the IJ platform, and the code under the package top.scaleda.verilog is the code that provides Verilog language support functions.

Open source projects used

Scaleda references and uses many open source projects, including but not limited to:

Open Source Agreement and Acknowledgments

Scaleda is open source using the Mulan Permissive License (Version 2) <https://license.coscl.org.cn/MulanPSL2>__ protocol. For details, please refer to LICENSE <https://github.com/Scaleda /Scaleda/blob/master/LICENSE>`__ file.

The development of Scaleda was directed by Professor Xu Yong of Harbin Institute of Technology (Shenzhen), and the project originated from the Harbin Institute of Technology (Shenzhen)-China Micro Semiconductor Artificial Intelligence Chip Joint Laboratory.

Thanks to JetBrains for tool support.

JetBrains