0
\$\begingroup\$

I downloaded the .lib Spice library for the MAX4172 and imported it into OrCad, available from: https://www.maximintegrated.com/en/products/analog/amplifiers/MAX4172.html/tb_tab2

The library file looks right and I compiled it into a .olb file for Cadence. However, when I come to simulate it, I see this error:

**** EXPANSION OF SUBCIRCUIT X_U2 ****

X_U2.R+ +24V X_U2.ib+ 1g
X_U2.R- N371295 X_U2.ib- 1g
X_U2.Vi+ X_U2.ib+ 0 0
X_U2.Vi- X_U2.ib- 0 0
X_U2.Fi+ +24V 0 VALUE

----------------$

ERROR(ORPSIM-16037): The syntax used for F or H devices is incorrect. 
The specified syntax is only for E and G devices. Correct the syntax 
and save the file before simulating the design again.
+ {-I(Vi+)+27u}

X_U2.Fi- N371295 0 VALUE

-------------------$

ERROR(ORPSIM-16037): The syntax used for F or H devices is incorrect. 
The specified syntax is only for E and G devices. Correct the syntax 
and save the file before simulating the design again.

I've never seen the error 'Syntax used for F or H devices is incorrect' before, and I can't find any reference to it online. I tried making the change suggested, but that doesn't solve anything. I can only assume there must be an error in how the .lib file has been configured.

Is there a way of modifying the Spice model to solve this error?

I'm using OrCAD Capture ver 17.2-2016, if that helps.

Thanks in advance.

\$\endgroup\$
1

1 Answer 1

0
\$\begingroup\$

The error seems to indicate that the syntax given is not supported for F and H devices. By that it most likely means the syntax

F??? A B VALUE={expression}
H??? A B VALUE={expression}

This doesn't really matter though, because these statements would have been equivalent to G and E statements if they were implemented:

So just swap the F and H sources by G and E sources respectively (just the first character would be sufficient), and it should give you the same results.

Disclaimer: I don't have access to PSpice myself so I can't test it for you.

\$\endgroup\$
1
  • \$\begingroup\$ Thanks. I tried changing the F and H sources, and that got it to compile. However, when testing it in circuit, the simulation didn't give the right output and current sense output value wasn't scaled properly. After a bit more fiddling, I eventually did get it to work by changing all the 'VALUE={expression} to equivalent 'POLY()' expressions (i.e. changing "VALUE={-I(Vi+)+27u}" to "POLY(1) Vi+ 27u -1"). It was a bit fiddly, but the component is now working. I'm still confused about why it didn't like the VALUE expressions, though. \$\endgroup\$
    – user206398
    Dec 6, 2018 at 9:06

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge that you have read and understand our privacy policy and code of conduct.