chisel icon indicating copy to clipboard operation
chisel copied to clipboard

Enable more fine-grained customization of svsim Backends

Open GeorgeLyon opened this issue 2 years ago • 0 comments

Type of issue: Feature Request

Is your feature request related to a problem? Please describe. svsim currently makes a "best attempt" to provide the required functionality for recent versions of VCS and Verilator, as it would likely be too much of a maintenance burden to support the full breadth of functionality across multiple versions, especially for VCS which isn't freely available. https://github.com/chipsalliance/chisel/pull/3306 provides an escape hatch where consumers can implement their own backend, but currently that requires copying a large amount of functionality from the existing backends. A better solution would be to make backends more extensible, probably using something like CommandLineArguments as described here: https://github.com/chipsalliance/chisel/issues/3150.

A complete solution would allow common functionality to be defined in svsim, additional functionality (like adding a flag) defined in the consumer's code base, and detection when upstream flags are added to svsim nudging folks to remove custom code.

Describe the solution you'd like See https://github.com/chipsalliance/chisel/issues/3150 for a description of CommandLineArguments. Something which allows you to add additional arguments to a backend, which detects things like conflict and duplicates would be nice.

What is the use case for implementing this feature? SiFive bumping VCS to a new version which requires a new VCS flag should not require first upstreaming that flag to Chisel.

GeorgeLyon avatar May 31 '23 17:05 GeorgeLyon