TerosTechnology / vscode-terosHDL

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

Some thoughts on improvements #313

Open cng18 opened 2 years ago

cng18 commented 2 years ago

Hello Developers, First of all my sincere thanks for putting together this extension for vscode. Over the past few days I played around teroshdl-vscode. I would say that its a great step in bringing some order to the HDL dashboard. I experimented with the document generator and found it to be a great motivator for adding meaningful comments to the RTL code. I tried running Lint and synthesis using various tools and got it working after playing around with the settings a bit. During this trials I noted my findings. I feel that the whole thing can be made more intuitive. Let me explain what I mean:

I would breakdown a HDL design into following steps. A design has to be certified for all the Steps shown.

  1. RTL Code
  2. RTL Style Check
  3. RTL Lint Check
  4. RTL CDC/RDC checks
  5. Simulation/Verification
  6. Synthesis
  7. DFT checks
  8. IPXACT of Design (ports/interfaces/registers)

For each of the above steps we can choose one of the many available tools. And for the chosen tool we should be able to provide options.

So we have a Design Flow Step followed by the Tool to be used for that Step followed by Options to be passed to the tool for running that specific step.

Below I try to illustrate using example:

Example Steps: Step=Lint Check ---> Tool=Verilator ---> Verilator Options for Lint Check ---> Run Lint using Verilator Step=Lint Check ---> Tool=Vivado xvlog ----> Vivado xvlog options for Lint Check ----> Run Lint using Vivado Xvlog Step=Verification ---> Framework=Cocotb ---> Tool = Verilator ----> Verilator options for Simulation

  1. Tool Configuration Window can be renamed as Design Flow Configuration Window.
  2. In the Design Flow Configuration Window you choose the Step-Tool-Options and add it to the Runs List
  3. In the Runs List now we have multiple Steps Listed with a Run Button against each step and also a Status Bar.
  4. A step can be repeated in the Runs List. For example the Lint Check can be done with various tools.
  5. The Runs List also acts like a dash board for the end user.
  6. The user specified build directory will have a structure like
    • build --> lint step --> tool1 ---> reports
    • build --> lint step --> tool2 ---> reports

Just wanted to share my thoughts. :-)

qarlosalberto commented 2 years ago

Thank you very much! Do you work with certificated designs?

cng18 commented 2 years ago

Hello Carlos, I did not get your question about certificated designs?

My last job function was Digital IP design. We had to certify/qualify our designs for some of the steps mentioned. Our delivery is not complete until all the steps are completed and signed-off. We had a comprehensive list of steps.

We had to certify that our design is able to synthesize in tools from different vendors. Likewise we had to certify that our design is CDC/RDC clean on a specific tool. And so on for various Design flow steps.

In the end we publish a report capturing the FlowStep-ToolName-ToolVersion for which the design is certified/qualified.

I liked your approach of vscode extension. I am pretty sure that this would be a much appreciated extension. I showed it to a few of my old colleagues and they were impressed with it.

On Mon, Apr 11, 2022 at 6:03 PM Carlos Alberto Ruiz Naranjo < @.***> wrote:

Thank you very much! Do you work with certificated designs?

— Reply to this email directly, view it on GitHub https://github.com/TerosTechnology/vscode-terosHDL/issues/313#issuecomment-1094994407, or unsubscribe https://github.com/notifications/unsubscribe-auth/AHQGII6J53TWVWTU57AIR6LVEQL3JANCNFSM5TCYPDUA . You are receiving this because you authored the thread.Message ID: @.***>

qarlosalberto commented 2 years ago

That's cool! Could you send me an email to carlosruiznaranjo@gmail.com

qarlosalberto commented 2 years ago

I would like to discuss about the workflow in TerosHDL.