Should core-v-verif integrate Bender for filelist generation dependency tracing? #2644
Replies: 6 comments
-
|
I think to me it would be great to try. It seems to work pretty well and it can be a great update to the scripts. Regards |
Beta Was this translation helpful? Give feedback.
-
|
I believe some other projects support Bender in part (e.g., CVA6). Bender is well-suited to allow projects to re-use dependencies (such as common cells), helping to resolve conflicts when requesting the same dependency. From what I understand, these dependencies are currently vendored into the project (e.g., CVA6 and CV32E40P, both requiring cvfpu, common_cells), which can result in duplicate code when including two separate cores in a single project, where the dependency vendored in might slightly differ. I think Bender can be used here as an additional feature, supporting the existing frameworks by generating file lists, assisting with vendoring if needed, and allowing for more flexible use of the IPs in other projects. Versioning IPs according to Semantic Versioning helps a lot here. Of course, as the maintainer of Bender, my opinion here might be biased. |
Beta Was this translation helpful? Give feedback.
-
|
I can maybe comment more from a user perspective, since I am not an active developer of bender (yet). For us in the PULP platform, Bender has become an indispensable tool, especially for larger projects or systems where the number of dependency can reach 50 by now. This is where Bender helps a lot since it can automatically resolve dependencies, but still gives the user the last word for dependencies where it cannot find a solution. As Michael already said, this works a lot better if Semantic Versioning is used consistently. I am not very familiar with all the IPs that OpenHW manages, but I assume the number of dependencies are probably a bit lower, since you are managing single IPs instead of larger systems. Even then, Bender is very helpful to collect the files from dependencies and generate scripts for different EDA tools. I think by now, every PULP repository uses a The concept of Bender is also very sound and it follows the same approach that modern package managers of other languages have had for a while (e.g. Cargo, npm, uv, poetry), where dependencies are specified with loose constraints (i.e. All in all, Bender is a very solid tool (some of the best thing that came out of the PULP platform in my opinion), and it would also make our lives a bit easier in the PULP team if OpenHW would adopt Bender :-) |
Beta Was this translation helpful? Give feedback.
-
|
Hi, I will be very interested in trying bender. I have used it a bit with IDMA of pulp but I still do not have the proper understading of this. I shall give it a try in one of our project but may not be possible beore January. Thanks |
Beta Was this translation helpful? Give feedback.
-
|
Just to clarify the PR request : It proposes a bender based compile flow that uses the scripts from cv_dv_utils. And the combination of 2 can be a developped as a generic compile flow not only for cv_dv_utils but for any IP. In the example stated in the pull request, this combined flow is used for cvfpu-uvm. |
Beta Was this translation helpful? Give feedback.
-
|
OK, its official, as of #2643, Bender has been merged into this repo. Of course, it is only for a few components of the cv_dv_utils, but its a start. I'd still like to hear opinions and experiences of others in the community. |
Beta Was this translation helpful? Give feedback.
Uh oh!
There was an error while loading. Please reload this page.
-
A recent pull-request (#2643) suggested integrating Bender, a "dependency management tool for hardware design projects" for the cv_dv_utils. This could be a good idea. FWIW, here are my thoughts:
PROs:
CONs:
Beta Was this translation helpful? Give feedback.
All reactions