ADMS CMI Project: - PowerPoint PPT Presentation

About This Presentation
Title:

ADMS CMI Project:

Description:

For example, support of voltage contributions and time integral operator makes ... M-factor (number of instances used in parallel) Analog function (before we ... – PowerPoint PPT presentation

Number of Views:141
Avg rating:3.0/5.0
Slides: 19
Provided by: mos80
Learn more at: https://www.mos-ak.org
Category:
Tags: adms | cmi | keys | project

less

Transcript and Presenter's Notes

Title: ADMS CMI Project:


1
  • ADMS CMI Project
  • Extensions and
  • Spectre/UltraSim Benchmarking
  • Sergey Sukharev

09/22/06 Montreux
2
  • Abstract

This paper presents an approach to implement at
the CMI/XML level most of the critical features -
required by external customers - to implement
device models in Spectre and UltraSim. Also some
interesting data from Spectre and UltraSim with
ADMS device models and benchmarks presented
here. There is no need to change the ADMS
software. Changes are done on the common
properties shared by all simulators instead. The
translation is specified using XML scripts
therefore Cadence intellectual property is
safe. Better support of the latest Verilog-A LRM
(Language Reference Manual) is important. For
example, support of voltage contributions and
time integral operator makes possible the
translation of more complex device models such as
HICUM and PSP, which are now CMC standard models.
3
  • ADMS CMI project status
  • Support Verilog-A compact models until
    SpectreVerilog-A performance has been improved.
  • Add only critical features on customer demand
    basis.
  • Supporting/Consulting on Verilog-A compact model
    requirements common to ADMS and SpectreVerilog-A
  • We have interesting results to show on the ADMS
    performances using Spectre and UltraSim!!

4
  • Customers / Verilog-A Device Model Developers
  • EKV LDMOS (European project RobusPIC)
    implemented.
  • EKV 3.0 planned.
  • HiCUM level 0 implemented, level 2 being
    implemented by developers.
  • Philips models (PSP NQS Charge) supported.
  • SONY RPI TFT Works well in Spectre and UltraSim.
  • Freescale MICA models (moscap3, rbody)
    implemented.

5
  • Most of the critical functionality added to
    ADMS/CMI
  • NQS support (hidden state)
  • Limexp (for Spectre and UltraSim)
  • simparam() (for gdev, gmin, )
  • analysis() (tran, ac, dc, static)
  • M-factor (number of instances used in parallel)
  • Analog function (before we had to use macros)
  • Voltage contribution ( V(p,n) lt complex
    expression )
  • Branch alias in the contrib statement (V(branch)
    lt expression)
  • string parameter type. (for n/p type
    mosfet)
  • Compare/CopyState for UltraSim (requested by
    Sony)
  • Switch branch (for parasitic resistors, including
    node collapsing) implementation in progress
  • ddx( ) for table model output parameters in
    progress
  • idt( ) (Needed by PSP NQS Charges)

6
  • Shifting to common Verilog-A projects
  • Performance evaluation in Spectre and UltraSim
    using
  • admsbsim3v3 device model.
  • Make sure partitioning works
  • Improve convergence in Spectre when gdev is not
    specified.
  • Algorithm for switch-branch/node collapsing.

7
  • Performance evaluation in Spectre
  • 5 tests from CircuitSim90 benchmark suite using
    bsim3v3 model
  • Built-in vs. ADMS CMI vs. Spectre Verilog-A
    interpreter
  • Platform Solaris and Linux
  • C language Compilers
  • Sun WorkShop v8, CFLAGS -xO5
  • Linux gcc, CFLAGS O3 ffast_math
  • Added gdev to bsim3v3 Verilog-A model for
    better DC convergence. ( can also use
    gmethodnode)
  • ADMS matched built-in performance in Spectre!!
  • 0.8x 1.2x

8
  • sram ( 1,008 transistors 2,373 equations )

Linux ADMS/Built-in CPU time ratio 0.92
Solaris ADMS/Built-in CPU time ratio 0.8
9
  • sqrt ( 1,188 transistors 2,900 equations )

Linux ADMS/Built-in CPU time ratio 1.0
Solaris ADMS/Built-in CPU time ratio 0.9
10
  • add32 ( 1,984 transistors 5,092 equations )

Linux ADMS/Built-in CPU time ratio 1.1
Solaris ADMS/Built-in CPU time ratio 0.89
11
  • mem_plus ( 7,454 transistors 17,788 equations )

Linux ADMS/Built-in CPU time ratio 1.18
Solaris ADMS/Built-in CPU time ratio 1.03
12
  • ram2k ( 13,880 transistors 32,632 equations )

Linux ADMS CPU time ratio 1.2
Solaris ADMS CPU time ratio 1.02
13
  • Performance evaluation in UltraSim
  • The same benchmarks and the same ADMS CMI device
    model code as in Spectre was used.
  • Matched performance without table models (
    Partitioning works!! )
  • Built-in is faster because of table models.
  • Investigating generic table model.
  • Fixing bugs in UltraSim, enhancing ADMS CMI to
    support interface
  • Enhancing ADMS CMI to support ddx(..) to
    generate output parameters for representative
    models.

14
  • add32 ( 1,984 transistors 5,092 equations )

Linux ADMS/Built-in CPU time ratio 1.2
ram2k ( 13,880 transistors 32,632 equations )
Linux ADMS/Built-in CPU time ratio 1.7
15
  • sqrt ( 1,188 transistors 2,900 equations )

Linux ADMS/Built-in CPU time ratio 0.8
sram ( 1,008 transistors 2,373 equations )
Linux ADMS/Built-in CPU time ratio 1.7
16
  • mem_plus ( 7,454 transistors 17,788 equations )

Linux ADMS/Built-in CPU time ratio 1.09
17
  • Keys to success and future work
  • Pre-compute Model/Instance constants in
    initialization stage
  • Share model parameters and model constants.
  • Generate C-code that reflects the handwritten
    Verilog-A equations in the module.
  • Dont generate what is never used in the module.
  • Use the highest possible compiler optimization
    flags.
  • ADMS CMI code was sensitive to -xO5, built-in
    code was not.
  • Future work
  • to develop algorithm to handle switch-branch
    including collapse node
  • to create algorithm to support ddx(..)
    operator.

18
  • Thanks for attention
Write a Comment
User Comments (0)
About PowerShow.com