TerosTechnology / vscode-terosHDL

VHDL and Verilog/SV IDE: state machine viewer, linter, documentation, snippets... and more!
https://terostechnology.github.io/terosHDLdoc/
524 stars 42 forks source link

Support Chisel HDL #204

Open carlosedp opened 2 years ago

carlosedp commented 2 years ago

This issue is a discussion thread and followup about adding Chisel support to TerosHDL extension.

Here I list the initial points I identify as requirement for support:

There is a simple Chisel template based on giter8 from official Chisel at https://github.com/freechipsproject/chisel-template and also I created a more complete one at https://github.com/carlosedp/chisel-template.g8.

I also have a simple Blinky projects where I try to use and demo some Chisel features listed above. It's on https://github.com/carlosedp/chisel-playground.

Local dev environment setup example: https://github.com/carlosedp/dotfiles/blob/master/setup_development.sh

ekiwi commented 2 years ago

This sounds like a great idea!

It would be great to include Scala and/or Chisel syntax highlighers, maybe more experienced Chisel devs could chime-in with recommendations for one or another;

For VS Code users we normally recommend that they install the Scala (Metals) plugin which not only provides syntax highlighting but also code completion and inspection features. Maybe you could just rely on that being installed and mostly try to port the unique visualization features of terosHDL to be available to Chisel users.

For IntelliJ, EasySoC made some Chisel/firrtl plugins that provide similar functionality and that you would install alongside the Scala plugin: https://plugins.jetbrains.com/organizations/EasySoC

drom commented 2 years ago

here is https://github.com/chipsalliance/tree-sitter-firrtl that can be used for FIRRTL side of this project

qarlosalberto commented 2 years ago

@carlosedp @drom @ekiwi thanks!! Sorry for the delay.

I need to read about Chisel, I'm a really noob.

@carlosedp could you do a list about what features related to Chisel do you want in TerosHDL? How @ekiwi have said the syntax highlight, go to definition... is covered by Scala (Metals) extension.

Do you run the simulations with Chisel (own simulator)? Or you need to transform the Chisel files to Verilog and to run the simulation?

@carlosedp I share the full documentation for the next TerosHDL version. So, you can see all the features and to decide where would be nice to add Chisel support: https://drive.google.com/file/d/1KmnixIHoCQvewbJHWp2dauc0Qlr8o99Q/view?usp=sharing

You can download and install this version from: https://github.com/TerosTechnology/vscode-terosHDL/releases/tag/latest

carlosedp commented 2 years ago

Nice, TerosHDL is pretty new to me too as I never used it before. I'll look deeper into it and return :)