Do not generate a seperate module for the subsystem when Generating HDL code
2 views (last 30 days)
Kamyar Khosravi on 11 Apr 2018
Is it possible to not generate a separate module for subsystems used a lower level of the model when generating HDL code. For example, sometimes to make the design more readable, I want to create subsystems. But when generating the code, it creates a different module for that subsystem. Is it possible to not generate any module when using subsystem and just propagate signals as they go through subsystem? If not are there any other available blocks that would be able to achieve above?
Many thanks, Kamyar
Tim McBrayer on 11 Apr 2018
Yes, this is a native capability of HDL Coder. Each subsystem has a HDL Block property named "FlattenHierarchy" that can be either 'on', 'off', or 'auto'. The default value is 'auto'. which means that each subsystem will inherit its FlattenHierarchy setting from its parent. To completely flatten your entire design into a single flat HDL file, set 'FlattenHierarchy' to 'on' on your top-level subsystem. A more targeted approach is also possible, where you can mark specific sub-hierarchies for flattening (or not flattening) as you desire.
To access this property, you can use the hdlset_param command, or you can use the right-click context menu on a subsystem. Choose HDL Code>HDL Block Properties...>Flatten Hierarchy.