Product Documentation
Spectre AMS Designer and Xcelium Simulator Mixed-Signal User Guide
Product Version 22.09, September 2022

Incremental Elaboration in Low-Power Mixed-Signal Designs

You can enable incremental elaboration in low-power mixed-signal designs with SV-RNM datatypes. For example:

xrun  tb.sv top.sv -primtop top -lps_ams_connect_supply -lps_ams_sim -lps_1801 dut.upf

Currently, SVRNM power-intent is supported only in the primary partition as illustrated in the following figure. This means that the modules for which power intent is defined in the UPF file should always be in the primary partition and there must always be a top module before the module that has power-intent specified in UPF file.

Power intent inside primary can include the followings low-power mixed-signal features:

The following are the limitations of enabling incremental elaboration in low-power mixed-signal designs:

The following is an example of a low-power mixed-signal design with SV-RNM datatypes. The module, top_wrapper has power intent for this module defined in the UPF file. And, top_wrapper module is instantiated in the module tb. Module top_wrapper is specified as the primary partition and module tb must be in the incremental partition.

#####tb.sv#####
module tb ();
    top_wrapper top_wrapper ();
 endmodule

 module top_wrapper ();
     top top ();
 endmodule

######top.sv#########

`timescale 1ns / 100ps
import EE_pkg::*;
module top ();

 initial begin
    #200
      $supply_on("VDD", 1.0);
      $supply_on("VSS", 0.0);
    #200
      $supply_off("VDD");
      $supply_off("VSS");
  end

  drvr idrvr ();
  load iload ();
endmodule

module drvr (vdd, vss);
   output vdd, vss;
   EEnet vdd, vss;
   real  v1, v2, r;

   initial begin
    v1 = 0.0;
    v2 = 0.0;
    r = 10000000;

    #100 v1 = 1.8;
         r = 200;
    #200 v1 = 1.5;
    #200 v1 = 0.0;
         r = 10000000;
    #100 $finish();
   end 

   assign vdd = '{V:v1, I:`wrealZState, R:r};
   assign vss = '{V:v2, I:`wrealZState, R:r};
endmodule

module load (vdd, vss);
   input vdd, vss;
   EEnet vdd, vss;
   EEnet evdd, evss;
   assign evdd = vdd;
   assign evss = vss;
endmodule

---------wrapper.upf----------------
upf_version 2.0
set_design_top tb/top_wrapper -testbench
set_design_top top
set_scope
create_supply_net VDD
create_supply_net VSS
create_supply_set SSD -function {power VDD}  -function {ground VSS}
create_power_domain PDD -supply {primary SSD} -include_scope
connect_supply_net VDD -ports {idrvr/vdd}
connect_supply_net VSS -ports {idrvr/vss}
connect_supply_net VDD -ports {iload/vdd}
connect_supply_net VSS -ports {iload/vss}

----------command line---------------

xrun -clean $CDS_INST_DIR/tools/affirma_ams/etc/lpms/UPF_EEnet.svams tb.sv top.sv -access rwc -timescale 1ns/100ps -auto_config_svams_ie -lps_1801 wrapper.upf -lps_ams_connect_supply -lps_ams_sim -lps_ams_supply_ie -lps_dut_top top_wrapper/top -primtop top_wrapper -dms_rnm_upf_dss -rnm_dmsie_msie -svams_2019

Related Topic



 ⠀
X