Introduction
Pre-silicon functional verification of large System-on-Chip (SoC) designs can be quite challenging. High functional coverage depends on a systematic and hierarchical approach where extensive functional verification is carried out at both the module-level and at SoC-level.
Functional verification at module-level generally requires reasonably accurate transient behaviour, necessitating the use of Spice, and for large complex modules a combination of Spice and AMS, or purely AMS models. Even with the use of models, relatively slow simulation times may limit functional coverage at this level.
For functional verification at SoC-level, Real Valued modeling (RVM) combined with analog wires (eg FMS-DE) is fast and highly effective in the detection of connectivity errors, configuration errors, and unexpected inter-module behavioral dependencies. Detailed Spice/AMS models cannot be used at SoC level, at least not for complex modules, due to unacceptably slow simulation times.
The use of two sets of models, RVM at SoC-level, and Spice/AMS at module level, is obviously not ideal. It results in significant additional development and maintenance costs, as well as the need for different skill sets, and usually a longer verification period and delayed tape-out. Furthermore, slow models / simulation at module level may result in lower than desired functional coverage.
The goal of FMS-MS is to enable one set of detailed module-level models to be easily re-used at SoC level with acceptable simulation times, thus removing the need for two sets of models and the associated cost. Faster models also allow increased module-level functional coverage.
Overview of FMS-MS
FMS-MS provides a set of familiar Spice-like analog components (including behavioral sources), AMS-like functions/filters (eg ‘cross’, ‘transition’), and Discrete Electrical (DE) analog wires and components, to enable the creation of fast efficient detailed behavioral models at module-level and below. FMS-MS also provides a unique partitioned circuit mixed signal solver to solve the resulting system of models.
The unique mixed signal solver achieves high simulation speed primarily using the following mechanisms:
instead of solving the analog portion of an SoC as one single circuit, the SoC is partitioned into smaller largely independent circuits which are solved separately as part of a loosely coupled system
algorithms exploiting repetition in circuits (Switch Mode Power Supply (SMPS) instances are a good example)
FMS-MS components/functions/filters are provided in the form of SystemVerilog modules. The mixed signal solver and other functionality is provided in the form of a VPI shared library which is compatible with a number of SystemVerilog digital simulators.
Circuit Independence and Partitioning
It is easy to understand why partitioning is effective if we recognise the relative independence of module instances within an SoC, and their differing requirements in terms of solutions per unit time based on their differing stimulus and different components. When instances are largely independent, then re-solving the entire system each time one instance needs re-solving is clearly inefficient.