Layout Build Configuration (Debug/Release)
AWE Designer layouts support two Build Configurations; “Debug” and “Release”. In Debug mode, every module in the design is included in the instantiated layout. In Release mode, the user is able to exclude certain modules from being instantiated by marking them as “Debug”.
Some modules are only used for development purposes (debugging), and are not critical to a layout’s overall function. For example, the “Meter” module is often used as a quick visual indicator to confirm that a signal path is indeed sending/receiving a signal. These Meter modules improve the design and tuning process, but will negatively impact memory usage and performance on the target. Designer’s Debug/Release Build Configuration model is a perfect solution for situations like this.
This principle is adopted from the Debug/Release build configurations seen in almost all C compiler IDEs. For example, think about shipping an executable/library built for Debug instead of Release. The Debug build configuration will compile all of the code in the file without optimizations, and may include code meant only for debug or logging purposes.
Setting a Layout’s Build Configuration
A user can set a layout’s Build Configuration from the Layout->Layout Properties window under the “Build” section.
![](../../__attachments/2807759830/image-20221214-233906.png?inst-v=afeb83b1-861e-46b8-b4de-1c642321bb7f)
![](../../__attachments/2807759830/image-20221214-233912.png?inst-v=afeb83b1-861e-46b8-b4de-1c642321bb7f)
Every individual layout is saved with its own Build Configuration, meaning a user can have both Debug and Release AWDs open in separate Designer windows at the same time.
Note: The top banner in Designer indicates the layout’s current Build Configuration status. The image below shows the banner after switching to Debug.
![](../../__attachments/2807759830/image-20221214-233925.png?inst-v=afeb83b1-861e-46b8-b4de-1c642321bb7f)
Setting an Individual Module’s Debug Status
By default, a module’s Debug Status is set to Release. A module set to Release will always be included in the layout, regardless of the Build Configuration. A module set to Debug will be excluded from the build if the layout is in the Release configuration.
To set a module’s Debug Status, right click on the module and select from the “Debug Status” menu option.
![](../../__attachments/2807759830/image-20221230-003617.png?inst-v=afeb83b1-861e-46b8-b4de-1c642321bb7f)
When set to Debug, a module will be grayed out, and “Debug” will be appended to the on-canvas name.
![](../../__attachments/2807759830/image-20221214-234003.png?inst-v=afeb83b1-861e-46b8-b4de-1c642321bb7f)
Build Configuration Induced Wiring Errors
Because Meter and Sink type modules do not have an output pin, removing them from a layout is unlikely to cause wiring errors. However, Designer allows any module to be marked as Debug, not just Meters and Sinks. Setting an inline module (module with output pin in the main signal path) to Debug may cause a wiring error. It is up to the user to avoid and resolve these types of Build Configuration induced errors. See the example below. The Scaler module has been marked as debug, causing an unconnected input pin error thrown from the TypeConvert module. However, the Meter module has no issue.
![](../../__attachments/2807759830/image-20221214-234017.png?inst-v=afeb83b1-861e-46b8-b4de-1c642321bb7f)
Generating Target Files
It is important to note that a layout’s Build Configuration affects both building and running on a connected target (via tuning interface), and generating target files (AWB, AWS, etc). This means that generating an AWB/AWS from a layout above in Release configuration will omit the debug modules from the generated files.
If the layout’s Build Configuration is currently set to Debug, the Generate Target Files window will append “_debug” to the preliminary generated file’s “Save Basename” field. The user is free to edit the basenames before generating.
![](../../__attachments/2807759830/image-20221214-234033.png?inst-v=afeb83b1-861e-46b8-b4de-1c642321bb7f)
Note: Build configuration only affects the layout at the PC level. AWE uses a Designer->AWE Core dynamic instantiation model, so the Debug modules are simply not instantiated on the target layout.