Skip to content

Chisel development tools

Lukas Kohutka edited this page May 29, 2018 · 16 revisions

Because Chisel is based on a general purpose programming language (Scala), many code bases use Object Oriented development style. For example, Rocket Code relies on very deep inheritance hierarchies. As such, this kind of code style can be cumbersome to navigate using simple tools like vi and grep.

Netbeans

This tool is not recommended because of its slow speed when used for bigger projects. Recommended tool: Sublime

One free tool that many have used successfully is Netbeans. For Chisel, you only need the "Java SE" version. Then add the Scala Plugin: Scala plugin blog and the Scala plugin wiki

Download Netbeans version 8.1 (8.2 is not supported by the Scala Plugin at the moment!). Once you install the Netbeans, you can download the plugin from this page: http://plugins.netbeans.org/plugin/67889/nbscala-1-8-1-2

Just click on the Download button and you will download the plugin in zip file. Unzip it and open Netlist. Click Tools -> Plugins -> Downloaded -> select all .nbm files that were stored in the downloaded zip file.

IntelliJ

Perhaps the most loved and arguably most productive tool out there is IntelliJ from JetBrains. IntelliJ wiki and the IntelliJ download page

Sublime

Sublime is a text editor, not an IDE - so it does not allow direct control of compilation, simulation, running the tests; however, it provides a great tracking feature useful for large codebase projects, such as RocketChip, thus enabling easier understanding and changing of the code. It is far more lightweight than either IntelliJ or Netbeans and it does not require any kind of plugins, i.e. it works off-the-shelf. In order to have a Chisel project up and running in Sublime, just take care to use the following option File -> Open Folder leading it to the folder you consider root for your project. That does not have to be the actual root directory of the SBT project, it can be only a subfolder.

For example, if you are making changes exclusively on the rocket part of the rocket-chip repo, just Open Folder and lead it to the rocket directory. It will list all the files found in rocket and its subfolders on the left pane and it will easily show all interconnections between the item definitions and their usage, as long as those are within the rocket.

Recommendation: for faster jumping into code definitions, it is recommended to set up CTRL + left_click for this. The description how to configure Sublime is here: https://stackoverflow.com/questions/16235706/sublime-3-set-key-map-for-function-goto-definition

Clone this wiki locally