XDM Spectre `inline` Keyword

64 views
Skip to first unread message

Dan Fritchman

unread,
Mar 3, 2022, 5:34:06 PM3/3/22
to xyce-users
Greetings,

We appear to see the XDM netlist translator misinterpreting the Spectre-language `inline` keyword as an identifier. 

Minimized demo example: 

```
# cat demo.scs

// Demo of `NameConflictException` for Spectre keyword `inline`

simulator lang = spice
.option scale=1.0u

simulator lang = spectre

inline subckt empty1 (a b c d)
// an empty inline subcircuit
ends empty1

inline subckt empty2 (e f g h)
// a second empty inline subcircuit fails
ends empty2
```

Generates:

```
xdm.exceptions.NameConflictException.NameConflictException: Inline has already been used in this scope
```

(This demo-case was generated by a (dramatically) pared-down set of commercial device models.) This "inline" is a spectre-language keyword, which basically means "do not make an additional layer of design hierarchy for instances of this sub-circuit". 

Note this continues to fail - but not in the same way - if the `simulator lang=spice` and `.option` lines are removed. 

Running on CentOS 7 Linux, from the pre-built XDM binary. Version xdm 2.4.0 (2021-10-20 21:10:25). 

Regards,
Dan



xyce-users

unread,
Mar 16, 2022, 11:53:21 AM3/16/22
to xyce-users
Thanks for the input and for the example input that causes the problem. That helps us a great deal is finding a solution. Were you able to find a set changes for the above example that work?

We'll take a look and work to get a fix in for XDM. Spectre support isn't as mature as PSpice and Hspice so input like this from users is big help in identifying areas of improvement.

Thanks!

gjtemp...@gmail.com

unread,
Apr 6, 2022, 8:54:53 PM4/6/22
to xyce-users
The example you sent illustrates a limitation of XDM where it can only switch languages once in a Spectre file. If you move the spice portion to the end of the file and remove the "simulator lang = spectre" line, XDM should be able to translate your example with "xdm_bdl -s spectre <input file>".

Is this something you are able to do with your original Spectre files?

Reply all
Reply to author
Forward
0 new messages