Changes

Jump to: navigation, search

Creating New Devices and Models

388 bytes added, 14:59, 10 November 2016
/* Setting & Matching Device Pins */
[[File:rfspice_banner.png|right|640px]]
[[Image:Back_icon.png|40px]] '''[[RF.Spice_A/D | Back to RF.Spice A/D Wiki Gateway]]'''
 
[[Image:Tutorial_icon.png|40px]] '''[[RF.Spice_A/D#RF.Spice_A.2FD_Tutorials | RF.Spice A/D Tutorial Gateway]]'''
==Importing a New Simulation Model==
Both process models and subcircuit models can be imported from simple plain text files with a ".TXT' file extension. Importing a simulation model from a text file is a very simple and straightforward procedure. Under the File Menu of the Device EditorManager, choose "Import Simulation Model from Text File...". An "Open" dialog box will appear for you to locate the model text file. Locate the file and click OK. Follow the program prompts to choose a category, enter a description and keyword and choose a manufacturer for the new model to be imported. These fields may be left blank and filled out later through the Edit Model Dialog. Click OK when you are done. A message will indicate that you have loaded your (subcircuit or process) model file, and that a simulation model was created assuming that it was successfully loaded. The program will then fix the polynomial controlled sources, if any, and notify you of encountered problems. Click OK after each message box. When your model is loaded successfully, the program will notify you of the completion of the import process.
If your file does not load, make sure the source file is not open in another application. Your model text file can contain the ".model" lines or Netlist subcircuit codes for several different models. All of these models can be imported together in a single process. In that case, the program will guide you through the same process for each individual model.
==Resolving SPICE Language Incompatibilities==
E1 1 2 poly(3) (3,0) 1 0 0 3
The SPICE line above means a voltage-controlled voltage source where the voltage across nodes 1 and 2 is determined by the function: v(1,2) = 1 + 0 + 0 + 3* v(3)^3. SPICE 3, on which [[B2RF.Spice A/D]] is based , supports a more general form of controlled source which includes polynomial controlled sources as a subset. This new "device" is the nonlinear dependent source with the following general Form:
Bxxx N+ N- < I=EXPR > < V=EXPR >
E1 1 2 poly(3) (3,0) 1 0 0 3
the corresponding SPICE 3 (and B2[[RF.SpiceA/D]]) implementation is:
BE1 1 2 V= 1 + 3 * V(3)^3
===Incompatible Model Types===
Some Netlist languages such as that from Pspice use models that are either not in B2RF.SpiceA/D or are defined with a different set of [[parameters]]. When you edit a subcircuit model in the Device Editor, you can check for incompatible models using the appropriate button. In addition, there is a button you can use to fix these models wherever possible within the subcircuit.
== Importing RF Device Models ==
Multiport Network device, i.e. one-ports, two-ports, three-ports and four-ports, are all modeled based on their frequency-domain S-[[parameters]]. Most active and passive RF devices can be modeled as multipart networks. For example, RF diodes can be modeled as one-ports, while RF transistors (BJTs, JFETs, MOSFETs, and MESFETs) can be modeled as two-ports. Many semiconductor manufacturers publish S-parameter data sets for their RF devices. The manufacturer data sheets usually contain S-[[parameters]] in Mag/Phase format tabulated as a function of frequency expressed in GHz. On the other hand, you can model many passive devices such as filters, directional couplers, hybrids, etc. as multiport structures using full-wave electromagnetic simulators like [[EM.Cube]]. The port characteristics of such devices are typically written into data files as a function of frequency. A particular case of interest is transmission line components with complex geometries or material composition, for which [[RF.SpiceA/D]] does not provide any database models. as an example, consider the case of a "Finline" transmission line. In a finline-based circuit, you may need one of more of the following general transmission line components:
* Open End
RF. Spice currently does not provide any models for finline components. However, you can use [[EM.Cube]] to analyze various finline structures over a frequency range of interest and generate S-parameter data sets for them.
[[RF.SpiceA/D]] allows you to import S-parameter-based models of RF devices from text files. Before describing how to import S-parameter data files, let us first discuss the format of the data files in more detail. S-parameter data files must have a ".TXT" file extension. These files must start with a ".model", a ".symbol" statement, and a format statement starting with the character "#". The model text file can have any number of comment lines at the beginning of the file or elsewhere. Comment lines are preceded by "*" or "!". All the text after these characters on the rest of the line will be ignored.
Format:
Example:
! This is an example of an RF BJT model based on measured S-[[parameters]].
.model MyNewRFBJT
3.000 &nbsp; 0.7449 &nbsp; 110.9 &nbsp; 0.985 &nbsp; 15.5 &nbsp; 0.1475 &nbsp; 41.9 &nbsp; 0.4218 &nbsp; -93.3
The model statement specifies the name of your RF device model, in this case, MyNewRFBJT. The symbol statement determines the device type and schematic symbol. The symbol_name can only be one of the choice given in the table below. The frequency units can be hz, khz, mhz or ghz. "s" implies the s-[[parameters]]. If the complex_data_format is left blank, the S-[[parameters]] are interpreted to have Mag/Phase format, with the magnitude on a linear scale and phase expressed in degrees. The other options for complex_data_format are "ma" for magnitude expressed in dB, or "ri" for Real/Imag format. The last part specifies the reference impedance value, which must come after letter "r". In the above example, the reference impedance is 50 Ohms.
[[Image:Info_icon.png|40px]] Click here to see a '''[[An_Overview_of_RF_Circuit_Simulation#List_of_Standard_Imported_RF_Devices | List of Standard Imported RF Devices]]'''.
== Using Device Manager for Importing S-Parameter Data ==
* Create New Generic T-Line Discontinuity from S-Parameter Text File...
The first item in the above list simply lets you import an S-parameter ".TXT" file and saves it as a simulation model in [[RF.SpiceA/D]]'s parts database. You can use this model later to build a new device or share it among several devices. The next three items in the above list create new devices complete with simulation models and schematic symbols. The newly create devices are permanently stored in your [[RF.Spice A/D]] parts database and can be used as new parts in your RF circuits. For example, an imported RF BJT device has the same BJT symbol with the same pin map as the other BJT devices of [[RF.Spice A/D]]. The main difference is that instead of a technology process models or a Netlist subcircuit model, the RF BJT is modeled by its imported, measured S-[[parameters]]. In a similar manner, you can import Multiport Network devices or T-Line Discontinuity models from S-parameter text files that are generated at the end of full-wave simulations of such structures using an electromagnetic modeling tool like [[EM.Cube]] .
==Creating a New Simulation Model from Scratch==
If your model type is a SUBCIRCUIT the simulation guts will be blank. You will need to enter the subcircuit text for this part into the empty text field. If you already have this text in another file, you can copy and paste the subcircuit text.
If your model type is other than a Subcircuit you will need to set [[parameters]] for the device. If you need help with this, see the section on entering [[parameters]].
Some devices or parts require that a process model be set. To set the process model click on the ellipsis button, and then select a process model from the list that appears. If the process model for your simulation model is not in the list, then you need to add a new process model.
==Creating a New Device from Scratch==
==Setting & Matching Device Pins==
[[File:b2MAN_Fig45.png|thumb|480px| "Connect Symbol Pins to Model Pins" Dialog.]]
When creating a new simulation model as will be discussed later, you can also instruct the Device Editor to create a default (simple and basic) symbol for a it. Normally, if you have already set the simulation model pin or terminal names, the symbol pins will automatically match the model pins. In many other cases, you may create the models and symbols separately and independently. In such cases, you need set and match the symbol pins with the corresponding model pins.
It is important to match up the pins correctly because the simulator will need this information to be correct to simulate the part correctly. Limit pin names to 10 characters or less. For spaces use underscore ( _ ). Dashes are not accepted. Click OK when all the pins have been matched up correctly.
 
<table>
<tr>
<td>
[[File:b2MAN_Fig45.png|thumb|left|720px| "Connect Symbol Pins to Model Pins" Dialog.]]
</td>
</tr>
</table>
==Creating a New Device from an Existing Simulation Model==
If your circuit contained XSpice parts, you will have to designate whether the pin is digital or analog. If the pin is Digital, then you must also designate whether it is an Input or Output pin. If the pin is Analog, then input and output direction designation do not apply. Click accept when you're done with each pin. Click OK when you're done setting the pins.
For Digital parts, Select and edit the [[Digital Simulation|digital simulation]] model you just created. In the Edit Simulation Model dialog box, click the Edit Pin Properties button to access the list of digital pin. You should set each pin's direction, state, and propagation delay. Click the Accept button to accept changes and move on to the next pin. Refer to the Database Editor Menu's Edit simulation model section for more information.
Once you're done setting the pin properties, close all the dialog boxes. All that remains is to alter the symbol if you want to rearrange the symbol pins and exit the Database Editor. In the Workshop pull up your new part and use it like any other part.
== Creating a Parameterized Subcircuit Device ==
Parameterized Subcircuit Parts are parts whose behavior can be modified with one or more [[parameters]]. In some cases, you will want to turn your subcircuit defined parts into parameterized subcircuits.
In this example, we will be creating a battery as a Parameterized Subcircuit Model part.
This should bring up the dialog box shown below. In the Model Type Name, enter the name you would like to identify your new model by, making sure that there are no spaces in the name.
Then click on the [[Parameters]] tab. In the Parameter Name field, enter the name of the 1st parameter that you will be using, in this case, Voltage. In the data type, select the type of data of the parameter. Usually this will be a real or integer. In this example, the Data Type will be Real. Units and defaults are optional. Make sure the Use For Input box is checked. Leaving it unchecked will cause the parameter to not show up in other dialog boxes. The "Is Required" checkbox is for when you want Workshop to specifically use this parameter. If you check the box, then you also must enter a Default Value.
Click Accept when you're finished with the particular parameter. Note that you must click New Parameter to enter and edit a new parameter. Not doing so will overwrite the parameter that happens to be highlighted.
Then click on the Subcircuit Text tab. This is where you will be entering the actual subcircuit that you will be using your [[parameters]] in.
If you know what you're doing, you can start entering your subcircuit starting with the .SUBCKT statement and ending the .ENDS statement. This subcircuit will need to be in Berkeley Spice 3f5 format with XSpice extensions. Otherwise, copy and paste a subcircuit into the window. You can get the subcircuit text for an existing simulation model by editing the simulation model and copying its text.
Now all you have to do is incorporate your own [[parameters]] into the subcircuit. Enter your [[parameters]] in the form of a parameter or formula. All custom [[parameters]] must go in between the curly brackets {}. For example, if you had two [[parameters]] called X and Y and wish to have them added together in a subcircuit, the formula would be {X + Y}. Or getting fancier, you add X and Y and then multiply by 2. The formula would look like this: {(X + Y) * 2}. All standard mathematical operations are supported (+,-,/,*), power of (^), and any other operation supported in the graphing plot expression module of the Workshop. In the example below, note that the {voltage} has replaced the regular voltage number.
Once you're satisfied that everything is correct, click OK and continue to the next step.
the Set Model Pins... button allows you to edit the pins in your simulation model, if wish. The Create Symbol will create a new generic symbol using the pins in your subcircuit for symbol pins and named the same as your Simulation Model
Click on the "[[Parameters]]" tab, you can enter values for the [[parameters]] that you specified earlier. Or you can leave them blank for now and change it once you have the part in the schematic. For this example, we'll enter a default voltage of 10. Enter 10 in the Value box and click Accept. The window should look like the window below. Once you're done editing the simulation model, click OK to accept it.
<b>Step 3 - Create a new Part with the simulation model</b>
Click OK to accept the part.
And that's it. To access your new part in the Workshop, go to Devices->Choose Part by Name and type in the name of your part. Pull your part up in the Workshop and double click on it to change your custom [[parameters]]. The [[parameters]] will be evaluated automatically as you run a simulation.
You can assign packages and pairings by using the drop down box to select a package, typing in how many parts come in a package, and then clicking on the Connect Part Pins to Package Pins button. More information about Packages can be found in the PCB tutorial.
<p>&nbsp;</p>
[[Image:Tutorial_icon.png|40px]] '''[[RF.Spice_A/D#RF.Spice_A.2FD_Tutorials | RF.Spice A/D Tutorial Gateway]]'''
 
[[Image:Back_icon.png|40px]] '''[[RF.Spice_A/D | Back to RF.Spice A/D Wiki Gateway]]'''
28,333
edits