factorised hierarchical structure for multi-board support
Factorized hierarchical structure to avoid code duplication in supporting multiple boards. This shall allow to have unique sys and usr cores, making use of generate statements, and the magic of project configuration to allow proper compilation will be done in the boreal_manager. The design now includes a single top module, a single sys_core, and a single usr_core. In addition the top module interface was made a little more generic to support the multiple board variants