6.0 Model Requirements

To download the examples for Module 6, click Module_6_Examples.zip

Before starting into creating high-level models, consider the following points.

Model Scope

One of the very first model requirements is the scope of the model. Taking time to sit down and consider the following key aspects will richly reward you by saving time when actually creating the model.

  • Define the intended audience - what are the expectations?
  • Model complexity - define what behavior will be covered by the model, and what behavior is outside the model design.
  • Delivery method - will the model be delivered in hierarchical form or as symbol and model libraries?
  • Does the model contain sensitive IP? If so, you will want to distribute the model as encrypted ASCII text.
  • What parameters are required, and what kind of parameter editing dialog is desired.
  • Will this model be compatible with POP and therefore AC analysis?

Divide and Conquer

Once you have a good idea what the model scope is, you should start thinking about what functional blocks are required. Some points to consider:

  • Think about reusing key technology blocks. For example, if you need a rising edge time delay block in one major functional block, you will probably need that same block in another major block. Creating the rising edge time delay block as an independent subcircuit will allow you to reuse the same subcircuit in multiple hierarchy levels. Passing the time delay as a parameter will allow you to use a single subcircuit for all rising edge time delays.
  • Exploit parameterization. This will allow you to custom configure reusable technology blocks.
  • Consider if you need to use multi-level modeling techniques to create a model which has multiple schematic views for multiple test objectives. Using multi-level modeling, you can create models which are speed-optimized for different test objectives.

Define PASS/FAIL Simulation Testbenches for Each Block

Think about how to verify a particular technology block meets the design requirements. Time and time again users build high level models without thoroughly testing the lowest level functional blocks. Spending time testing the low level blocks will pay you back when those blocks are assembled into large models.