Problems using PSPICE subckt in simulation.

Hello. I'm new to PSPICE (Orcad 10) and am having trouble with invalid expressions in subckts. As part of the .out file it says "Error - missing or invalid expression" and points to V(0#) where the 0# is node in the original .subckt file. Why is the original node "V(IN)" lost?

I didn't create the original subckt but used a conversion program to convert an IBIS model to SPICE that created many subcircuits and models.

Thanks in advance for any guidance!

*** EXPANSION OF SUBCIRCUIT X_U2 **** X_U2.C_COMP X_U2.DIE 0 3e-012 X_U2.R_COMP X_U2.DIE 0 1e+012 X_U2.G1 X_U2.DIE 0 VALUE {(V(IPD)*V(XVKDR.VKDR)*((V(0#)>=2.02)*(V(1#)>=2.02))+V(
  • IPD)*V(XVKDF.VKDF)*(((V(0#)>=2.02)*(V(1#)>=2.02)==0)))}

-------------------------$ ERROR -- Missing or invalid expression X_U2.G2 X_U2.DIE VCC0 VALUE {(V(IPU)*V(XVKUR.VKUR)*((V(0#)>=2.02)*(V(1#)>=2.02))+V(

  • IPU)*V(XVKUF.VKUF)*(((V(0#)>=2.02)*(V(1#)>=2.02)==0)))}

----------------------------$ ERROR -- Missing or invalid expression

In the original

The original from the library looks likes this:

..SUBCKT SDRDAT_A16_MAXVCC IN EN OUT VCC VEE C_COMP DIE VEE 3.3e-012 R_COMP DIE VEE 1e+012 G1 DIE VEE VALUE = {(V(IPD)*V(XVKDR.VKDR)*((V(IN)>=2.02)*(V(EN)>=2.02))+V(IPD)*V(XVKDF.VKDF)*(((V(IN)>=2.02)*(V(EN)>=2.02)==0)))} G2 DIE VCC VALUE = {(V(IPU)*V(XVKUR.VKUR)*((V(IN)>=2.02)*(V(EN)>=2.02))+V(IPU)*V(XVKUF.VKUF)*(((V(IN)>=2.02)*(V(EN)>=2.02)==0)))}

The schematic netlist is pretty simple with just the subcircuit and power supply.

**** INCLUDING SCHEMATIC1.net ****
  • source IMPORTTRY V_V1 VCC0 0 3.3Vdc X_U2 IN0 EN0 OUT0 VCC0 0 SDRDAT_A16_TYPVCC V_VIN IN0 0 0Vdc V_V2 EN0 0 2.2Vdc R_R1 0 OUT0 50
Reply to
psfguard-ng
Loading thread data ...

That looks like the Micro-Cap IBIS conversion. I tried using the Micro-Cap IBIS converter and running it on PSpice. It looks like there are two things that PSpice is unable to handle:

1) PSpice limits the relational operators (>=, ==, etc) to only within an IF statement for some reason. 2) I don't think PSpice has the capability to handle the NOBRKPNTS TRIGGER={((V(IN)>=2.02)*(V(EN)>=2.02))==0} commands for the PWL source (present at least in the model I created).

You can probably rework the G dependent source equations to use the If statement but I don't know if you can do anything about the PWL commands.

snipped-for-privacy@yahoo.com wrote:

Reply to
engr4fun

...Jim Thompson

--
|  James E.Thompson, P.E.                           |    mens     |
|  Analog Innovations, Inc.                         |     et      |
|  Analog/Mixed-Signal ASIC\'s and Discrete Systems  |    manus    |
|  Phoenix, Arizona            Voice:(480)460-2350  |             |
|  E-mail Address at Website     Fax:(480)460-2142  |  Brass Rat  |
|       http://www.analog-innovations.com           |    1962     |
             
I love to cook with wine.      Sometimes I even put it in the food.
Reply to
Jim Thompson

[snip]

PSpice uses MAX, MIN and LIMIT to get these functions.

I also noted some node names in the subcircuit declaration did not occur in the component listing.

...Jim Thompson

--
|  James E.Thompson, P.E.                           |    mens     |
|  Analog Innovations, Inc.                         |     et      |
|  Analog/Mixed-Signal ASIC\'s and Discrete Systems  |    manus    |
|  Phoenix, Arizona            Voice:(480)460-2350  |             |
|  E-mail Address at Website     Fax:(480)460-2142  |  Brass Rat  |
|       http://www.analog-innovations.com           |    1962     |
             
I love to cook with wine.      Sometimes I even put it in the food.
Reply to
Jim Thompson

{(V(IPD)*V(XVKDR.VKDR)*((V(IN)>=2.02)*(V(EN)>=2.02))+V(IPD)*V(XVKDF.VKDF)*(((V(IN)>=2.02)*(V(EN)>=2.02)==0)))}

{(V(IPU)*V(XVKUR.VKUR)*((V(IN)>=2.02)*(V(EN)>=2.02))+V(IPU)*V(XVKUF.VKUF)*(((V(IN)>=2.02)*(V(EN)>=2.02)==0)))}

When the Gvalue is continued on the next line, there needs to be a + sign at the beginning to indicat continuation. It isn't there, so the simulator thinks that is a different statement, which of course has invalid syntax.

As for whether it will work after that, I am not sure... 8-)

--
Charlie
--
Edmondson Engineering
Unique Solutions to Unusual Problems
Reply to
Charles Edmondson

You are correct in that I used MicroCap 8 to convert the IBIS to SPICE. I didn't show it in my initial post but like you mentioned I also had an error where it didn't like the NOBRKPNTS statement in the PWL source.

So even if I can rework the G dependent sources it lookes like I'm out of luck in terms of getting the PWL statements to work..

Reply to
psfguard-ng

You don't know how to run an editor ?:-) I recommend UltraEdit as a very versatile program with good search and replace capability.

...Jim Thompson

--
|  James E.Thompson, P.E.                           |    mens     |
|  Analog Innovations, Inc.                         |     et      |
|  Analog/Mixed-Signal ASIC\'s and Discrete Systems  |    manus    |
|  Phoenix, Arizona            Voice:(480)460-2350  |             |
|  E-mail Address at Website     Fax:(480)460-2142  |  Brass Rat  |
|       http://www.analog-innovations.com           |    1962     |
             
I love to cook with wine.      Sometimes I even put it in the food.
Reply to
Jim Thompson

I don't have the latest PSpice, but if the newest one doesn't support at least the Trigger statement for the PWL, then you probably would be out of luck. From what I can understand of it, the Trigger statement waits till its expression is True and then starts the PWL defined waveform. Therefore it looks crucial to the IBIS operation whereas the NOBRKPNTS you could probably get away with just deleting. I don't know if PSpice has an equivalent. Also not sure if the Trigger syntax is unique to Micro-Cap or also available in other simulators. I can see its usefulness for IBIS though.

Reply to
engr4fun

In PSpice:

STP(TIME-100u) = 0 for TIME < 100us, 1 for TIME >= 100us

...Jim Thompson

--
|  James E.Thompson, P.E.                           |    mens     |
|  Analog Innovations, Inc.                         |     et      |
|  Analog/Mixed-Signal ASIC\'s and Discrete Systems  |    manus    |
|  Phoenix, Arizona            Voice:(480)460-2350  |             |
|  E-mail Address at Website     Fax:(480)460-2142  |  Brass Rat  |
|       http://www.analog-innovations.com           |    1962     |
             
I love to cook with wine.      Sometimes I even put it in the food.
Reply to
Jim Thompson

ElectronDepot website is not affiliated with any of the manufacturers or service providers discussed here. All logos and trade names are the property of their respective owners.