Scaleda: Making IntelliJ IDEA an FPGA development tool
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;
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.
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.