olofk / fusesoc

Package manager and build abstraction tool for FPGA/ASIC development
BSD 2-Clause "Simplified" License
1.14k stars 235 forks source link

Question: Different cores from the same provider #678

Closed BaseHardware closed 3 months ago

BaseHardware commented 3 months ago

Hello, I have a question about many different cores sharing the same git repository.

We have a large git repository (the size of all files in the repository is about 100 MB) containing many IPs and HDL designs, and we use many modules made from a combination of the IPs and HDL files from the repository.

In such a situation, I am trying to adopt fusesoc for our development workflow to manage the modules as cores in fusesoc. Firstly, I am trying to manage it by writing many core files in another dependent git repository for each module, which points to the common git above as a provider.

However, it seems this will bloat the size of the cache repository (this could be mitigated by setting cachable to no), and the time to take checking out all the cores from the common git would be very long as our private git server has a limitation on the transmission.

How can I deal with this problem? Does fusesoc have the option to optimize the shared git repository over various cores? If it doesn't, can you suggest a somewhat reasonable strategy to manage modules in my situation? So far, I think writing core files directly to the git repository might be a promising solution, but it makes our common repository complex and disables the version selection of modules by the core files.

BaseHardware commented 3 months ago

I solved this problem with the generator pattern.