To download the examples for Module 5, click Module_5_Examples.zip.
      
      What You Will Learn
         
         
            - How the SIMPLIS_TEMPLATE property allows you to explicitly pass parameters through
               the symbol-to-subcircuit interface
 
            - How the .GLOBALVAR statement allows you to promote a local parameter to a global
               parameter
 
         
       
      Getting Started
         
         In the last topic, 5.2.2 Adding Tabbed
               Parameter-Editing Dialogs, you learned how to add a parameter-editing dialog
            to a schematic component. The resulting schematic component is parameterized and easy to
            use; however, parameters passed into that schematic component can be used only on that
            hierarchical level. To manage parameters passed into schematic components at lower
            levels, you have two options:
         
            - Pass the parameters through the SIMPLIS_TEMPLATE 
 
            - Make the parameters global by using the .GLOBALVAR statement. 
 
         
         Passing parameters explicitly through the symbol-to-subcircuit interface is the
            recommended approach. The first exercise demonstrates this method.
         
            Exercise #1: Explicitly
               Passing Parameters Through the Symbol-to-Subcircuit Interface
            In this exercise you will learn the
               syntax required to pass parameters through multiple levels of hierarchy.
            
               -  Open the schematic 
                     5.6_parametrized_rc_filters_2_pole_hierarchy.sxsch. 
 
               - Select U1, which is the two-pole RC filter.
 
               -  Press Ctrl+E to descend into the param_rc_tvd_top.sxcmp schematic
                  component. 
Result: The schematic for the
                        param_rc_tvd_top.sxcmp schematic component opens. In addition to the
                     single-stage filter (E1, E2, R1, C1), a second-stage filter is included using a
                     second level of  the hierarchy. The symbol for the param_rc_tvd.sxcmp
                     schematic component filter represents the second level of the hierarchy.
                     
                
               -  Double click on U1, the param_rc_tvd.sxcmp schematic component.
                     
Result: The tabbed parameter-editing dialog for
                     the RC Filter opens: 

Note: The local parameter FC is passed to the second-stage filter
                     inside the expression {FC}. 
                  
                
               -  Press F9 to run the simulation. 
Result: The
                     simulation runs as expected. The cascaded filter has two poles at 10kHz with a
                     DC gain of 6dB. 
                
            
          
         
            Discussion: Exercise
               #1
            The following describes the process that
               occurs in the simulation above:
            
               -  In the parameter-editing dialog for the second-stage filter U1, the
                  parameter FC, which is local to the param_rc_tvd_top.sxcmp
                  schematic, is assigned to the FC symbol property of the
                     param_rc_tvd.sxcmp filter symbol. 
 
               -  The symbol-to-subcircuit interface for the param_rc_tvd.sxcmp takes this
                  symbol property value and passes the value as a parameter to the underlying
                  schematic. 
 
               -  The end result is that the FC parameters at the two different hierarchy levels
                  are identical and equal to the value assigned to the top-level
                     param_rc_tvd_top.sxcmp symbol. 
 
               -  In this example, the two other parameters used in the param_rc_tvd.sxcmp
                  schematic component, GAIN and R_VAR are assigned fixed values. 
 
            
            One of the key benefits to passing
               parameters explicitly through the symbol-to-subcircuit interface is that you have
               complete control over the parameters used at each hierarchy level and you have a
               modular implementation.
            
               -  The param_rc_tvd.sxcmp is a stand-alone schematic component and can be
                  reused in any other design. 
 
               -  Because parameters are passed explicitly, you can choose which parameters are
                  passed from one level to another via the symbol-to-subcircuit interface. Fixed
                  parameter values can be entered on the dialog. 
 
               -  Where the parameters are defined is never in question - a user simply clicks on
                  the dialog to view the parameters. 
 
            
            The next exercise which uses the
               .GLOBALVAR statement to pass parameters through the hierarchy illustrates a direct
               contrast to the example in Exercise #1.
          
         
            Exercise #2: Using
               .GLOBALVAR to Promote a Local Parameter
            In this exercise, you will learn how the
               .GLOABALVAR statement can be used to promote a local parameter to a global
               parameter.
            
               -  Open the schematic 5.7_parametrized_rc_filters_2_pole_globalvar.sxsch. 
 
               -  Select U1, which is the two-pole RC filter. 
 
               -  Press Ctrl+E to descend into the param_rc_tvd_top_globalvar.sxcmp
                  schematic component. 
Result: The schematic for the
                        param_rc_tvd_top_global.sxcmp schematic component opens. As in the
                     previous example, a second-stage filter is included using a second level of the
                     hierarchy. 
                
               -  Select U1, the second-stage RC filter. 
 
               -  Right click and select Edit/Add Properties... from the context menu.
                     
Result: The properties for the param_rc.sxcmp
                     symbol are displayed in the Edit Properties dialog. 
Note: No parameter
                     values are stored on symbol properties and no SIMPLIS_TEMPLATE property is
                     present. This symbol does not pass parameters into the underlying schematic.
                     
                
               -  Click Cancel on the Edit Properties dialog. 
 
               -  Press F11 to open the command (F11) window for the schematic component.
                     
Result: The two comment lines and three
                     .GLOBALVAR statement promote the local parameters to global
                  parameters.
*** Three parameters were passed into this level.
*** Here we "promote" the parameter scope to global.
.GLOBALVAR FC={FC}
.GLOBALVAR R_VAR={R_VAR}
.GLOBALVAR GAIN={GAIN}
                
               -  Press F9 to run the simulation. 
Result: The
                     simulation runs and the cascaded filter has a DC gain of 0dB because the GAIN
                     parameter is made global at the first level, resulting in the same gain for
                     both filters. Because the .GLOBALVAR method is used, there is no way to change
                     this. 
                
            
          
         
            Discussion: Exercise
               #2
            The following describes the process that
               occurs in the simulation above:
            
               -  In this example, the FC, R_VAR, and GAIN parameters are
                  passed into the param_rc_tvd_top_globalvar.sxcmp schematic from the symbol
                  via the symbol-to-subcircuit interface. 
 
               -  These parameters are local to this schematic level and cannot be used in any
                  sub-levels. 
 
               -  The three .GLOBALVAR statements in the F11 window effectively promote these
                  parameters to be global 
                     at this level and every level below the current level
                  . 
 
               -  Just because the parameter is promoted to a global parameter at this level does
                  not make it available at higher levels of hierarchy, such as at 5.
                     7_parametrized_rc_filters_2_pole_globalvar.sxsch. 
 
            
          
         
            Exercise #3: GLOBALVAR
               Scope
            This exercise demonstrates how global
               parameters are 
                  not
                available at higher levels of the hierarchy.
            
               -  Press Ctrl+U to ascend to the top level schematic: 5.7_parametrized_rc_filters_2_pole_globalvar.sxsch . 
 
               -  Double click on R1 to edit the value. 
                     - Change the Result field to {FC}as shown below: 
                      
                     - Click Ok to accept these changes.
 
                  
                
               -  Press F9 to run the simulation. 
Result: The
                     simulation halts with an error because the parameter FC is not defined at the
                     top level
                  schematic.
****************************************
<<<<<<<< Error Message ID: 1038 >>>>>>>>
input file C:\Training\Module_5_Examples\SIMPLIS_Data/5.7_parametrized_rc_filters_2_pole_globalvar.deck, line 9:
    R1 9 0 {FC}
		
A number to represent the value
for `resistance' is expected at the
location where `{FC}' occupies.
                
            
          
         
            Discussion: Exercise
               #3
            Parameters promoted to global are
               available only at the level of hierarchy where the .GLOBALVAR statement is located
               and at lower levels. This important concept helps demonstrate that the passing of
               parameters between hierarchy levels is unidirectional. Parameters are always passed
               from higher levels to lower levels, 
                  never
                the other way around.
          
         
            Exercise #4: Passing
               Parameters From the Top-Level Schematic Component
            At times, you may need to pass
               parameters from a top-level schematic component, such as an IC, to a specific
               lower-level component. This example separates the parameters for the two filters and
               provides a top-level editing dialog for both filters.
            
               -  Open the schematic 5.8_parametrized_rc_filters_independent.sxsch.
 
               -  Double click on the symbol for U1. 
Result: The parameter-editing dialog opens with two tabs: one for each filter stage.
                     The symbol has six parameters: three for the first-stage filter and three for
                     the second-stage filter. 
                
               -  Click Cancel on the dialog. 
 
               -  Press Ctrl+E to descend into the param_rc_tvd_independent.sxcmp
                  schematic. 
 
               -  Double click on U1, which is the second-stage RC filter. 
Result: The parameter-editing dialog opens, populated
                     with the second-stage filter parameters which are passed into the
                     param_rc_tvd_independent.sxcmp via the symbol-to-subcircuit interface of the
                     top-level 2 stage filter.. The second stage filter param_rc_tvd then passes
                     these parameters into the schematic of the param_rc_tvd.sxcmp through the
                     symbol-to-subcircuit interface. 
                
            
          
         
            Discussion: Exercise
               #4:
            The two RC filters in the example above
               use two sets of parameters that are completely independent of each other even though
               the parameters are edited on the top-level symbol. The three second-stage parameters
                  FC_STAGE_2, R_VAR_STAGE_2, and GAIN_STAGE_2  are used only in
               the second-stage filter although the parameter values are available on the first
               level as well. You can extend this method to any number of hierarchy levels. The
               symbol on each hierarchy level will pass all parameters which are used at lower
               levels.
          
       
      Conclusions and Key Points to
            Remember
         
         
            - Passing parameters through the symbol-to-subcircuit interface with the
               SIMPLIS_TEMPLATE symbol property provides a flexible and modular component. Because
               models parameterized this way are modular, they can be reused in other subcircuits.
               Parameter values can be passed down through the hierarchy by enclosing the local
               parameter in curly braces {}.
 
            - Using the .GLOBALVAR statement to pass parameters to lower levels in the hierarchy
               is not a modular approach, which means that all schematic components parameterized
               with .GLOBALVAR have identical values. For this reason, using .GLOBALVAR should be
               avoided. Schematic components parameterized this way are not modular because the
               parameters must be defined in a higher level of the hierarchy.