You are on page 1of 17

Application Note

Memory Modeling - Apache Virtual Model


(AVM)
VERSION:1.2-EL-02OCT2015

Table of Contents
1. Introduction .............................................................................................................................................. 2
2. AVM Configuration File ............................................................................................................................. 3
2.1. Explanation of AVM power-related parameters............................................................................... 3
2.2. Basic AVM configuration file ............................................................................................................. 3
2.3. Multi-state AVM configuration file ................................................................................................... 7
2.4. Integrated AVM with functional and rush-current modes ............................................................... 8
3. AVM Validation ....................................................................................................................................... 10
3.1. Validating the content of the AVM config ...................................................................................... 10
3.2. Validation of AVM models inside RedHawk.................................................................................... 11
4. Using AVM in RedHawk .......................................................................................................................... 15
5. LIB2AVM flow for RedHawk .................................................................................................................... 15
5.1. Generating AVM standalone from LIB ............................................................................................ 15

© 2016 ANSYS Inc. Page 1


1. Introduction

The Apache Virtual Models (AVM) is a data-sheet based approach for generating current profile for
memories for RedHawk Static/Dynamic voltage drop analysis. AVM configuration file contains power
and timing related information for memories/IPs which is used by RedHawk to construct a current profile
and capacitance.

AVM is one of the several approaches for modelling the electrical current and capacitance of a memory.
The table below shows a brief description of the various modeling approaches (from least to best accuracy)
that can be used for memories for RedHawk analysis.

Approach Feature Typical design application

Liberty Triangular current profile Small/General purpose IOs


No ESR/ESC

AVM/lib2avm Current profile, cap based on Compiler memories


lib/data-sheet tables

Sim2iprof + Ace IP level current profile from Memories/IPs/IOs


spice char
Cap char through ace
Totem (cell_view) Xtor based spice char CAM/Complex IP blocks/IOs
Reduced distribution

Totem (mmx_view) Xtor based spice char Critical CAMS/RF/IPs


Xtor based distribution

AVM can use the timing and power information from .libs or use data-sheet information to generate current
waveforms. For memories, AVM can represent two triangular waveforms, the first smaller peak represents
address decode operation, and the second larger peak represents the read/write operation as shown in
Figure 1.

Figure-1: Sample AVM Current Waveform for memories

© 2016 ANSYS Inc. Page 2


2. AVM Configuration File

2.1. Explanation of AVM power-related parameters


The AVM model can represent the static power consumption and dynamic power consumption for a
memory. Static power (Ps) is simply the power dissipated due to the leakage of currents flowing from
Vdd to Vss and can be represented as

Ps = I_leak * Vdd

Dynamic power is the power associated with a devices switching. This power can be further sub-divided
into internal power consumption (Pi) and output load power consumption (Pload). The internal power
consumption is usually represented by an equivalent power dissipation capacitance, called Cpd, which is
captured in data-sheets or can be derived from libs. Similarly output load switching power can be
computed from the load capacitance Cload.

Pi = Cpd * F * Vdd^2
Pload = ½ * Cload * F * Vdd^2

2.2. Basic AVM configuration file


A Basic AVM config file supports only four modes of operation, viz WRITE (or high power), READ (or
low power), and 2 standby modes. Following table has required keywords for this:

AVM CONFIG: REQUIRED KEYWORDS:

KEYWORD Details SAMPLE SYNTAX


MEMORY_TYPE [ SRAM
|BLOCK If MEMORY_TYPE 'BLOCK' is specified, default MEMORY_TYPE RegFile
|DRAM |CAM |ROM |RegFile values for 'tsu', 'tr_q', 'tf_q'
| MSRAM |IP | BLOCK
| IO | MEMORY ] are 200 ps, and 'Cpd_standby' is set to 10 pF. The
default values for
'Cpd_read' and 'Cpd_write' are set to 20 pF;
If MEMORY_TYPE 'IO' is specified, a single
triangular shape is used as the
default;
If MEMORY_TYPE 'MEMORY' is specified,
internally the same as SRAM,
this is the generic type for lib2avm purpose;
EQUIV_GATE_COUNT <count> Specifies the equivalent gate count, which can be EQUIV_GATE_COUNT 6663
derived from the number of bit cells. For
example, a 512x70 memory
should be 35840 equivalent gates.
Cload External Load Capacitance, in Farads. Default is 100 f F Cload 2f
VDD_PIN <VDD_pin1> By default, VDD_PIN and GND_PIN are optional, and VDD_PIN VDDPR VDDP
<VDD_pin2>/ GND_PIN GND_PIN VSS1 VSS2
<GND_pin1> <GND_pin2>: their default values are VDD and GND respectively. If
the power and/or ground names are different or
multiples, you must specify these keywords. The Cpd
and decap must be specified per power pin. If there is a
single ground pin, the current profile of the ground pin
is the sum of all the Vdd pins. If there are multiple
grounds, the current profile is defined according to the
P/G arcs in custom lib

© 2016 ANSYS Inc. Page 3


C_decap <VDD_pin_m> Specifies decap values for all P/G pin arc C_decap {
<GND_pin_n> <C_decap- ARCn> combinations. <Volt_a1> and <Volt_b1> VDDPR VSS1 11.0022509561f
VDDP VSS2 11.0022509561f
represent different voltage corners for multiple }
nominal characterization, and
<vdd_pin_m> and <gnd_pin_n> represent the
vdd-vss arc of the capacitance
value specified.

VDD <voltage_value1> The voltage mentioned under VDD VDD 0.95 0.82 0.75 0.6
<voltage_value2> … <voltage_value1> <voltage_value2> will be
applied to all the VDD PIN Names. If user is
providing multiple voltage values and one set of
Cpd and Timing values , then the Cpd and Timing
values belong to <voltage_value1> and for other
voltage values like <voltage_value2>
<voltage_value3> etc , tool will automatically
derate the timing and Cpd values and create AVM
current waveforms.
VDD <voltage1_VDD_pin1> specifies voltage combinations for various VDD VDD 1.08 1.08 {
<voltage1_VDD_pin2> { pins. Timing and Cpd data will can be mentioned ck2q_delay 1537p
... tr_q 30.194p
} per voltage combination tf_q 27.621p
tsu 523.65p
Cpd_read {
...
}
Cpd_write {
...
}
Cpd_standby {
...
}
}
VDD 0.9 0.9 {
...
}

ck2q_delay Specifies clock-to-output pin delay (sec) for the ck2q_delay 1537p
associated VDD pin voltages for the specified
state.
tr_q Specifies output pin rising transition time (sec) for tr_q 30.194p
the associated VDD pin voltages for the specified
state
tf_q Specifies output pin falling transition time (sec) tf_q 27.621p
for the associated VDD pin voltages for the
specified state
tsu Specifies setup time (sec) for the associated VDD tsu 523.65p
pin voltages for the specified state

Cpd_read/Cpd_write/Cpd_st Specifies Cpd_read or Cpd_write or Cpd_standby Cpd_write {


andby { values for all P/G pin arc combinations, in Farads VDDPR VSS1 128.88f
<VDD_pin_1> <GND_pin_1> VDDP VSS2 13.88f
<VDD_pin_2> <GND_pin_2> }
...
}

© 2016 ANSYS Inc. Page 4


AVM CONFIG: ADVANCED KEYWORDS:

KEYWORD PURPOSE SAMPLE SYNTAX

AVM_VOLTAGES <num_voltages> Specifying voltage scaling factors for AVM_VOLTAGES 4 1.0


<scale_factor1> characterization. 0.89 0.8 0.66
<scale_factor2>

WAVEFORM_TYPE [trapezoidal | Specifying trapezoidal or triangular current WAVEFORM_TYPE triangular


triangular] profiles. Default is triangular.

LEAKAGE_I { Specifying leakage current, in Amps LEAKAGE_I {


<VDD_pin> <GND_pin> VDDCE VSSE 4.39200e-
<current_in_Amps for ARC1> 06mA
<VDD_pin> <GND_pin> VDDPE VSSE 2.40400e-
<current_in_Amps for ARC2> 05mA
... }
}

Peak_I_Write/Peak_I_Read/Peak Specifying peak current values for Read, Write and Peak_I_Read {
_I_Standby { Standby in Amps, for triangular waveform model VDD1 VSS 2e-03mA
<VDD_pin> <GND_pin> VDD2 VSS 3e-03mA
<current_in_Amps for ARC1> }
<VDD_pin> <GND_pin>
<current_in_Amps for ARC2>
...
}

Peak_T_Write/Peak_T_Read/Peak Specifying peak times for Write, Read and Standby Peak_T_Read {
_T_Standby { in seconds, for triangular waveform model VDD1 VSS 0.2e-09
<VDD_pin> <GND_pin> VDD2 VSS 0.5e-09
<time_in_sec for ARC1> }
<VDD_pin> <GND_pin>
<time_in_sec for ARC2>
...
}

CHARGE_RATIO <factor between Specifies the second triangular waveform's area CHARGE_RATIO 0.5
0.0 to 1.0> (charge) divided by the total area
(charge). The default value is 0.7

Here are few examples of basic AVM config files:

Sample 1: Basic AVM config file with power/timing data specified for single supply voltage:

RAM64x5 {
PROCESS TT
MEMORY_TYPE SRAM
EQUIV_GATE_COUNT 65536
VDD_PIN VDD1 VDD2 VDD3
VDD 1.0 1.0 1.0
GND_PIN VSS
AVM_VOLTAGES 5 1.0 0.9 0.85 0.7 0.6
ck2q_delay 0.70ns

© 2016 ANSYS Inc. Page 5


tr_q 0.11ns
tf_q 0.06ns
tsu 0.39ns
Cload 65fF
Cpd_read {
VDD1 VSS 8.47pF
VDD2 VSS 10pF
VDD3 VSS 15pF
}
Cpd_write {
VDD1 VSS 81.07pF
VDD2 VSS 11pF
VDD3 VSS 12pF
}
Cpd_standby {
VDD1 VSS 0.1pF
VDD2 VSS 0.2pF
VDD3 VSS 0.4pF
}
}

NOTE : Tool will automatically derate the timing and power data to produce waveforms for all the
voltage factors mentioned in AVM_VOLTAGES

Sample 2: AVM config file with power/timing data specified for multiple supply voltages:

Cell1 {
MEMORY_TYPE RegFile
EQUIV_GATE_COUNT 6663
Cload 2f
VDD_PIN VDDPR VDDP
GND_PIN VSS
C_decap {
VDDPR VSS 11.002f
VDDP VSS 11.002f
}
VDD 1.08 1.08 {
ck2q_delay 1537p
tr_q 30.194p tf_q
27.621p
tsu 523.65p
Cpd_read {
VDDPR VSS 1158.882f
VDDP VSS 11.882f
}
Cpd_write {
VDDPR VSS 2213.820f
VDDP VSS 22.820f
}
Cpd_standby {
VDDPR VSS 409.293f
VDDP VSS 4.29f
}
}
VDD 1.32 1.32 {

© 2016 ANSYS Inc. Page 6


ck2q_delay 2537p
tr_q 40.194p tf_q
37.621p
tsu 623.65p
Cpd_read {
VDDPR VSS 2158.88f
VDDP VSS 18.88f
}
Cpd_write {
VDDPR VSS 3213.82f
VDDP VSS 13.82f
}
Cpd_standby {
VDDPR VSS 509.29f
VDDP VSS 9.29f
}
}
}

2.3. Multi-state AVM configuration file


As discussed earlier, basic AVM config file allows only two active modes of operations, WRITE and READ.
For memories switching in more modes (for ex read+write, double read, etc), user can create multi-state
AVM config file where he can specify state-specific power/timing data and associated boolean condition.

The custom switching states can be specified using one of the following keyword:

CUSTOM_STATE_FILE <filename>

(OR)

STATE_BOOLEAN <state_name> <Boolean_eq> <active_pin/clock_pin> ?<output_pin>?

Example of Custom State AVM:

STATE_BOOLEAN M0 "RETN&CLK1&CEN&CLK2" "CLK1 CLK2" "NA"


STATE_BOOLEAN M1 "RETN&CLK1&!CEN&CLK2" "CLK1 !CLK2" "NA"
STATE_BOOLEAN M2 "RETN&!CLK1&!CEN&CLK2" "CLK1 !CLK2" "NA"
STATE_BOOLEAN STANDBY_TRIG "!RETN&!CEN" "CLK1 CLK2" "NA"
STATE_BOOLEAN STANDBY_NTRIG "!RETN&!CEN" "!CLK1 !CLK2" "NA"

ABC_Mem1 {
...
Cpd M0 {
VDD VSS 15pF
}
Cpd M1 {
VDD VSS 20pF
}
Cpd M2 {
VDD VSS 10pF
}
Cpd STANDBY_TRIG {
VDD VSS 1pF
}
Cpd STANDBY_NTRIG {

© 2016 ANSYS Inc. Page 7


VDD VSS 0.2pF

...
}

NOTE: When creating multiple-state models, you must capture current profiles for reserved states
‘standby_trig’ and ‘standby_ntrig’. Otherwise RedHawk simulation/result-display can have issues.

Additional Keywords for Multi-state AVM are listed below:

KEYWORD PURPOSE SAMPLE SYNTAX

peak_I <state name > { Optional Peak current, in Amps PEAK_I memory_into_lowpwr {
<vdd_pin> <vss_pin> VDD1 VSS 0.86951mA
<arc_current_A> VDD2 VSS 4.34756mA
... }
}

peak_T <state name > { Optional Peak Time in secs PEAK_T memory_into_lowpwr {
<vdd_pin> <vss_pin> VDD1 VSS 0.2ns
<arc_current_A> VDD2 VSS 0.5ns
... }
}

Note: Following keywords associated with basic AVM config should not be specified: ‘Cpd_write’,
‘Cpd_read’, ‘Cpd_standby’,‘leakage_I_write’, ‘leakage_I_read’, ‘peak_I_write’, ‘peak_I_read’,
‘C_decap_write’, ‘C_decap_read’. Even if specified, they are ignored.

2.4. Integrated AVM with functional and rush-current modes


For embedded switch memories/IPs, if power-switches are turned on in daisy chain manner, it draws a
rush-current or surge current which can be mimicked as single triangle current profile. User can
capture additional states for this mode in AVM config file for this.

The states corresponding to such applications should be tagged with SINGLE_TRIANGULAR keyword. For
ex:

SINGLE_TRIANGULAR <state1> <state2>

Here’s a sample AVM config file that captures regular functional states as well as additional states
for rush-current mode. Data specific for rush-current mode is highlighted in red:

© 2016 ANSYS Inc. Page 8


RAM64x5 {
MEMORY_TYPE RegFile
EQUIV_GATE_COUNT 1234
VDD_PIN VDD1 VDD2
GND_PIN VSS
PROCESS FF
Cload 2e-06nF
VDD 0.765 0.72
state_boolean memory_read_write "RETN&CLK1&CEN&CLK2" "CLK1 CLK2" "NA"
state_boolean memory_into_lowpwr "CEN&!RETN" "!RETN" "NA"
state_boolean memory_outof_lowpwr "CEN&RETN" "RETN" "NA"
SINGLE_TRIANGULAR memory_into_lowpwr
Cpd memory_read_write {
VDD1 VSS 1.39886e-04nF
VDD2 VSS 2.17068e-03nF
}
PEAK_I memory_read_write
{ VDD1 VSS 3.76646mA
VDD2 VSS 12.56998mA
}
Cpd memory_into_lowpwr {
VDD1 VSS 7.92939e-05nF
VDD2 VSS 4.21249e-04nF
}
PEAK_I memory_into_lowpwr
{ VDD1 VSS 0.86951mA
VDD2 VSS 4.34756mA
}
Cpd memory_outof_lowpwr {
VDD1 VSS 8.72233e-05nF
VDD2 VSS 5.99300e-04nF
}
PEAK_I memory_outof_lowpwr
{ VDD1 VSS 0.95646mA
VDD2 VSS 3.90329mA
}
tsu memory_read_write 0.42ns
ck2q_delay memory_read_write 2ns
tr_q memory_read_write 0.1ns tf_q
memory_read_write 0.1ns

tsu memory_into_lowpwr 0.549231ns


ck2q_delay memory_into_lowpwr 0.00000ns
tr_q memory_into_lowpwr 0.00000ns
tf_q memory_into_lowpwr 0.00000ns

tsu memory_outof_lowpwr 0.0453954ns


ck2q_delay memory_outof_lowpwr 0.00000ns
tr_q memory_outof_lowpwr 0.00000ns
tf_q memory_outof_lowpwr 0.00000ns
...
}

In the above example, memory_into_lowpwr and memory_outof_lowpwr correspond to rush-current


analysis and are marked as SINGLE_TRIANGULAR states whereas memory_read_write is a regular
functional state and will get modeled as DUAL Triangular waveform.

© 2016 ANSYS Inc. Page 9


3. AVM Validation

3.1. Validating the content of the AVM config


Here are the steps needed to validate the content of the AVM models:

STEP 1: Generate the current and capacitance files from the AVM config file:

Once the AVM configuration file is created, user can run avm utility from RedHawk installation to
generate the current and capacitance model files. A sample command is shown below:

% avm <avm_configuration_file>

The avm command generates two files. The current profile, (vmemory.current) and cap information
(vmemory.cdev).

AVM will perform some basic checks regarding the values specified in the config file. If peak currents are
specified in the config file, AVM will try to honor both the Cpd charge and the peak currents to construct
the current waveform. If the peak current cannot be met, AVM will issue a warning message in the log
file. The percent difference between AVM results and user-specified Ipeak and Cpd are reported in log
file, avm.log.

STEP 2: Use aplreader to read the content of the vmemory.current and vmemory.cap

% aplreader vmemory.current

Sample aplreader output shown below.


#############################################################
# #
# Copyright (C) 2002-2015 Apache Design Solutions, Inc.#
# aplreader: Current Profile and cdev/pwcdev Reader #
# version 15.1 Linux64 Released Date: 02/08/2015 #
# Linux2.6.18-194.el5 #
# #
#############################################################

Info: Reading current file- 'vmemory.current'


cell: RAM64x5
VDD1 = 0.765 V ; VDD2 = 0.72 V ; C1 = 0 F ; R = 0 Ohm ; C2 = 1e-15 F ; Slew1 = 0 S ; Slew2 = 0
S ;
state = output_rise ; vector = I&i0 ; active_input = I ; active_output = O ;
pin peak area width
VDD 2.06e-02 A 1.76e-11 C 4.56e-09 S
VSS 2.06e-02 A 1.76e-11 C 4.56e-09 S
state = output_fall ; vector = I&i0 ; active_input = I ; active_output = O ;
pin peak area width
VDD 1.08e-03 A 9.18e-13 C 4.56e-09 S
VSS 1.08e-03 A 9.18e-13 C 4.56e-09 S

STEP 3: Compare the content of the aplreader log and the AVM log files

Compare the peak currents and the area (for charge) between the aplreader log file and avm log files.
This validates that the AVM config file is correctly translated to a current file.

© 2016 ANSYS Inc. Page 10


3.2. Validation of AVM models inside RedHawk
This level of validation is typically not needed to ensure the correctness of the AVM model but rather
needed to ensure that RedHhawk is able to apply the correct waveforms from the AVM model.

To validate AVM model standalone in IP design context, one needs to import physical model (GDS or
lef/def) along with AVM models in RedHawk or Totem. For validation in Totem environment, user can
import GDS file directly along with a config (GDSII_FILE keyword) whereas for validation in RedHawk,
user need to run gds2rh utility to convert GDS into lef/def.

Here are the steps for validation in RedHawk environment

STEP 1: Generate a physical view (lef/def) of memory from GDS using gds2rh utility. Create a gds2rh
config file called cell.conf as shown below and run “gds2rh cell.conf”

Sample gds2rh config file

TOP_CELL RAM64x5
GDS_MAP_FILE
layer_map LEF_FILE {
RAM64x5.lef
}
GDS_FILE RAM64x5.gds2
VDD_NETS {
VDD1 {
VDD1
VDD1:
}
VDD2 {
VDD2
VDD2:
}
}
GND_NETS {
VSS {
VSS
VSS:
}
GENERATE_PLOC USE_TEXT_LABEL
USE_TOP_LEVEL_TEXT_ONLY 1
OUTPUT_DIRECTORY outputs

This will create following outputs in OUTPUT_DIRECTORY:

<cellname>.def and <cellname>_adsgds.lef

STEP 2: Create a RedHawk configuration file (GSR) capturing Physical model for memory ( lef/def ) and
AVM to make stand-alone memory switch in RedHawk:

© 2016 ANSYS Inc. Page 11


Sample GSR file for RedHawk

GDS_CELL { Under GDS_CELL, provide the path to lef/def output directory


RAM64x5 ./outputs generated by gds2rh from STEP 1
}

TEMPERATURE 27
ADD_PLOC_FROM_TOP_DEF 1

VDD_NETS {
VDD1 0.765
VDD2 0.765
}
GND_NETS {
VSS 0.0
}
TECH_FILE apache.tech
LIB_FILES {
RAM64x5.lib
}

APL_FILES { Provide the AVM file under APL_FILES . RedHawk will internally parse
RAM64x5.avm avm the AVM and create AVM outputs – vmemory.current and
} vmemory.cdev

APACHE_FILES debug
ADD_PAD_LOC_FROM_TOP_DEF 1

LEF_FILES { GSC_FILE is used to tell RedHawk to switch a memory in a particular AVM


RAM64x5.lef BOOLEAN state or condition. GSC_FILE file format is : ‘adsU1
} <state_name>’ where adsU1 is the memory instance name.
Example :
GSC_FILE my.gsc
adsU1 memory_into_lowpwr

DYNAMIC_SIMULATION_TIME 2e-09 Set DYNAMIC_SIMULATION_TIME equal to a value greater than the


FREQ 500e6 duration of AVM waveforms and FREQ =
DYNAMIC_TIME_STEP 1e-12 1/DYNAMIC_SIMULATION_TIME

Sample command file for RedHawk

import gsr my.gsr


setup design
perform pwrcalc
perform extraction -power -ground -
c perform analysis –dynamic
plot current –net –name VDD1 –o VDD1_current.rpt -nograph
plot current –net –name VDD2 –o VDD2_current.rpt -nograph
plot current –net –name VSS –o VSS_current.rpt -nograph get
inst adsU1 -peak_current -o peak_current.rpt

© 2016 ANSYS Inc. Page 12


Running RedHawk

After setting path to RedHawk installation, run RedHawk as shown below:

% redhawk -f <command_file>

STEP 3: Verify if the memory is switching properly in required state.

a) Look at the state mentioned for the memory in GSC_FILE


b) Run the command 'plot current -net -name <pin_name> -o <output_file>' to get
the current consumed by memory in Redhawk. See output of plot current in xgraph :

Figure-2: Current waveform of the memory from RedHawk

c) Open the memory APL file vmemory.current file in aqua and compare the current of every pin in
aqua waveform viewer against current from step b) for the GSC state. Sample output of aqua
shown below.

© 2016 ANSYS Inc. Page 13


Figure-3: Current waveform from ‘aqua’ viewer

The peak currents of all pins in RedHawk analysis can be obtained by using the following tcl command
inside RedHawk.

TCL> get inst adsU1 -peak_current -o peak_current.rpt

VDD1 0.004276
VDD2 0.000854073
VSS 0.00513007

d) Compare this output against the output of aplreader. Aplreader can be run standalone on the
vmemory.current file as below:

% aplreader vmemory.current

Sample aplreader output shown below.


#############################################################
# #
# Copyright (C) 2002-2015 Apache Design Solutions, Inc. #
# aplreader: Current Profile and cdev/pwcdev Reader #
# version 15.1 Linux64 Released Date: 02/08/2015 #
# Linux2.6.18-194.el5 #
# #
#############################################################
Info: Reading current file-
'vmemory.current' cell: RAM64x5
VDD1 = 0.765 V ; VDD2 = 0.72 V ; C1 = 0 F ; R = 0 Ohm ; C2 = 1e-15 F ; Slew1 = 0 S ; Slew2 = 0
S ;
state = memory_into_lowpwr ; vector = CEN&!RETN ; active_input = !RETN ; active_output = NA
;
pin peak area width
VDD1 8.55e-04 A 6.05e-14 C 3.24e-10 S
VDD2 4.28e-03 A 3.02e-13 C 3.24e-10 S
VSS 5.13e-03 A 3.63e-13 C 3.24e-10 S

© 2016 ANSYS Inc. Page 14


4. Using AVM in RedHawk
AVM config files can be directly specified in RedHawk under APL_FILES keyword in the GSR as below.

APL_FILES {
<avm_configuration_file> avm
}

Alternately AVM current and cap files generated outside (using “avm <config>”) can also be given
under APL_FILES. See syntax below.

APL_FILES {
vmemory.current current_avm
vmemory.cdev cap_avm
}

5. LIB2AVM flow for RedHawk

If AVM config files are not available or specified for some memories, RedHawk attempts to
automatically create it from timing/power data in lib and dumps it out in adsRpt/avm.conf. This is done
only for cells identified as memories based on attributes in lib (‘memory ( )’, or ‘timing( ){mode...}’). The
LIB2AVM flow also does not support user specified custom states. The default behavior is to only use
read/write/standby_high/standby_low states. Note that this involves several heuristics and may not be
as accurate as user specified AVM data. Please refer to the RedHawk user manual for additional details.

RedHawk has a GSR keyword that can be used to turn-off or modify above behavior:

LIB2AVM [0/OFF | 1/TRIANGULAR | 2/TRAPEZOIDAL]

Example:
LIB2AVM 2 (Default is 1)

5.1. Generating AVM standalone from LIB

RedHawk also provides a standalone utility to create AVM config file from liberty as below:

% lib2avm <lib2avm_config_filename> -l <cell_list_filename>

Sample LIB2AVM config file shown below. User mainly needs to provide Liberty Files and power
and ground pin names.

LIB_FILES {
./RAM64x5.lib
}
GND_NETS {
VSS 0
}

© 2016 ANSYS Inc. Page 15


VDD_NETS {
VDD1 1.08
VDD2 1.08
}

ANSYS, Inc.
2645 Zanker Road
San Jose, CA 95134

Main: 408-457-2000
Fax: 408-428-9569
apache_sales@ansys.com
www.ansys.com
www.apache-da.com

ANSYS and any and all ANSYS, Inc. brand, product, service and feature names, logos and slogans are registered trademarks or trademarks of
ANSYS, Inc. or its subsidiaries in the United States or other countries. All other brand, product, service and feature names or trademarks are the
property of their respective owners.

© 2016 ANSYS Inc. Page 16


© 2016 ANSYS Inc. Page 17

You might also like