Schematic component files are one of the most powerful concepts in SIMetrix/SIMPLIS. These files are effectively a container for both a schematic and a symbol to connect that schematic to a parent schematic. This system creates a modular design where all symbols are stored in the component files, meaning a design can be archived by archiving the test schematics and the schematic component files.
To download the examples for Module 4, click Module_4_Examples.zip
In the previous two topics, symbols and models were covered separately. A schematic component file is the combination of the electrical model, in a schematic form, and the symbol which calls the model. The extension .sxcmp is reserved for schematic component files. Using the compensator from the SIMPLIS Tutorial buck converter schematic, the schematic component file can be visualized as follows:
The schematic 4.2_LLC_Closed_Loop.sxsch will be used in this exercise. This schematic has the symbols for two schematic component files - the LLC_Modulator_Closed_Loop.sxcmp and the Gen_Opto.sxcmp placed on the schematic. The symbol for each schematic component file is stored within the file itself, as this exercise demonstrates.
The fact that schematic component files are implemented as subcircuits is the most important concept behind schematic component files. This means is that every net inside each schematic component file is independent of every net outside the schematic component file. This also means that variables defined outside the schematic component file are not available inside the schematic component, unless the variables are explicitly passed into the schematic component via the SIMPLIS_TEMPLATE property.
Also, should two versions of the same schematic component file be placed on a schematic, the subcircuits are identical but completely independent of each other. By passing parameters into the schematic component, you can configure the same schematic component file to have different instantiated subcircuits.
In this exercise, you will see how the netlist entries for schematic components are created.
Notice that the model for the Gen_Opto is located in the netlist, and not in the deck file. Because the subcircuit definition for the Gen_Opto is included in the netlist, the netlist preprocessor doesn't search the model library for subcircuits with the name Gen_Opto. This prevents any naming collisions where a user might name a schematic component file to the same name as an internal subcircuit model. This also reinforces the principle that subcircuits defined in the netlist take priority over those in the global model library.
Using the SIMPLIS_TEMPLATE property, you can pass parameters to schematic components just like any other ASCII text based model. In the next exercise, you will see how the deadtime parameter is defined at the top level and is passed into the LLC_Modulator_Closed_Loop.sxcmp via the SIMPLIS_TEMPLATE symbol property.
The default SIMPLIS_TEMPLATE for schematic component files is <ref> <nodelist> <value>. This SIMPLIS_TEMPLATE is used for all schematic component files unless you provide your own SIMPLIS_TEMPLATE. To pass parameters to the subcircuit defined by the schematic component file, you must use the default SIMPLIS_TEMPLATE (<ref> <nodelist> <value>) followed by the vars: keyword and a space delimited list of subcircuit parameter key-value pairs. In this example, this portion of the SIMPLIS_TEMPLATE is vars: Deadtime=%Deadtime%.
Most models start life as schematic component files, as the schematic allows for fast design iterations; however, the schematic component file cannot be locked or protected. To protect or lock the design, an ASCII text model library file is created from the schematic component, which can then be encrypted. In section 4.4 Protecting Your Intellectual Property - Model Encryption, you will learn how to create ASCII and encrypted ASCII model files from a schematic component file.