Skip to content

New Tool Support: VC Formal#497

Open
ArkoshEternal wants to merge 4 commits intoolofk:mainfrom
ArkoshEternal:vc_formal
Open

New Tool Support: VC Formal#497
ArkoshEternal wants to merge 4 commits intoolofk:mainfrom
ArkoshEternal:vc_formal

Conversation

@ArkoshEternal
Copy link
Copy Markdown
Contributor

Add VC Formal support to Edalize

Feature Overview

  • Utilize similar jinja template method to that of the symbiyosys to run vcformal (vcf) applications
  • CAPI2 selected VC formal application (FPV, FSV, etc.) mandatory tool option
  • Add new filetype, vcfConfigTemplate, to CAPI2 file typing system

Verification

  • Add testing for vcf tcl file generation, tests against assumed CLI command (most information contained in template .tcl file)
  • In use in fork w/ VCF 2024

@olofk
Copy link
Copy Markdown
Owner

olofk commented Mar 31, 2026

The code looks straight-forward (A+ for adding tests) but this should be converted to the Flow API instead as we are sunsetting the old Tool API.

@ArkoshEternal
Copy link
Copy Markdown
Contributor Author

@olofk Sounds great, I'll port this to a flow API.

I suppose this would be part of a "formal" flow, but I feel the term formal has so much loading to it that it might be a bit awkward to fit everything under a "formal" flow

I'll start working on one, but I'm wondering if you have an idea of what other tools I should implement under the flow

@olofk
Copy link
Copy Markdown
Owner

olofk commented Apr 20, 2026

Since it's a single tool, I think it can be run with the generic flow. That's what I use for other similar one-off tools. I think we can create a dedicated formal flow when we have a need for it. Like for the lint flow that sets some special options for verilator, or the sim flow where there is some shared cocotb logic.

FYI, I'm also considering making the generic flow the default if the user doesn't specify a flow in the target.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants