gen_edge3: improvements for submaps and blocks
This MR implements improvements for handling of submaps and blocks.
Firstly "anonymous" submaps (without a filename) are now supported. These are generated like a memory as a single REG in the CSV with a depth equal to the submap size. Setting expand: False
on any block/submap allows this behaviour to be used for any block/submap.
Secondly the handling of multiple blocks with the same name has been fixed. Before if we had a structure like:
- submap:
name: S1
children:
- block:
name: B
children:
- reg:
name: R1
- reg:
name: R2
- submap:
name: S2
children:
- block:
name: B
children:
- reg:
name: R3
- reg:
name: R4
The generated EDGE driver would only contain one block B with regs R1 and R2. This block would be included in both submaps S1 and S2. This is not correct as, although the blocks have the same name, they are not the same block.
Now two separate blocks will be generated with names S1_B and S2_B. This behaviour can be overridden by setting block-prefix: False
on the block.
Closes #125 (closed) and #126 (closed)