...
...
...
...
...
...
About This Guide
This Application Note explains the use of Subsystems in the Audio Weaver Application.
Adding a Subsystem
You can add a subsystem in two ways:
...
Figure 7. Changed pin names will appear
Adding Pins to a Subsystem
If you wish to add additional input or output pins to a subsystem after creating it, use the SysIn and SysOut modules, respectively.
...
After dropping in a pin, proceed to make connections to your other modules as usual.
Layout Hierarchy and Subsystems
When your Audio Weaver layouts start getting larger, you may wish to move sections of them to a new page. You can create “Subsystems” which are groups of modules moved off the top page and represented by a smaller rectangle just like a single module. There are two main reasons to do this:
...
Learn more about Audio Weaver layout hierarchy at these links:
Using ParamSet and ParamGet
ParamSet and ParamGet modules allow you to control internal variables of modules without requiring a pin. To reference a variable at the same level of hierarchy as the ParamGet or ParamSet module, simply use the module name and the variable name as shown:
...
Then set the Mod.Var field to
\Scaler1.gain
Using a Copier Module
You may design a subsystem that passes an input pin directly to an output pin without any intermediate processing. If so, you will need to add a “Copier” module for the layout to be instantiated correctly. This Subsystem will generate an error:
...
Figure 12. Pass through signal in subsystem
Figure 13. Error Message
Adding the Copier module prevents the error. The Copier module uses a small amount of memory, so unless this pass-through signal being part of the subsystem is necessary, it would be better to avoid it.
Figure 14. Add a Copier module
How the system gets flattened when built
The concept of Subsystems in Audio Weaver allows you to better organize your layouts and re-use groups of modules to save you time. When you instantiate a layout (e.g., “Build and Run”), the references between the different pages in the Audio Weaver layout are resolved, logical connections are made, and the instantiation proceeds until all paths through subsystems are completed. Functionally it is no different than if you had put all the modules on a single page. Well, almost.
Most of the time, you do not need to treat modules in subsystems any differently. However, if you are using “ParamSet” or “ParamGet”, you do need to use the full hierarchical path to the Module. This is discussed in detail here.