flow: add CVA6 support for Nangate45 - #4428
Conversation
Signed-off-by: Hector <hectorrodriguezrodriguez52@gmail.com>
There was a problem hiding this comment.
Code Review
This pull request adds support for the CVA6 design on the Nangate45 platform, introducing build, configuration, and constraint files, alongside new fakeram macro LEF and Liberty files. The review feedback highlights a redundant false path constraint in constraint.sdc applied to the rvfi_probes_o port, which is already deleted during canonicalization. Additionally, duplicate definitions of the default_input_pin_cap attribute were found across all newly added Liberty (.lib) files, which should be cleaned up to prevent warnings or errors in strict Liberty parsers.
| # i_cache_subsystem/i_cva6_icache/gen_sram_*__tag_sram/gen_cut_*__gen_mem_i_tc_sram_wrapper/addr_i[*] | ||
|
|
||
|
|
||
| set_false_path -to [get_ports {rvfi_probes_o}] |
There was a problem hiding this comment.
The port rvfi_probes_o is deleted during canonicalization (as specified in canonicalize.tcl). Therefore, applying a false path constraint to this non-existent port is redundant and will cause warnings or errors during SDC parsing in OpenROAD. This line should be removed or commented out.
# rvfi_probes_o is deleted during canonicalization
There was a problem hiding this comment.
Fixed in 2889e56 by removing the obsolete false-path constraint
| default_input_pin_cap : 0.0; | ||
| default_output_pin_cap : 0.0; | ||
| default_input_pin_cap : 0.0; |
There was a problem hiding this comment.
There was a problem hiding this comment.
Fixed in 8314c10 by removing the duplicate default_input_pin_cap declaration from this newly added Liberty file
| default_input_pin_cap : 0.0; | ||
| default_output_pin_cap : 0.0; | ||
| default_input_pin_cap : 0.0; |
There was a problem hiding this comment.
There was a problem hiding this comment.
Fixed in 8314c10 by removing the duplicate default_input_pin_cap declaration from this newly added Liberty file
| default_input_pin_cap : 0.0; | ||
| default_output_pin_cap : 0.0; | ||
| default_input_pin_cap : 0.0; |
There was a problem hiding this comment.
There was a problem hiding this comment.
Fixed in 8314c10 by removing the duplicate default_input_pin_cap declaration from this newly added Liberty file
| default_input_pin_cap : 0.0; | ||
| default_output_pin_cap : 0.0; | ||
| default_input_pin_cap : 0.0; |
There was a problem hiding this comment.
There was a problem hiding this comment.
Fixed in 8314c10 by removing the duplicate default_input_pin_cap declaration from this newly added Liberty file
Signed-off-by: Hector <hectorrodriguezrodriguez52@gmail.com>
🔍 QoR checkMetrics reflect the PR merge build — i.e. what will land on the target branch. Advisory — results are log-only and do not affect build status. The authoritative QoR gate remains the local rules-file check. Commit 61 design(s) checked — 0 with regression(s), 0 without a comparable baseline.
|
Signed-off-by: Hector <hectorrodriguezrodriguez52@gmail.com>
Summary
Motivation
ORFS already includes CVA6 support for ASAP7. This change makes the same open-source CPU available on Nangate45 while preserving the existing CVA6 source, canonicalization, and constraint structure. The platform-specific plumbing is limited to configuration, memory adapters, and the required FakeRAM views.
Validation
amd128)git diff --checkpassesThe run used current ORFS scripts with the locally cached ORFS tool image. Local formal equivalence could not be exercised because the cached
kepler-formalbinary exited withSIGILL; no source configuration disables LEC, so upstream CI can run the normal formal check with its current image.