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

SystemVerilog Binding on SPICE

Spectre AMS Designer supports the SV bind statement that enables you to specify one or more instantiations of a module without modifying the code of the target. For example, you can use the SV bind statement at SPICE level to access the SPICE nodes and perform verification, such as adding assertion on them. For example:

//cell target

bind analog_top inc #(param_list) xinc (port map);

// instance target
bind top.i1 inc #(param_list) xinc (port map);

You can use the SV bind statement in a cell or instance specification.

In the above example, if cell analog_top or instance top.i1 is a SPICE subcircuit that is configured through the amsd control block, it triggers SV binding on SPICE.

SV binding targets the top-level SPICE instance block as well as any other instance within the scope of the hierarchy of the top-level SPICE instance block; however, there is a restriction to targeting SPICE instances below the top-level SPICE instance block. You need to ensure that the SPICE subcircuit that is instantiated within the top-level SPICE hierarchy is also instantiated in the digital instance. For example:

// Here, top.ana_top_inst of subckt ana_top is verilog-spice boundary;
ana_top_level2 is an instance inside ana_top

bind top.ana_top_inst.ana_top_level2_inst inc #(param_list) xinc (port map);

//analog.scs
.subckt ana_top
ana_top_level2_inst ana_top_level2 a b
.endckt

//amscf.scs

amsd{
portmap subckt=ana_top
config cell=ana_top use=spice
portmap subckt=ana_top_level2 //This is required
config cell=ana_top use=spice //This is required
}

SV bind statement does not support the dot star (.*) notation.

You can ignore the SV bind statements on SPICE blocks by using the xrun option ‑ignore_svbind_spice.

Related Topics



 ⠀
X