Younes:
- Improved the architecture to support multiple boards
- Initially architecture was separated into two hierarchical structures, one for each board. This was done because of an issue with locked IPs and imcompatibility between the configured target device and the constraints files included in the synthesis flow. And the correct architecture was picked by defining the top module corresponding to the chosen board.
- Disadvantage is that it leads to some code duplication
- Solution was:
- merge the two structures into a single top file
- use generate statements to instantiate board PS IPs
- exclude the PS IPs of the non-targeted boards from the synthesis workflow.
- This way, the Boreal firmware relies on a single hierarchical structure, and all the needed configuration is handled by the BorealManager
- Working on moving the existing common blocks (Patter Generator, Pulse Generator, Syncers, ...)
- Included linting into BorealManager