This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

PSPICE-FOR-TI: Importing parts permanently?

Part Number: PSPICE-FOR-TI
Other Parts Discussed in Thread: THS4551

Hi folks,

I've read some help files that weren't very helpful. I've watched a video that clicked through so fast that it was extremely hard to follow. I've searched the web and found guidance that dates back to the win95 days (or earlier). So far, none of this has described how to append to, customize, augment, or supplement the permanent (default) set of parts that comes with PSpice for TI with a common set of components I plan to use in multiple designs.  As close as I can figure.... each time I start a new project, I need to remember how to import those parts over and over again.

The video was actually 2.6 in your training series and it was about importing third-party parts into PSpice.  Your parts aren't third party. To your tool, they are first-party and they come with both .lib and .olb files.  So i should be able to augment (even if I have to do it just one part at a time) the Texas Instruments category of the Parts Search tool.  I'm going to try to slow it down a bunch the next few times I watch it so that I can see where they are starting each action and where those files are supposed to "live" when we are done importing them.

If that isn't possible (because I did notice each of your installed ..lib and .olb file sets also came with their own .libsig file) I should be able to add my own hierarchical category to that list and build my own list of commonly used parts.  AND I should not need to be in Capture (or whatever it's called) to edit this library. That's a global tool visible without any other windows being open or projects being active.  I should be able to manage it the same way I do my other configuration options (like colors and fonts).

So....

1) How do I update a common default library with a list of the components I want to always have available to any of my projects?

2) What's the shortcut method to importing a set of {lib,olb} files that I can download and unzip individually into the PSpice_TI so that they are as integrated as the pre-loaded components for my setup?

3) What are the purposes of  the other files in your pspice package? Let's work through an example:

I downloaded the bundle for THS4551.  In that I have LIB, OLB, DNS, and OPJ files in the first level, below that is a path called "THS4551_PSPICE-PSpiceFiles\Schematic1" and in that I am guessing I have a "simulation"??  

What are the dns and opj files for?
Will Pspice find that buried sim (and its subfolder) on its own or will I need to drag that out and put it into the tool manually too?

I know this is a pretty hefty post but I have spent most of my available time today trying to figure out why this is not more intuitive. It's a customized version of a commercial tool just for TI and its customers. The integration between it and your own part bundles should be much simpler (like "Unzip the bundle, Copy this list of files into some other folder. Ask the program to refresh the list. Done." )

Regards,

Shawn

  • Hi Shawn,

    Some limitation you described is with how the commercial version of PSpice (on which PSpice for TI is based) is architected.

    This is a reference-based tool. I just made that up, it basically means the definition of all models needed for simulating a particular design are read at simulation run time, i.e. they are "referenced".

    The OLB file is a "library" of symbols you can place onto your schematics. Each symbol contains information which model (mostly .SUBCKT but could be .MODEL as well) should be used (referenced) for simulation. The actual file (.LIB) that contains that model (.SUBCKT/.MODEL) can be anywhere, as long as you tell the tool the path to it. That is done in the configuration known as simulation profile.

    Here are some comments to your questions:

    1) How do I update a common default library with a list of the components I want to always have available to any of my projects?

    You will need to manage that yourself. As mentioned, LIB and OLB can be anywhere.

    2) What's the shortcut method to importing a set of {lib,olb} files that I can download and unzip individually into the PSpice_TI so that they are as integrated as the pre-loaded components for my setup?

    What you really "importing" is a SUBCKT (which you start by specifying the LIB file it is in) and what you get is an OLB file that contain a symbol that will call for that SUBCKT. You still need to reference the LIB file at simulation run time (the model definition is not "imported"). There isn't a way to insert symbols to the categories. TI is managing that hierarchy (which mirrors the ti.com product hierarchy) so users don't have to.

    3) What are the purposes of  the other files in your pspice package? 

    We've covered the LIB and OLB, DSN is the schematics, and OPJ is the index/map that tells the tool where everything is in the project. The path called "THS4551_PSPICE-PSpiceFiles\Schematic1" is all simulation files for schematic1 (the DSN can have more than 1 schematic), in there you will see "AC_Sweep", a folder by the name of the simulation profile (a configuration consisting of what analysis to run, where the LIB file is, etc) in which you see all the simulation files for that particular simulation profile (each schematic can have more than 1 simulation profile).

    Hope this extremely short description will help you get started.

    Attached is the THS4551 model. The one you downloaded from the product folder has a small problem n the simulation profile.

    THS4551_PSPICE.zip

  • Hello JC,

    Thank you for trying to answer my questions. Please allow me to expand my desriptions so that you may be able to explain what you did not explain last time.  That plus additional comments are inline.

    JC Zhu - Simulation with PSpice said:

    Hi Shawn,

    Some limitation you described is with how the commercial version of PSpice (on which PSpice for TI is based) is architected.

    Nice sentence. You never finished your thought or linked it to which of several questions you were answering.  Standing alone, it provides no value.

    JC Zhu - Simulation with PSpice said:

    This is a reference-based tool. I just made that up, it basically means the definition of all models needed for simulating a particular design are read at simulation run time, i.e. they are "referenced".

    The OLB file is a "library" of symbols you can place onto your schematics. Each symbol contains information which model (mostly .SUBCKT but could be .MODEL as well) should be used (referenced) for simulation. The actual file (.LIB) that contains that model (.SUBCKT/.MODEL) can be anywhere, as long as you tell the tool the path to it. That is done in the configuration known as simulation profile.

    I would have designed the program the same way. In my research before I started this thread, I found some out-of-date instructions from TI where the author talked about needing to use punch cards to "type" circuits into a mainframe for analysis.  The GUI is just a less error-prone way to assemble those same net lists because you can visually check if that is how you wanted those parts to be connected.

    And how you describe referencing is known in the programming worlds by many names: dynamic linking, late binding, just-in-time compiling.  Clearly the arrangements of symbols (or text-based circuit descriptions) MUST be converted into a form of "program" for the simulator to run. It would only gather and connect the components that match the objects created as input.  While this did not answer my primary question, it was informative.

    JC Zhu - Simulation with PSpice said:

    Here are some comments to your questions:

    1) How do I update a common default library with a list of the components I want to always have available to any of my projects?

    You will need to manage that yourself. As mentioned, LIB and OLB can be anywhere.

    This is where you completely missed the mark. I know I can put those files into any folder I want. I know that I can link/reference/load/import (whatever the menu says) valid files from that or any other folder so that I have a part to work with (a symbol,  a set of termination points, and an electrical behavoir routine to use to analyze a circuit containing this thing).   However, that is just one additional part for that one project or schematic.

    That is a pain in the A**. 

    Just like in programming, I would like to assemble a set of my own routines and tell my compiler that every time I start this compiler to include a reference to those routines. In this case PSpice is compiling the code defined by the schematic and its routines are the individual parts. Just like in programming, the language comes with a set of "default" libraries and functions I can use. PSpice has its native generic parts and an extra library of parts from TI.  These are identified and displayed each time the program starts up. These lists are essentially "permanent" within PSpice.

    I am asking for a description of what I need to do so that I can assemble a tool chest of my own components (parts) that sit in a list that is always available to any project I may start WITHOUT the need to individually change each project to include this list as a reference. This custom list that I build would be as "default" as the parts already in the system.  If my list is listed in the parts picker, too, that would be a bonus. If I can make a hierarchical list (like that of the parts locator) even better.

    How do I get PSpice for TI to add my custom list to the installed lists each time it starts up?

    [Bonus points] If my custom list ONLY consisted of TI components, those components should come with their own .libsig files so that they are recognized as additional "native" components for this build of PSpice for TI. That way it does not invoke the "only 3 points of monitoring" limitation. Maybe y'all should be talking with Cadence about how to do that?

    JC Zhu - Simulation with PSpice said:

    2) What's the shortcut method to importing a set of {lib,olb} files that I can download and unzip individually into the PSpice_TI so that they are as integrated as the pre-loaded components for my setup?

    What you really "importing" is a SUBCKT (which you start by specifying the LIB file it is in) and what you get is an OLB file that contain a symbol that will call for that SUBCKT. You still need to reference the LIB file at simulation run time (the model definition is not "imported"). There isn't a way to insert symbols to the categories. TI is managing that hierarchy (which mirrors the ti.com product hierarchy) so users don't have to.

    I sounds as if I should compare an OLB to a pyc or jar file (for python or java respectively) or a dll (for windows) or .so files (for linux)  or an obj (for .NET programs). it's sounds like a compiled or semi-compiled  version of the lib file.  Would that be a fair comparison?

    If you think the list in the tool matches what ti.com has online, you haven't explored your own site enough.  Yes, the organization of the parts (the tree's shape) is similar but you are missing a lot of leaves from the tree that you load into PSpice.. Even if I considered that you might want to limit what you publish with PSpice for TI to only your "active" products, it's still missing a LOT of parts.

    JC Zhu - Simulation with PSpice said:

    3) What are the purposes of  the other files in your pspice package? 

    We've covered the LIB and OLB, DSN is the schematics, and OPJ is the index/map that tells the tool where everything is in the project. The path called "THS4551_PSPICE-PSpiceFiles\Schematic1" is all simulation files for schematic1 (the DSN can have more than 1 schematic), in there you will see "AC_Sweep", a folder by the name of the simulation profile (a configuration consisting of what analysis to run, where the LIB file is, etc) in which you see all the simulation files for that particular simulation profile (each schematic can have more than 1 simulation profile).

    Hope this extremely short description will help you get started.

    Attached is the THS4551 model. The one you downloaded from the product folder has a small problem n the simulation profile.

    While the .lib and .olb files were the same, the .net file was quite different. I'll use this newer package. Thank you.

    Warmest regards,

    Shawn

  • Hi Shawn,

    Would you mind sharing the out-of-date instructions that talks about punch cards if you still have the link? I want to see if that is still relevant today.

    When it comes to having your own library, there are 2 things to consider. First, making symbols available to your schematic. Click "Place", "Part". This will bring up a panel in which you can browse and add symbol library (OLB files):

    You can copy the symbols of components you use frequently into a single OLB file.

    The second thing is the model (LIB file). This is specified in the simulation profile. You may have a number of LIB files for models you use often. Usually you add only what you are using for a particular schematic in the simulation profile. Nevertheless, you can create a single .LIB file and include that in every simulation profile if you want. This master LIB file just contains pointers to the individual LIB files in your collection. An example is C:\Cadence\PSpiceTI\tools\pspice\library\nom.lib.

    I need to check if there is a way to automatically include your customized OLB and LIB file at start up.

    [Bonus points] Models being published to ti.com today are being added to PSpice for TI as well, both contain the libsig file. Most models on ti.com today do not contain that file but they will be added.

    Now, at the time of simulation, your schematic is processed to generate a text representation of your design (the .NET file in folder SCHEMATIC-?, see the example below). A .CIR file is also created (in folder SIM_PROFILE-??) which contains information from the simulation profile, such as the model library to be included. It also calls the .NET file that represents the circuit. The simulator  reads and expands the .CIR file.

    +PROJECT_PSpiceFiles
    |+SCHEMATIC-1
    ||+SIM_PROFILE-11
    ||-SIM_PROFILE-12
    |
    |+SCHEMATIC-2
     |+SIM_PROFILE-21
     |-SIM_PROFILE-22

    So, I would not compare the OLB with a software library, at least not all by itself. The symbols in OLB only provide the pin definition and the name of the model (SUBCKT in a LIB file). Maybe you can look at it like an abstract method (pins ~ arguments, name of SUBCKT ~ name of method), just that you don't need to implement it yourself, the implementation is in the LIB files.

    The tool contains about 70% of all PSpice models on ti.com and that number is not uniform so there're leaves and possibly branches missing. While we intend to grow the coverage over time, the best approach to get models added is through our field team.

    Hope this helps.

    Regards,
    JC

  • Hi JC,

    JC Zhu - Simulation with PSpice said:

    Hi Shawn,

    Would you mind sharing the out-of-date instructions that talks about punch cards if you still have the link? I want to see if that is still relevant today.

    Here is that link. The author (Bruce)  is remembering how things worked when spice modeling was performed on mainframes. The quote is from the second paragraph of section 1 (emphasis mine):

    [edit:  I forgot to past the link]  https://www.ti.com/lit/an/sloa070/sloa070.pdf

    Unfortunately, the world has long since progressed beyond ASCII text entry Spice. The author remembers college classes where Spice was implemented on a mainframe. The schematic was reduced to numbered nodes, and each connection was painstakingly typed onto a punch card. Years later, the schematic was typed into an ASCII .cir file and PSpice was run from DOS, the resulting table of results seemed almost magical.

    JC Zhu - Simulation with PSpice said:

    When it comes to having your own library, there are 2 things to consider. First, making symbols available to your schematic. Click "Place", "Part". This will bring up a panel in which you can browse and add symbol library (OLB files): ...snip ...

    You can copy the symbols of components you use frequently into a single OLB file.

    The second thing is the model (LIB file). This is specified in the simulation profile. You may have a number of LIB files for models you use often. Usually you add only what you are using for a particular schematic in the simulation profile. Nevertheless, you can create a single .LIB file and include that in every simulation profile if you want. This master LIB file just contains pointers to the individual LIB files in your collection. An example is C:\Cadence\PSpiceTI\tools\pspice\library\nom.lib.

    Is the "nom" name a suggestion (convention) or must this "library of libraries" file that I would build have that name in whichever path I decide it should live?

    JC Zhu - Simulation with PSpice said:

    I need to check if there is a way to automatically include your customized OLB and LIB file at start up.

    [Bonus points] Models being published to ti.com today are being added to PSpice for TI as well, both contain the libsig file. Most models on ti.com today do not contain that file but they will be added.

    Thank you for both of those things.

    JC Zhu - Simulation with PSpice said:

    Now, at the time of simulation, your schematic is processed to generate a text representation of your design (the .NET file in folder SCHEMATIC-?, see the example below). A .CIR file is also created (in folder SIM_PROFILE-??) which contains information from the simulation profile, such as the model library to be included. It also calls the .NET file that represents the circuit. The simulator  reads and expands the .CIR file.

    +PROJECT_PSpiceFiles
    |+SCHEMATIC-1
    ||+SIM_PROFILE-11
    ||-SIM_PROFILE-12
    |
    |+SCHEMATIC-2
     |+SIM_PROFILE-21
     |-SIM_PROFILE-22

    So, I would not compare the OLB with a software library, at least not all by itself. The symbols in OLB only provide the pin definition and the name of the model (SUBCKT in a LIB file). Maybe you can look at it like an abstract method (pins ~ arguments, name of SUBCKT ~ name of method), just that you don't need to implement it yourself, the implementation is in the LIB files.

    The tool contains about 70% of all PSpice models on ti.com and that number is not uniform so there're leaves and possibly branches missing. While we intend to grow the coverage over time, the best approach to get models added is through our field team.

    Hope this helps.

    Regards,
    JC

    Yes, thank you for working through the details.  I'm starting to understand how all the parts knit together and where the "edges" of its capabilities are. Once I learn those, I should stop expecting the tool to do things it wasn't designed to do and develop usage patterns to compensate for those shortfalls.

    Yours,

    Shawn