Working with Data Files

Data files are ASCII text representations of circuit responses based on various settings of independent variables. For instance the S-parameter response of an amplifier can be captured against frequency and power variations in a .p2d data file. Some ADS components, such as the AmplifierP2D_Setup and AmplifierS2D_Setup help create data files. Other sources for data files are measurement instruments or other simulation tools which output circuit responses in text form. Thus data files enable you to take data from sources outside of Advanced Design System or RF Design Environment and apply it to projects within these design environments.

The common purpose of all the various applications which require the use of data files, is to generate the behavior of a specific component or a circuit based on simulated or measured data points. Thus, data files allow the transfer of realistic parameter values to simple components and also enable the modeling of components with complex behavior such as black box and gray box models. Some examples of the use of data files are:

Besides data-file driven components, there are other user-defined models such as using SDDs, FDDs, equation-based components, or the Model Builder which are discussed elsewhere. This section focuses on how to use the various types of data files to define the behavior of components and circuits in addition to providing a comprehensive understanding of the classification and formats associated with the various types of data files used by various components.

A data file is simply data in an ASCII text file, but there are several formats to choose from depending on the application. When determining the type of data file to choose please note:

Supported Data Formats

The following table lists the supported data formats with a brief description and a reference to detailed information:

Available File Format Types
Format Description Usage Details
Touchstone Format
SnP †,†† (.snp) Small signal S, H, Y, Z, or G-parameters. May also include optional noise data (2 port data only). Where n is the number of ports from 1 to 99. n-port S-parameter file (S n P) components in the Data Items Library. Touchstone SnP Format
MDIF Formats
Discrete (.dscr) Discrete (indexed) tabular and possibly statistical density data. Components that accept file-based parameters, link via the DAC. Discrete Format
Model MDIF Nonlinear model parameters. EE_BJT2_Model, JFET_Model, etc. Model MDIF Files
PDF ‡‡‡ (.pdf) User defined, piece-wise linear probability density function data for arbitrary distributions that are not correlated. With expressions in the Statistics tab. PDF Format
S2PMDIF (.s2p) Multi-dimensional 2-port, S, Y, Z, H, G signal and optional 2-port noise parameter (Fmin, Gopt, Rn) data. With S2PMDIF, DAC, and components represented by black box statistical characterization. S2PMDIF Format
P2D †,†† (.p2d) Large-signal, power-dependent, 2-port S, H, Y, Z, or G -parameters. AmplifierP2D in the System - Amps & Mixers library. P2D Format
S2D †,†† (.s2d) 2-port S, H, Y, Z, or G-parameters with forward gain compression and optional noise and intermodulation data. Amplifier2 and AmpSingleCarrier in the System-Amps & Mixers library, AmplifierS2D in the System-Data Models library. S2D Format
IMT †† (.imt) Intermodulation product table of mixer intermodulation products between the LO and signal that relates the mixer IM output level to signal input level. MixerIMT in the System - Amps & Mixers library. MixerIMT Data in the System-Data Models library. IMT Format
SPW †† (.ascsig text ) (.sig binary ) Time-domain voltage data file in Cadence Alta Group SPW text and binary formats. TimeFile item in Timed Sources and OutFile item in the Sinks library. SPW Format
TIM †† (.tim) Time-domain data. TimeFile item in Timed Sources and OutFile item in Sinks library. TIM Format
SDF ††,††† (.sdf) Time-domain voltage data file in 89600 file format. TimeFile item in Timed Sources and OutFile item in Sinks library. See software documentation for the Agilent 89600.
GCOMP †† Gain compression data Amplifier and Mixer items in the System - Amps & Mixers library. Understanding GCOMP Data
Generic MDIF (.mdif) Generalized multi-dimensional tables unifying other MDIF formats. Use in place of any specific MDIF. AmplifierS2D, AmplifierP2D, or any other MDIF example listed above. Link via the DAC. Generic MDIF
CITIfile Format
CITIfile ††† A general data format supported by network analyzers. Capable of storing multiple packages of multi- dimensional data. n-port S-parameter file (S n P) components in the Data Items Library. CITIfile Data Format
Agilent IC-CAP Formats
DUT, MDL, SET ‡,‡‡ Device under test (DUT), model (MDL), and setup (SET) files from the Agilent IC-CAP program. These files can contain Measured, Simulated, and/or Transformed data. Once the data is read into a dataset, it can be used with any component (for example, a VtDataset source) that can read data from a dataset. See Agilent IC-CAP documentation.
When writing data from a dataset to a file, the variable names are limited to S,H,Y,Z or G, for example, S[1,1], S[1,2], G[1,1], G[1,2]. The variable name is used to determine the type of data.
†† The first set of data in the dataset that matches the data type (name) will be output. It is not possible to arbitrarily select which data will be output.
††† There are some specific problems with the current version in writing and/or reading this data format. On the Agilent EEsof web site, refer to the Release Notes in Product Documentation and to Technical Support for more information and workarounds (www.agilent.com/find/eesof).
The Data File Tool can only read IC-CAP data.
‡‡ Only simple, scaled expressions with numbers or variables and one operator (either +, -, *, or /) are supported for start, stop, step, and number of points parameters, for example, start= 1 GHZ or stop=icmax/10.
‡‡‡ This format is not yet fully supported.
The COD, FIR, LAS, and SPE formats were obsolete when ADS 1.0 was introduced and are not used by the application. The LIST2 and T2D formats are also obsolete.

For information about a particular component, refer to the manuals for Analog/RF or Signal Processing components, or click Help when editing component parameters.

Making a Data File

You can create a data file using these methods:

Saving a Data File

When saving a data file, save it as an ASCII text file.

You can save the data file:

For more information about the File parameter, place the component of interest on a schematic, double-click to edit it, and click the Help button at the bottom of the dialog box.

Using Data Files, Datasets, and Data Access Components

Both data files and datasets can contain data that you want to use with a component. You can use either one, depending on your situation:

You also want to consider the method of linking your data with the component of interest:

Reading and Writing Data Files

Use the Data File Tool to import and export data between datasets and text files that are in the following file formats:

You can transfer data from a file into a dataset, or vice versa. One application is to transfer data from a dataset to an MDIF file, for use with a specific type of component. For example, a file in P2D format (P2D is one of several MDIF formats) containing S-parameters can then be used by the P2D amplifier. Using the Data File Tool, you can write S-parameters from a dataset to a file in P2D format. Another application is reading Agilent IC-CAP data into a dataset to be used in conjunction with a component, such as a source, that can read data from a dataset.

See the table above in Supported Data Formats for a list of the available file types, a description of the file contents, and the component that uses the data. Be sure to review the notes at the end of the table. The details about each file format are described later in this topic.

Starting and Exiting the Data File Tool

You can start the Data File Tool from a Schematic window or a Data Display Window.

To exit the Data File Tool, choose File > Exit from the menu bar.

Parts of the Data File Tool

The following illustration shows the default appearance of the Data File Tool user interface for a UNIX-based system when the Data File Tool is started.

The layout of the interface and names of the various elements vary with the task being performed (read or write) and can also vary with the file format selected. Examples of this variation in the appearance of the Data File Tool user interface is shown in the two following figures.


Data File Tool in read mode



Data File Tool in write mode

These are the more frequently used elements of the interface:

Reading a File

To read the contents of a file into a dataset:

  1. From an open Data File Tool window, click Read data file into dataset.
  2. Under File format to read, select one of the following file formats:
    • Touchstone
    • MDIF
    • Citifile
    • ICCAP
  3. For the MDIF format, choose the appropriate sub-format from MDIF sub type.
  4. Under Input file name, type in the file name if the file is in the project. If it is not, click Browse to locate and select the file.
  5. The data from the selected file will be written to a dataset. Enter a name in the Dataset name field or select from the existing datasets in the Datasets list. If you choose a dataset from the list, any data that is already stored in the dataset will not be saved and will be overwritten with new data.
  6. Click Read File to send the file contents to the dataset.
    Note
    The source file must not use any ADS reserved variables or non-ASCII characters. Use of such a file can produce misleading results.

Writing to a File


To write data to a file:

  1. From an open Data File Tool window, click Write data file from dataset.
  2. Under File format to write, select one of the following file formats:
    • Touchstone
    • MDIF
    • Citifile
  3. For the Touchstone and MDIF formats, choose the appropriate sub-format from Touchstone data type, or MDIF sub type.
  4. Under Output file name, type in the file name you want to write to. It will be saved in the project directory. If you want to save the file in a different location, click Browse to select a location.
  5. Under Complex data format, select the complex data format to be used in the file.
  6. For Touchstone and MDIF files, under Frequency units, select the frequency units to be used in the file.
  7. Under Data notation format, select the data notation format to be used in the file.
  8. Under Max resolution, select the maximum resolution to be used in the file.
  9. The source of the data can be any project dataset. It should contain data matching the file format selected. Select an existing dataset from the Datasets list. Click View Dataset to view the contents of the selected dataset.
  10. Click Write to File to send the data to the file.
    Note
    If a dataset has just been created by reading a file, it might be necessary to click Update Dataset List to see it appear in the list.

Examples

You can find designs that use different data files in the Examples directory under Data_comp_prj and DataAccess_prj.

Instructions for using a particular type of file with a component that is designed to read the file (like an . snp file and SnP component) can be found in the remaining reference sections.

Touchstone SnP Format

These files contain small-signal G-, H-, S-, Y-, or Z-network parameters described by frequency-dependent linear network parameters for 1- to 99-port components. The 2-port component files can also contain frequency-dependent noise parameters. This data file format is also known as Touchstone format.

An .snp file can be used with an SnP component to model the behavior of a linear model using S-parameters. The file contains the S-parameters, the component is placed within the schematic.

This section describes:

Linking an .snp File to an SnP Component

To link a file to the component:

  1. Add an SnP component to your schematic. It can be found in the Data Items library.
  2. Select the File parameter. Ensure that the Parameter Entry Mode is set to Network Parameter File Name .
  3. In the File Name field, enter the name of the file you want to use:
    • You can type the name directly in the field.
    • Click Data files list to locate a file in the current project (or any files located based on the setting of the DATAFILES variable in de_sim.cfg).
    • Click Browse to locate a file outside the current project.
    • Click Copy template to select an example file that you can customize.
  4. After you select a file, click Edit if you want to view the file or change its contents.

For instructions on how to set the remaining parameters, click Help in the open component dialog box.

Overview

SnP data files are ASCII text files in which data appears line by line, one line per data point, in increasing order of frequency. Each line of data consists of a frequency value and one or more pairs of values for the magnitude and phase of each S-parameter at that frequency. Values are separated by one or more spaces, tabs or commands. Comments are preceded by an exclamation mark (!). Comments can appear on separate lines, or after the data on any line or lines. Extra spaces are ignored. Recommendations for filenames are:

1-port: filename.s1p

2-port: filename.s2p

Up to 99 ports can be defined.

You can specify the following parameters in an .snp file:

S = Scattering parameters
Y = Admittance parameters
Z = Impedance parameters
H = Hybrid-h parameters
G = Hybrid-g parameters

Note
The mismatched port impedance is not supported by the ADS simulator. If a Touchstone file has the input/output mismatch information in the header, it is ignored by the DAC and the SnP components, and a default matching 50 ohm port impedance is used.
The following sections discuss the content and format of network parameter files as input for circuit analysis.

Basic SnP File Format

The following example shows the general format for component data files. It consists of:

The Option Line

The option line, specifying the frequency units and the normalizing impedance, precedes the data lines.
# (freq_units parameter format R n)
<data line>
...
<data line>
where:

# = The delimiter that tells the program you are specifying these parameters
freq_units = Sets the units. Options are GHz, MHz, KHz, or Hz.
parameter = Sets the desired parameter. Options are:
format = The format desired. Options are:
R n = The reference resistance in ohms, where n is a positive number of ohms; which is the real impedance to which the parameters are normalized.


In summary, the option line should read:

For .s1p files: # [HZ/KHZ/MHZ/GHZ] [S/Y/Z] [MA/DB/RI] [R n]
For .s2p files: # [HZ/KHZ/MHZ/GHZ] [S/Y/Z/G/H] [MA/DB/RI] [R n]
For .s3p/.s4p files: # [HZ/KHZ/MHZ/GHZ] [S] [MA/DB/RI] [R n]

where square brackets [...] indicate optional information; .../.../.../ indicates that you select one of the choices; and, n is replaced by a positive number.

Default Option Line

The default option line for component data files is:
# GHZ S MA R 50

Option Line Examples

Frequency in GHz, S-parameters in real-imaginary format, normalized 100 ohms:
# GHz S RI R 100
Frequency in KHz, Y-parameters in real-imaginary format, normalized 100 ohms:
# KHz Y RI R 100
Frequency in Hz, Z-parameters in magnitude-degree format, normalized to 1 ohm:
# Hz Z MA R 1
Frequency in KHz, H-parameters in real-imaginary format normalized to 1 ohm:
# KHz H RI R 1
Frequency in Hz, G-parameters in magnitude-degree, format normalized to 1 ohm:
# Hz G MA R 1

Data Lines

Data lines contain the data of interest. A special format is used for 2-port data files where all of the network parameter data for a single frequency is listed on one line. The order of the network parameters is:

N11, N21, N12, N22

For 3-port or higher data files, the network parameters appear in the file in a matrix form, each row starting on a separate line. A maximum of four network parameters (with 2 real numbers for each) appear on any line. The remaining network parameters are continued on as many additional lines as are needed.

The following sections describe the data-line format for single and multi-port components.

Data-line Formats

When you type the data below the option line, the columns need not line up precisely like those shown. The syntax for entering data is as follows:

1-port Component
Magnitude-Angle format:

(Columns: f Mag Ang)
  f |S11|

2-port Component
Magnitude-Angle format:

f |S11|

Real-Imaginary format:

f Re{S11} Im{S11} Re{S21} Im{S21} Re{S12} Im{S12} Re{S22} Im{S22}
dB-Angle format:
f 20log10|x11|

where

x = S/Y/Z/H/G
f = Frequency

3-port Component
Magnitude-Angle format:

( Columns : f Mag Ang Mag Ang Mag Ang)
  f |S11| <S11 |S12| <S12 |S13| <S13
    |S21| <S21 |S22| <S22 |S23| <S23
    |S31| <S31 |S32| <S32 |S33| <S33

4-port Component
Magnitude-Angle format:

( Columns : f Mag Ang Mag Ang Mag Ang Mag Ang)
  f |S11| <S11 |S12| <S12 |S13| <S13 |S14| <S14
    |S21| <S21 |S22| <S22 |S23| <S23 |S24| <S24
    |S31| <S31 |S32| <S32 |S33| <S33 |S34| <S34
    |S41| <S41 |S42| <S42 |S43| <S43 |S44| <S44

where:

f = Frequency
Mag = Magnitude of S-parameter Sij
Ang = Angle of S-parameter Sij

Adding Comments to Data Files

You can document your data files by preceding a comment with the exclamation mark (!) on any line. A comment can be the only entry on a line or can follow the data on any line.

Adding Noise Parameters to an SnP File

Noise parameters can be included in SnP 2-port data files. Noise data can follow G-, H-, S-, Y-, or Z-parameters described for each frequency. The x values are data.

Each line of a noise parameter has the following five entries:

x1 x2 x3 x4 x5

where:

x1 = Frequency in units. The first point of noise data must have a frequency less than the frequency of the last S-parameter frequency
x2 = Minimum noise figure in dB
x3 = Source reflection coefficient to realize minimum noise figure (MA)
x4 = Phase in degrees of the reflection coefficient (MA)
x5 = Normalized effective noise resistance. The system simulator requires this parameter to meet physical requirements. If the user-supplied x5 value is less than allowed for this requirement, then the system simulator will force this x5 value to the lowest physical limit.

Sopt noise data in an SnP file must be expressed in a Magnitude/Angle (MA) format. The simulator assumes that the Sopt noise data in an SnP file is specified in a MA format. This is the only supported format for Sopt data in an SnP file. The complex format type specified in the format line does not apply to the Sopt data specified in the Noise block.

The data file reader cannot determine if the numbers representing the Sopt data in the SnP data file are expressed in MA format and not in dB or Real/Imag formats. It reads in whatever numbers appear on the data line and processes them as if they are MA, without issuing an error or warning message. If the Sopt data in the SnP data file is expressed in a format other than MA, this can produce simulation data that look incorrect.

Note
The frequencies for noise parameters and network parameters need not match. The only requirement is that the lowest noise-parameter frequency be less than or equal to the highest network-parameter frequency. This allows the file processor to determine where network parameters end and noise parameters begin.

The source reflection coefficient and effective noise resistance are normalized to the same resistance as specified for the network parameters.

Example File Containing Noise Data

This is an example of a data file with noise data:

! NEC710
# GHZ S MA R 50
 2    .95    -26    3.57    157    .04    76    .66    -14
22    .60    -144   1.30     40    .14    40    .56    -85
! NOISE PARAMETERS
 4    .7      .64     69    .38
18     2.7    .46    -33    .40

Applying the SnP Format, and Examples

In this section are formatting references and examples for:

Guidelines

G-Parameter Files


G-parameter files (Hybrid-g parameters) use MA or RI format. They are strictly 2-port files. G-parameter measurements are:

G11 input admittance (port 2 open)
G22 output impedance (port 1 shorted)
G21 forward voltage gain (port 2 open)
G12 reverse current gain (port 1 shorted)

G-Parameter MA and RI File Formats

#         frequency_unit         G         MA         R     impedance
freq    magG11    angG11    magG21    angG21    magG12    angG12    magG22    angG22
#         frequency_unit         G         RI         R     impedance
freq    reG11    imG11    reG21    imG21    reG12    imG12    reG22    imG22

G-Parameter File Example

! symbol freq-unit parameter-type data-format keyword impedance-ohms
#      KHZ      G      MA      R      1
! freq    magG11    angG11    magG21    angG21    magG12    angG12    magG22    angG22
   2      .95       -26       3.57       157      .04       76        .66       -14
   3      .93       -40       3.53       147      .05       69        .65       -20
   4      .89       -52       3.23       136      .06       62        .63       -26

H-Parameter Files


H-parameter files (Hybrid-h parameters) use MA or RI format. They are strictly 2-port files. H-parameter measurements are:

H11 input impedance (port 2 shorted)
H22 output admittance (port 1 open)
H21 forward current gain (port 2 shorted)
H12 reverse voltage gain (port 1 open)

H-Parameter File Example

! symbol    freq-unit    parameter-type    data-format    keyword    impedance-ohms
#   KHZ      H       MA      R      1
!  freq    magH11    angH11    magH21    angH21    magH12    angH12    magH22    angH22
   2       .95       -26       3.57      157       .04       76        .66       -14
   3       .93       -40       3.53      147       .05       69        .65       -20
   4       .89       -52       3.23      136       .06       62        .63       -26

S-Parameter Files

S-parameter files (scattering parameters) can have MA, RI, or DB format for files with 1 to 99 ports.

S-Parameter 1-Port MA, RI, and DB File Formats

#      frequency_unit      S      MA      R      impedance
freq      magS11      angS11
#      frequency_unit      S      RI      R      impedance
freq      reS11      imS11
#      frequency_unit      S      DB      R      impedance
freq      dbS11      angS11

S-Parameter 2-Port MA, RI, and DB File Formats

#      frequency_unit      S      MA      R      impedance
freq     magS11     angS11     magS21     angS21     magS12     angS12     magS22     angS22
#      frequency_unit      S      RI      R      impedance
freq     reS11      imS11      reS21      imS21      reS12      imS12      reS22      imS22
#      frequency_unit      S      DB      R      impedance
freq     dbS11      angS11      dbS21     angS21     dbS12      angS12      dbS22      angS22

S-Parameter 3-Port MA, RI, and DB File Formats

#      frequency_unit      S      MA      R      impedance
freq      magS11     angS11     magS12     angS12     magS13     angS13 ! 1st row
          magS21     angS21     magS22     angS22     magS23     angS23 ! 2nd row
          magS31     angS31     magS32     angS32     magS33     angS33 ! 3rd row
#      frequency_unit      S      RI      R      impedance
freq      reS11      imS11      reS12      imS12      reS13      imS13 ! 1st row
          reS21      imS21      reS22      imS22      reS23      imS23 ! 2nd row
          reS31      imS31      reS32      imS32      reS33      imS33 ! 3rd row
#      frequency_unit      S      DB      R      impedance
freq      dbS11      angS11     dbS12      angS12     dbS13      angS13 ! 1st row
          dbS21      angS21     dbS22      angS22     dbS23      angS23 ! 2nd row
          dbS31      angS31     dbS32      angS32     dbS33      angS33 ! 3rd row

S-Parameter 4-Port MA, RI, and DB File Formats

#   frequency_unit      S      MA      R      impedance
! 1st row
freq   magS11    angS11    magS12    angS12    magS13    angS13    magS14    angS14
       magS21    angS21    magS22    angS22    magS23    angS23    magS24    angS24 ! 2nd row
       magS31    angS31    magS32    angS32    magS33    angS33    magS34    angS34 ! 3rd row
       magS41    angS41    magS42    angS42    magS43    angS43    magS44    angS44 ! 4th row
#   frequency_unit      S      RI      R      impedance
freq  reS11    imS11    reS12    imS12    reS13    imS13    reS14    imS14 ! 1st row
      reS21    imS21    reS22    imS22    reS23    imS23    reS24    imS24 ! 2nd row
      reS31    imS31    reS32    imS32    reS33    imS33    reS34    imS34 ! 3rd row
      reS41    imS41    reS42    imS42    reS43    imS43    reS44    imS44 ! 4th row
#   frequency_unit      S      DB      R      impedance
freq  dbS11    angS11    dbS12    angS12    dbS13    angS13    dbS14    angS14 ! 1st row
      dbS21    angS21    dbS22    angS22    dbS23    angS23    dbS24    angS24 ! 2nd row
      dbS31    angS31    dbS32    angS32    dbS33    angS33    dbS34    angS34 ! 3rd row
      dbS41    angS41    dbS42    angS42    dbS43    angS43    dbS44    angS44 ! 4th row

S-Parameter 1-Port File Example

! symbol  freq-unit  parameter-type  data-format  keyword  impedance-ohms
#    MHZ   S    MA    R     50
! freq  magS11  angS11  (commented header line)
    2.000    0.894    -12.136
    3.000    0.893    -18.179
    4.000    0.891    -24.193

S-Parameter 5- to 99-Port File Formats

These file formats appear in a matrix form similar to the 3- and 4-port files, except that only four S-parameters (with 2 real numbers for each) can appear on a given line. Therefore, the remaining S-parameters in that row of the S-matrix continue on the next line of the file.

Each row of the S-matrix must begin on a new line of the file. The first line of the first row of the S-matrix begins with the frequency value.

S-Parameter 10-Port File Example (at One Frequency)

#      frequency_unit      S      MA      R      impedance
freq magS11 angS11 magS12 angS12 magS13 angS13 magS14 angS14 ! 1st row
magS15 angS15 magS16 angS16 magS17 angS17 magS18 angS18
magS19 angS19 magS1,10 angS1,10
magS21 angS21 magS22 angS22 magS23 angS23 magS24 angS24 ! 2nd row
magS25 angS25 magS26 angS26 magS27 angS27 magS28 angS28
magS29 angS29 magS2,10 angS2,10
magS31 angS31 magS32 angS32 magS33 angS33 magS34 angS34 ! 3rd row
magS35 angS35 magS36 angS36 magS37 angS37 magS38 angS38
magS39 angS39 magS3,10 angS3,10
magS41 angS41 magS42 angS42 magS43 angS43 magS44 angS44 ! 4th row
magS45 angS45 magS46 angS46 magS47 angS47 magS48 angS48
magS49 angS49 magS4,10 angS4,10
magS51 angS51 magS52 angS52 magS53 angS53 magS54 angS54 ! 5th row
magS55 angS55 magS56 angS56 magS57 angS57 magS58 angS58
magS59 angS59 magS5,10 angS5,10
magS61 angS61 magS62 angS62 magS63 angS63 magS64 angS64 ! 6th row
magS65 angS65 magS66 angS66 magS67 angS67 magS68 angS68
magS69 angS69 magS6,10 angS6,10
magS71 angS71 magS72 angS72 magS73 angS73 magS74 angS74 ! 7th row
magS75 angS75 magS76 angS76 magS77 angS77 magS78 angS78
magS79 angS79 magS7,10 angS7,10
magS81 angS81 magS82 angS82 magS83 angS83 magS84 angS84 ! 8th row
magS85 angS85 magS86 angS86 magS87 angS87 magS88 angS88
magS89 angS89 magS8,10 angS8,10
magS91 angS91 magS92 angS92 magS93 angS93 magS94 angS94 ! 9th row
magS95 angS95 magS96 angS96 magS97 angS97 magS98 angS98
magS99 angS99 magS9,10 angS9,10
!10th row
magS10,1 angS10,1 magS10,2 angS10,2 magS10,3 angS10,3 magS10,4 angS10,4
magS10,5 angS10,5 magS10,6 angS10,6 magS10,7 angS10,7 magS10,8 angS10,8
magS10,9 angS10,9 magS10,10 angS10,10

Linear 1-Port (.s1p) File Example

# GHZ      S      RI      R      50.0
        1.00000000        0.9488        -0.2017
        1.50000000        0.9077        -0.3125
        2.00000000        0.8539        -0.4165
        2.50000000        0.7884        -0.5120
        3.00000000        0.7124        -0.5978
        3.50000000        0.6321        -0.6546
        4.00000000        0.5479        -0.7013
        4.50000000        0.4701        -0.7380
        5.00000000        0.3904        -0.7663
        5.50000000        0.3302        -0.7778
        6.00000000        0.2702        -0.7848
        6.50000000        0.2041        -0.7890
        7.00000000        0.1389        -0.7878
        7.50000000        0.0894        -0.7849
        8.00000000        0.0408        -0.7789
        8.50000000        0.0134        -0.7649
        9.50000000        0.0654        -0.7471
        9.00000000        0.1094        -0.7319
        10.0000000        0.1518        -0.7140

Linear 2-Port (.s2p) File Example

# GHZ       S      RI      R      50.0
1.0000    0.3926    -0.1211    -0.0003    -0.0021    -0.0003    -0.0021    0.3926    -0.1211
2.0000    0.3517    -0.3054    -0.0096    -0.0298    -0.0096    -0.0298    0.3517    -0.3054
10.000    0.3419      0.3336    -0.0134      0.0379    -0.0134      0.0379    0.3419      0.3336
!Noise params
 1.0000    2.0000    -0.1211    -0.0003    .4
 2.0000    2.5000    -0.3054    -0.0096    .45
 3.0000    3.0000    -0.6916    -0.6933    .5
 4.0000    3.5000    -0.3756     0.4617    .55
 5.0000    4.0000     0.3880     0.6848    .6
 6.0000    4.5000     0.0343     0.0383    .65
 7.0000    5.0000     0.6916     0.6933    .7
 8.0000    5.5000     0.5659     0.1000    .75
 9.0000    6.0000     0.4145     0.0307    .8
10.0000    6.5000     0.3336     0.0134    .85

Linear 3-Port (.s3p) File Example

#  GHZ    S    MA    R    50.0
!  POWER DIVIDER, 3-PORT
5.00000    0.24254    136.711     0.68599    -43.3139    0.68599    -43.3139
           0.68599    -43.3139    0.08081     66.1846    0.28009    -59.1165
           0.68599    -43.3139    0.28009    -59.1165    0.08081     66.1846
6.00000    0.20347    127.652     0.69232    -52.3816    0.69232    -52.3816
           0.69232    -52.3816    0.05057     52.0604    0.22159    -65.1817
           0.69232    -52.3816    0.22159    -65.1817    0.05057     52.0604
7.00000    0.15848    118.436     0.69817    -61.6117    0.69817    -61.6117
           0.69817    -61.6117    0.02804     38.6500    0.16581    -71.2358
           0.69817    -61.6117    0.16581    -71.2358    0.02804     38.6500

Linear 4-Port (.s4p) File Example

#  GHZ    S    MA    R    50

5.00000  0.60262    161.240    0.40611  -42.2029   0.42918  -66.5876  0.53640  -79.3473
         0.40611    -42.2029   0.60262  161.240    0.53640  -79.3473  0.42918  -66.5876
         0.42918    -66.5876   0.53640  -79.3473   0.60262  161.240   0.40611  -42.2029
         0.53640    -79.3473   0.42918  -66.5876   0.40611  -42.2029  0.60262  161.240
6.00000  0.57701    150.379    0.40942  -44.3428   0.41011  -81.2449  0.57554  -95.7731
         0.40942    -44.3428   0.57701  150.379    0.57554  -95.7731  0.41011  -81.2449
         0.41011    -81.2449   0.57554  -95.7731   0.57701  150.379   0.40942  -44.3428
         0.57554    -95.7731   0.41011  -81.2449   0.40942  -44.3428  0.57701  150.379
7.00000  0.50641    136.693    0.45378  -46.4151   0.37845  -99.0918  0.62802  -114.196
         0.45378    -46.4151   0.50641  136.693    0.62802  -114.196  0.37845  -99.0918
         0.37845    -99.0918   0.62802  -114.196   0.50641  136.693   0.45378  -46.4151
         0.62802    -114.196   0.37845  -99.0918   0.45378  -46.4151  0.50641  136.693

Y- and Z-Parameter Files

Immittance parameters are specified in MA or RI format, where the # line has Y for admittance and Z for impedance. Both are normalized to the reference resistance.

Y- (Z-) Parameter 1-Port MA and RI File Formats

#     frequency_unit      Y      MA      R      impedance
freq    magY11    angY11
#      frequency_unit      Y      RI      R      impedance
freq    reY11    imY11

Y- (Z-) Parameter 2-Port MA and RI File Formats

#      frequency_unit      Y      MA      R      impedance
freq    magY11    angY11    magY21    angY21    magY12    angY12    magY22    angY22
#      frequency_unit      Y      RI      R      impedance
freq    reY11    imY11    reY21    imY21    reY12    imY12    reY22    imY22

Y- (Z-) Parameter 3-Port MA and RI File Formats

freq     magY11   angY11    magY12    angY12    magY13    angY13 ! 1st row
         magY21   angY21    magY22    angY22    magY23    angY23 ! 2nd row
         magY31   angY31    magY32    angY32    magY33    angY33 ! 3rd row
#    frequency_unit    Y    RI    R    impedance
freq     reY11    imY11    reY12    imY12    reY13    imY13 ! 1st row
         reY21    imY21    reY22    imY22    reY23    imY23 ! 2nd row
         reY31    imY31    reY32    imY32    reY33    imY33 ! 3rd row

Y- (Z-) Parameter 4-Port MA and RI File Formats

#    frequency_unit    Y    MA    R    impedance
freq  magY11  angY11    magY12    angY12    magY13    angY13    magY14    angY14 ! 1st row
      magY21  angY21    magY22    angY22    magY23    angY23    magY24    angY24 ! 2nd row
      magY31  angY31    magY32    angY32    magY33    angY33    magY34    angY34 ! 3rd row
      magY41  angY41    magY42    angY42    magY43    angY43    magY44    angY44 ! 4th row
#    frequency_unit    Y    RI    R    impedance
freq    reY11    imY11    reY12    imY12    reY13    imY13    reY14    imY14 ! 1st row
        reY21    imY21    reY22    imY22    reY23    imY23    reY24    imY24 ! 2nd row
        reY31    imY31    reY32    imY32    reY33    imY33    reY34    imY34 ! 3rd row
        reY41    imY41    reY42    imY42    reY43    imY43    reY44    imY44 ! 4th row

Y- (Z-) Parameter 3-Port File Example

! symbol    freq-unit    parameter-type    data-format    keyword    impedance-ohms
        #          GHz          Y          MA          R           1
! freq    magY11    angY11    magY12    angY12    magY13    angY13    ! 1st line
!         magY21    angY21    magY22    angY22    magY23    angY23    ! 2nd line
!         magY31    angY31    magY32    angY32    magY33    angY33    ! 3rd line
  4      0.008       83.122      8.5e-04      -86.740       0.007        -98.037
         0.046      -12.740      0.005         36.580       0.049        171.554
         0.046      177.588      0.004        -152.638      0.050          0.134
  8      0.016       79.068      0.002         -84.015      0.014       -102.924
         0.049      -23.015      0.006          52.828      0.051        164.123
         0.048      175.827      0.005        -139.640      0.052         -0.004
 12      0.025       73.501      0.003         -81.736      0.023       -109.374
         0.058      -36.736      0.009          58.596      0.058        152.007
         0.055      169.129      0.007        -136.047      0.059         -5.349
 18      0.036       65.138      0.004         -71.761      0.033       -119.900
         0.059      -54.761      0.013          72.274      0.052        137.118
         0.052      162.979      0.010        -121.976      0.055         -6.677

Y- (Z-) Parameter 5- to 99-Port File Formats

These file formats appear in a matrix form similar to 3- and 4-port files. Only four Y-, or Z-parameters (with 2 real numbers for each) can appear on a given line; therefore, the remaining parameters in that row of the matrix continue on the next line of the file. Each row of the Y-matrix must begin on a new line of the file. The first line of the first row of the Y-matrix begins with the frequency value. The actual Y- (Z-) parameter value is obtained by dividing (multiplying) the file entry with the reference resistance.

Y- (Z-) Parameter 10-Port File Example (at One Frequency)

#      frequency_unit      Y      MA      R      impedance
freq  magY11  angY11  magY12  angY12  magY13  angY13  magY14  angY14 ! 1st row
magY15  angY15  magY16  angY16  magY17  angY17  magY18  angY18
magY19  angY19  magY1,10  ngY1,10
magY21  angY21  magY22  angY22  magY23  angY23  magY24  angY24 ! 2nd row
magY25  angY25  magY26  angY26  magY27  angY27  magY28  angY28
magY29  angY29  magY2,10  angY2,10
magY31  angY31  magY32  angY32  magY33  angY33  magY34  angY34 ! 3rd row
magY35  angY35  magY36  angY36  magY37  angY37  magY38  angY38
magY39  angY39  magY3,10  angY3,10
magY41  angY41  magY42  angY42  magY43  angY43  magY44  angY44 ! 4th row
magY45  angY45  magY46  angY46  magY47  angY47  magY48  angY48
magY49  angY49  magY4,10  angY4,10
magY51  angY51  magY52  angY52  magY53  angY53  magY54  angY54 ! 5th row
magY55  angY55  magY56  angY56  magY57  angY57  magY58  angY58
magY59  angY59  magY5,10  angY5,10
magY61  angY61  magY62  angY62  magY63  angY63  magY64  angY64 ! 6th row
magY65  angY65  magY66  angY66  magY67  angY67  magY68  angY68
magY69  angY69  magY6,10  angY6,10
magY71  angY71  magY72  angY72  magY73  angY73  magY74  angY74 ! 7th row
magY75  angY75  magY76  angY76  magY77  angY77  magY78  angY78
magY79  angY79  magY7,10  angY7,10
magY81  angY81  magY82  angY82  magY83  angY83  magY84  angY84 ! 8th row
magY85  angY85  magY86  angY86  magY87  angY87  magY88  angY88
magY89  angY89  magY8,10  angY8,10
magY91  angY91  magY92  angY92  magY93  angY93  magY94  angY94 ! 9th row
magY95  angY95  magY96  angY96  magY97  angY97  magY98  angY98
magY99  angY99  magY9,10  angY9,10
!10th row
magY10,1  angY10,1  magY10,2  angY10,2  magY10,3  angY10,3  magY10,4  angY10,4
magY10,5  angY10,5  magY10,6  angY10,6  magY10,7  angY10,7  magY10,8  angY10,8
magY10,9  angY10,9  magY10,10  angY10,10

Discrete Format

The discrete data file consists of an array of data arranged in rows and columns. The values available for each parameter are arranged in columns. Following the BEGIN DSCRDATA line is the % format line which specifies the names of dependent variables. The first column is always treated as a string; other columns are real, integer or string, depending on the first row of data.

The first column, under the heading Index in the example below, contains entries used to identify each row in the file. These entries can be either an integer or an alphanumeric identifier, and can be thought of as a list of specification numbers (or part numbers). For example, the data file data/stdvalues15.dscr is arranged as follows:

REM     stdvalues15.dscr
BEGIN DSCRDATA
%  INDEX      A12      A13
     1        1000      1000
     2        1000      1200
     3        1000      2200
     4        1200      1000
     5        1200      1200
     6        1200      2200
END DSCRDATA

Selecting a Row

A row of data can be selected by specifying its row index (starting from 0). In this example, the file lists two columns of values labeled A12 and A13. By specifying 2 as the row number, the values 1000 and 2200 are selected for A12 and A13, respectively.

Using the File with a DAC

To use the data within the file, you must link the file to the component of interest. You reference a discrete data file in this way by using a DAC:

  1. Place a DataAccessComponent data item in your design. The DAC is located in the Data Items palette. Double-click the DAC to edit it.
  2. On the File tab, in the File Name field, specify the name of the discrete data file, and accept the default setting for File Type , which is Discrete .
  3. On the Interpolation tab, accept the defaults for Interpolation Method ( Index Lookup ) and for Interpolation Domain ( Rectangular ).
  4. On the Independent Variable tab, set the names and values for the independent variables. This is necessary since data in a discrete data file can be accessed only by using an index lookup value. This means looking up data by row number.
    To set up an independent variable, enter the name in the Variable Name field. For a discrete data file, the innermost independent variable is the dimension number which should be used as the name. Next, enter the row number in the Value field, which can be a variable assigned a value on the schematic. Then click Add to insert the name and value in the table at the left. Repeat this process for each independent variable in the data file.
    Values entered for Variable Name are treated as strings, and quotation marks are inserted with these values automatically when added to the table's Name column. However, the innermost independent variable of a discrete data file must be specified as a cardinal integer instead of a string name. Assuming you are working with a one-dimensional data file, enter @1 to enter the integer (@ suppresses the quotation marks). For example, here is a portion of a one-dimensional discrete data file:
    Begin dscrdata
    % index mydata
    0 12
    1 34
    2 56
    .....
    end

    If you define a variable called MyIndex in a schematic whose value represents the index of the row of data to be accessed, the table of independent variables should be constructed this way to read the one-dimensional file:

    Name Value
    1 MyIndex

    The value assigned to MyIndex in the schematic determines which row of data is read. So if MyIndex = 0 , the first row is read.

  5. Place the component whose parameter values should come from the data file. Double-click the component.
  6. Under Pa rameter Entry Mode, select File Based.
  7. Under Data Access Component Instance , enter the ID of the desired DAC data item.
  8. Under Dependent Parameter Name , enter the name of a dependent variable in the discrete data file (In the sample above, the dependent variable names are A12 and A13.).

Example

For an example of using a discrete data file, refer to amp1.dsn in the Examples directory, under Tutorials/DataAccess_prj .

Model MDIF Files

Nonlinear devices obtain their model parameters either from a model item or a file. For those devices that use a file, such as the EE_BJT2_Model , this section discusses the appropriate format for a model file, and how to read the file.

Model files are text files that contain model parameter names and values. A sample model file for the EE_BJT2_Model is shown below. Comments can be placed in the file by starting the line with REM . The model parameters are placed between BEGIN BDTA and END BDTA . One or more parameter names are placed on a line beginning with the percent symbol (%); corresponding values are placed in the same order on the next line. Parameter names can be in any order and are not case sensitive. Any parameters that are not present in the file take on their documented default values. Parameter names for each device are listed in the documentation for that device.

REM any line that starts with REM is ignored
BEGIN BDTA
%  Rb              Rc                Re              Tamb           Ibir              Nbr
   0.637326        5.17646           0.695           25             3.72528e-15       1.0537
%  Isc             Nc                Ibif            Nbf            Ise               Ne
   0               2                 5.70565e-17     1.10843        4.63077e-14       1.83578
%  Var             Nr                Isr             Ikr            Vaf               Nf
   1.1858          1.02201           1.12936e-14     100            54.9731           0.977768
%  Isf             Ikf               Cjc             Vjc            Mjc               Cje
   5.37696e-16     0.857731          5.87976e-13     0.313492       0.0650757         9.81026e-13
%  Vje             Mje               Tf              Tr             Fc
   1.05535         0.475724          2.09636e-12     0              0.9
%  Xtf             Vtf               Itf
   10              4.32912           1e-09
END BDTA

The following figure shows how to obtain parameter values from a model MDIF file using a DataAccessComponent. The DAC refers to the model file by name. In this example, the file name is bfqtm1.txt . Additionally, Type is set to MDIFmodel and ExtrapMode set to InterpolationMode . On the device model component, the AllParams parameter is set to the name of the DAC, which is DAC_BJT .


Reading a Model MDIF file using a DataAccessComponent

PDF Format

This format is for user-specified Probability Density Functions (PDF). PDF is used for arbitrary distributions that are not correlated. The two methods available accommodate:

Probability density functions are represented as vertices of piecewise linear segments. These value/ordinate pairs are stored in a textual data file in a prescribed format. The nominal value is also stored.

User-specified probability density files have an extension .pdf and use an MDIF file format. Only a single distribution definition is allowed in each .pdf file.

Guidelines for .pdf

Example PDF File

The following example shows how to create a user-defined PDF file. The technique involves the use of a discrete file which contains the nominal value and the statistical data (in piece-wise linear form.) In this example, the first block contains the allowable nominal values, and the second block contains the statistical information. The VALUE/ORDINATE pairs describe the user-defined PDF.

BEGIN DSCRDATA
% INDEX my_index
1               50
2               60
3               70
4               100
END DSCRDATA
REM
REM  VAR INDEX value below must correlate with the row in the above data
REM  block, as selected by the iVal1 parameter of the DAC.
REM  For example, if iVal1=3, the 4th row of data from above is chosen
REM (INDEX=4), and VAR INDEX = 4 must be specified below
REM
REM  By experiment, the NOMINAL value does not have to correlate with the
REM  row number in the DSCRDATA block.
REM
VAR INDEX = 4
VAR PARNAME = my_index
BEGIN TOLERANCE
%NOMINAL
100
%VALUE ORDINATE
90      0.0
95      1.0
98      0.0
100     0.0
102     0.0
105     1.0
110     0.0
END TOLERANCE

Note
The total area under your PDF does not have to equal one as in the strict definition of a PDF-the simulator will automatically scale your PDF to meet this condition.

Interpretation of PDF data

Interpretation of user-supplied PDF data is piece-wise linear with respect to value/ordinate pairs. The data preparation previously described enables the program to supply a properly qualified variate.

To realize a statistical variable which obeys the user-supplied PDF, a uniform variate on the interval 0 to 1 is used as an input to a function which is the inverse of the cumulative distribution function (CDF). The CDF is formed by integrating the PDF from its most negative value to its most positive value, with the following conditions:

Applying this uniform [0,1] variate to the inverse of the CDF results in a statistical variable having the user-specified probability density function.

PDFs may be used with:

S2PMDIF Format

The S2PMDIF data format file (. s2p ) can contain multiple two-port small-signal measurement data and associated noise measurement data in a single file. S2P indicates that the data used is typically S-parameters, though other small-signal parameters (Y, Z, H, G) are supported. These files are a natural extension of two-port S-parameter Touchstone files. For information about Touchstone files, see Touchstone SnP Format. MDIF refers to the fact that these files use the format and syntax rules associated with the Measurement Data Interchange Format (MDIF).

The most typical application of the S2PMDIF format is the creation of a file-based statistical representation for one or more devices in the fabrication process. Due to process variations, S-parameters for the same device will vary naturally. Using the S2PMDIF format, which captures all S-parameter data, in conjunction with statistical and yield analysis tools, which can randomly select a part, statistical characterization of a device (known as a truthmodel ) for yield analysis is achieved.

General File Structure

The file structure can repeat for as many small-signal data/noise data pairs as needed. Noise data is optional and the file structure shown here may only have ACDATA blocks if desired.

! Comment Line
VAR <_Your_variable_name#1_> = <Your_Value>_
VAR <_Your_variable_name#2_> = <Your_Value>_
VAR <_Your_variable_name#n_> = <Your_Value>_
BEGIN ACDATA
! Option line
% F n11x n11y n21x n21y n12x n12y ! signal format line
! < Your small data consistent with above format line >
END
BEGIN NDATA
! Option line
% F nfmin n11x n11y rn ! noise format line
! < Your noise data >
END
! Repeat entire ACDATA and NDATA blocks above if necessary
! preceded by different VAR values to distinguish measurements.

Guidelines

The details presented in this section are demonstrated in Example S2PMDIF File. You are encouraged to review the example, then refer back to these guidelines for the detailed information.

VAR items VAR items are used to declare variables that distinguish different small signal/noise parameter pairs. The format is,

VAR <name> = <value>

Examples:

VAR Part_XYZ_sample = 1
VAR SAMPLE = 0
Note
VAR is a reserved keyword for the MDIF file. SAMPLE is a reserved variable for statistical analysis applications.

General information S2PMDIF supports

multiple small-signal and/or noise data pairs
or
one small-signal and/or noise data pair.

If the latter is used, no VAR declaration is required.

Comments Comments in the S2PMDIF are supported using ! or the REM statement. The ! may appear at the beginning of a line, or as a trailing comment at the end of a line. REM, however, may only serve as a leading comment on the beginning of a line. Examples:

REM VAR Lot = 1
! VAR Lot = 1
VAR Lot = 1 ! This is the wafer lot number

S2PMDIF data blocks  S2PMDIF contains two main data blocks framed by BEGIN and END statements:

ACDATA Lists small-signal parameters vs. frequency.
Framed by BEGIN ACDATA ... END.
The ACDATA block is required in the S2PMDIF file.
NDATA Lists noise parameters vs. frequency.
Framed by BEGIN NDATA ... END.
The NDATA block is optional in the S2PMDIF file.

Supported small-signal parameters The ACDATA (small-signal parameter) block supports the small-signal parameter types S, Y, Z, H, or G.

Supported noise data The NDATA (noise data) block supports parameters NFMIN (minimum noise figure), Gamma Opt (optimal source reflection coefficient), and RN (noise resistance). This is supported for use with all small-signal parameter types.

Option line The option line declares data contained in the SFC m2PMDIF file. These are

There are two option line formats:

#AC (freq_unit SS_ParmType SS_Parm_Format R Scaling/system impedance)
# freq_unit SS_ParmType SS_Parm_Format R Scaling/system

where:

freq_unit = Sets frequency units.
Options are Hz, KHz, MHz, or GHz.
SS_ParmType = Sets small-signal parameter type.
Options are: S, Y, Z, H, or G (default is S).
SS_Parm_format = Small signal parameter format.
Options are RI, MA, or DB (default is RI), where:
RI declares Real Imaginary Format
MA declares Magnitude Angle
DB is 20*Log(Parameter_Magnitude) Angle format
R Scaling/system = Declares scaling/system impedance
(default is 50 ohms)

Important Option Line Information

Signal Format Line The syntax for the signal format line is
% F n11x n11y n21x n21y n12x n12y n22x n22y

The signal format line comprises nine columns of data in the ACDATA block. The first column is frequency, the remaining columns pertain to small-signal parameters. In S2PMDIF, each two-port small-signal parameter is represented in two parts. The format being either Magnitude(x) and Angle(y), or Real(x) and Imaginary(y), or dB(x) and Angle(y). (See guideline for Option line above.) Given this, the small signal parameters are entered as eight columns of data. The format line has the following meaning where n is S, Y, Z, H, or G:

F = Frequency in Hz, kHz, MHz, or GHz.
n11x = Magnitude, real part, or dB value (depending which option is used) for small signal parameter n11.
n11y = Angle, or imaginary part (depending which option is used) for small signal parameter n11.
n21x = Magnitude, real part, or dB value (depending which option is used) for small signal parameter n21.
n21y = Angle, or imaginary part (depending which option is used) for small signal parameter n21.
n12x = Magnitude, real part, or dB value (depending which option is used) for small signal parameter n12.
n12y = Angle, or imaginary part (depending which option is used) for small signal parameter n12.
n22x = Magnitude, real part, or dB value (depending which option is used) for small signal parameter n22.
n22y = Angle, or imaginary part (depending which option is used) for small signal parameter n22.

When the small-signal parameter format is declared (Magnitude Angle, Real Imaginary, or dB Angle), all small-signal parameters assume that format. For example, if Magnitude Angle is declared, all small signal parameters assume magnitude and angle format. If Real Imaginary is declared, all parameters assume real and imaginary format. If MA, RI, or DB are not specified at all, the default format is RI.

Noise Format Line The syntax for the noise format line is

% F nfmin n11x n11y rn

The noise format line comprises five columns of data in the NDATA block.

F = Frequency in Hz, kHz, MHz, or GHz.
nfmin = Minimum noise figure.
n11x
n11y
= The third and forth columns are optimum source reflection coefficient described as either Magnitude (n11x) and Angle (n11y), Real (n11x) and Imaginary (n11y), or DB (n11x) and Angle (n11y). (See guideline for Option line above.)
rn = Equivalent normalized noise resistance.

In the option line, when MA, RI, or DB is declared, it only pertains to the optimum source reflection coefficient data. If MA, RI, or DB are not specified at all, the default format is RI.

Example S2PMDIF File

The following example is annotated using single small signal, noise parameter data pair.

! File using #AC ( ... ) Optionline
! Created Mon Jan 26 15:02:05 2004
VAR Wafer_Lot = 0
BEGIN ACDATA
#AC( hz S ma R 50 )
! Choice of units:  Hz, KHz, MHz, or GHz
! Optional Selection:  S,Z,Y,H,or G {default S}
! Optional Selection:  MA, DB, RI   {default RI}
!                      DB = 20*log(mag(value))
! Optional Selection:  R XY; where XY=reference res {default R 50}
% F n11x n11y n21x n21y n12x n12y n22x n22y
!F      Mag_S11  Ang_S11    Mag_S21  Ang_S21    Mag_S12  Ang_S12    Mag_S22  Ang_S22
1e9    0.2416    -89.666    0.9138    -22.252    0.9138    -22.252    0.2366  -107.202
2e9    0.4456   -108.425    0.8336    -43.447    0.8336    -43.447    0.4394  -143.149
3e9    0.6068   -121.516    0.7234    -62.672    0.7234    -62.672    0.6044  -171.881
4e9    0.7203   -131.748    0.6068    -79.382    0.6068    -79.382    0.7259  -164.03
5e9    0.7945   -139.741    0.5001    -93.494    0.5001    -93.494    0.8097   143.997
END
BEGIN NDATA
! Noise Data block optional
#AC( hz S ma R 50 )
! Choice of units:  Hz, KHz, MHz, or GHz
! Optional Selection:  S,Z,Y,H,or G {default S}
! Optional Selection:  MA, DB, RI   {default RI}
!        MA, DB, RI pertains to Gamma Opt data only
!        DB = 20*log(mag(value))
! Optional Selection:  R XY; where XY=reference res {default R 50}
% F NFMIN N11X N11Y RN
! Freq              nfmin_in_dB  GammaOpt_Mag  GammaOpt_Ang    Normalized R
1.0000000E9    0.1221            0.8026              29.711                0.1200
2.0000000E9    0.2440            0.6919              57.344                0.1200
3.0000000E9    0.3659            0.6515              80.598                0.1201
4.0000000E9    0.4878            0.6507              98.564                0.1201
5.0000000E9    0.6097            0.6671             111.954                0.1202
END
! File using # freq_unit ... Optionline
! Created Mon Jan 26 15:02:05 2004
VAR Wafer_Lot = 0
BEGIN ACDATA
# hz S ma R 50
! Choice of units:  Hz, KHz, MHz, or GHz
! Optional Selection:  S,Z,Y,H,or G {default S}
! Optional Selection:  MA, DB, RI   {default RI}
!                      DB = 20*log(mag(value))
! Optional Selection:  R XY; where XY=reference res {default R 50}
% F n11x n11y n21x n21y n12x n12y n22x n22y
!F      Mag_S11  Ang_S11    Mag_S21  Ang_S21    Mag_S12  Ang_S12    Mag_S22  Ang_S22
1e9    0.2416    -89.666    0.9138    -22.252    0.9138    -22.252    0.2366  -107.202
2e9    0.4456   -108.425    0.8336    -43.447    0.8336    -43.447    0.4394  -143.149
3e9    0.6068   -121.516    0.7234    -62.672    0.7234    -62.672    0.6044  -171.881
4e9    0.7203   -131.748    0.6068    -79.382    0.6068    -79.382    0.7259  -164.03
5e9    0.7945   -139.741    0.5001    -93.494    0.5001    -93.494    0.8097   143.997
END
BEGIN NDATA
! Noise Data block optional
# hz S ma R 50
! Choice of units:  Hz, KHz, MHz, or GHz
! Optional Selection:  S,Z,Y,H,or G {default S}
! Optional Selection:  MA, DB, RI   {default RI}
!                  MA, DB, RI pertains to Gamma Opt data only
!                  DB = 20*log(mag(value))
! Optional Selection:  R XY; where XY=reference res {default R 50}
% F NFMIN N11X N11Y RN
! Freq              nfmin_in_dB    GammaOpt_Mag    GammaOpt_Ang    Normalized R
1.0000000E9    0.1221              0.8026                29.711                0.1200
2.0000000E9    0.2440              0.6919                57.344                0.1200
3.0000000E9    0.3659              0.6515                80.598                0.1201
4.0000000E9    0.4878              0.6507                98.564                0.1201
5.0000000E9    0.6097              0.6671               111.954                0.1202
END

Additional Examples: ACDATA and NDATA Blocks

! Created Mon Jan 26 15:02:18 2004
VAR Wafer_Lot = 0
BEGIN ACDATA
#AC( hz S ri R 50 )
% F n11x n11y n21x n21y n12x n12y n22x n22y
           1e+009    0.00140798345      -0.241631115       0.845829604
-0.346084206       0.845829604      -0.346084206     -0.0699873389
-0.226051765
           2e+009     -0.140908488      -0.422961056         0.6052091
-0.573277416         0.6052091      -0.573277416      -0.351668311
-0.263572469
           3e+009     -0.317221301       -0.51732628       0.332133361
-0.642749288       0.332133361      -0.642749288      -0.598403728
-0.0853663052
           4e+009     -0.479677672      -0.537464874       0.111818135
-0.596499788       0.111818135      -0.596499788      -0.697916575
0.199718707
           5e+009     -0.606360921         -0.513473     -0.0304812178
-0.499151696     -0.0304812178      -0.499151696      -0.655090631
0.475990476
END
BEGIN NDATA
#AC( hz S ri R 1 )
% F NFMIN N11X N11Y RN
1.00000000000000000E9    1.22029516577356920E-1    6.97160538558048340E-1
3.97731417445914650E-1    6.00019739208800920
2.00000000000000000E9    2.44034955394409670E-1    3.73350985510129000E-1
5.82545299649481410E-1    6.00078956835208110
3.00000000000000000E9    3.65992281414391130E-1    1.06430454557825050E-1
6.42814879525177040E-1    6.00177652879219800
4.00000000000000000E9    4.87877544837279590E-1   -9.69155972949636890E-2
6.43519718192936190E-1    6.00315827340834660
5.00000000000000000E9    6.09666923194363260E-1   -2.49450600814350180E-1
6.18811927554552810E-1    6.00493480220054730
END
VAR Wafer_Lot = 1
BEGIN ACDATA
#AC( hz S ri R 50 )
% F n11x n11y n21x n21y n12x n12y n22x n22y
           1e+009     0.0133409179      -0.230137244       0.840070938
-0.340315654       0.840070938      -0.340315654     -0.0617617486
-0.229382577
           2e+009     -0.120955165       -0.40456472       0.604746033
-0.565976614       0.604746033      -0.565976614      -0.345621191
-0.270746041
           3e+009     -0.289098146      -0.497222626       0.335340188
-0.637454262       0.335340188      -0.637454262      -0.596941273
-0.0943544823
           4e+009     -0.445587328      -0.518605287       0.116142331
-0.593841291       0.116142331      -0.593841291       -0.70077353
0.192167183
           5e+009     -0.568522019      -0.496734037      -0.026397422
-0.498328865      -0.026397422      -0.498328865      -0.660073231
0.471463342
END
BEGIN NDATA
#AC( hz S ri R 1 )
% F NFMIN N11X N11Y RN
1.00000000000000000E9    1.71762793604862220E-1    6.97308317021682810E-1
3.02305313263392340E-1    6.9596391614503332
2.00000000000000000E9    3.43458465714362450E-1    4.15378270949377270E-1
4.48199090821574850E-1    6.9623162008013688
3.00000000000000000E9    5.15020130532548670E-1    1.85487069735727930E-1
5.06615547307641110E-1    6.9667779330530832
4.00000000000000000E9    6.86381371368581040E-1    5.35645741807940560E-3
5.20374575111159030E-1    6.9730243582054969
5.00000000000000000E9    8.57476469498637610E-1   -1.35072700985538610E-1
5.12375200485824140E-1    6.981055476258586
END
VAR Wafer_Lot = 2
BEGIN ACDATA
#AC( hz S ri R 50 )
% F n11x n11y n21x n21y n12x n12y n22x n22y
           1e+009     0.0261985778       -0.23292849       0.822455256
-0.341254054       0.822455256      -0.341254054     -0.0505770288
-0.23686219
           2e+009     -0.112333318      -0.406095322       0.583604607
-0.563040028       0.583604607      -0.563040028      -0.340993754
-0.278957576
           3e+009     -0.282374986      -0.494226554       0.314667444
-0.627999778       0.314667444      -0.627999778      -0.594911193
-0.0996720908
           4e+009     -0.437476982      -0.511079142      0.0996827436
-0.579649532      0.0996827436      -0.579649532      -0.698293478
0.188345791
           5e+009     -0.557310676      -0.486460159     -0.0377810523
-0.482462248     -0.0377810523      -0.482462248      -0.657181646
0.467271981
END
BEGIN NDATA
#AC( hz S ri R 1 )
% F NFMIN N11X N11Y RN
1.00000000000000000E9    2.20723603091905400E-1    6.88702175738749210E-1
3.10193703295093660E-1    8.7252393655197622
2.00000000000000000E9    4.41304833276760710E-1    4.00100485663632010E-1
4.56013841018826490E-1    8.7307131145790162
3.00000000000000000E9    6.61602142031938460E-1    1.66985293710630910E-1
5.11697368308757120E-1    8.7398360296778144
4.00000000000000000E9    8.81475616395049320E-1   -1.39839699776407360E-2
5.22456153286954630E-1    8.75260811081613
5.00000000000000000E9    1.10078776413520350E0    -1.53929731170780970E-1
5.11924800755568120E-1    8.7690293579939471
END
VAR Wafer_Lot = 3
BEGIN ACDATA
#AC( hz S ri R 50 )
% F n11x n11y n21x n21y n12x n12y n22x n22y
           1e+009     -0.111624701      -0.405714686        0.66636886
-0.469619205        0.66636886      -0.469619205      -0.191986725
-0.329432821
           2e+009      -0.41908962      -0.512855503       0.292032657
-0.563375528       0.292032657      -0.563375528      -0.569338122
-0.206257358
           3e+009     -0.620672222      -0.472453429      0.0607572371
-0.47694961      0.0607572371       -0.47694961      -0.718017693
0.101776232
           4e+009     -0.732902391      -0.404898014     -0.0522793425
-0.36498764     -0.0522793425       -0.36498764       -0.69113052
0.390569198
           5e+009     -0.795560017       -0.34381194      -0.101065286
-0.269885315      -0.101065286      -0.269885315      -0.576309143
0.608680065
END
BEGIN NDATA
#AC( hz S ri R 1 )
% F NFMIN N11X N11Y RN
1.00000000000000000E9    5.18703037517405720E-1    2.56297603514494640E-1
5.77469208317883620E-1    9.5231179096495424
2.00000000000000000E9    1.03556771684315740E0    -2.06911574434137120E-1
5.86373914380050380E-1    9.5447677385981624
3.00000000000000000E9    1.54881350043704070E0    -4.46640278565243860E-1
5.11094686752464700E-1    9.5808507868458594
4.00000000000000000E9    2.05677054388418230E0    -5.81970283235218930E-1
4.38893368283120290E-1    9.6313670543926495
5.00000000000000000E9    2.55792347993451760E0    -6.65702281631675600E-1
3.80285542816346120E-1    9.6963165412384953
END
VAR Wafer_Lot = 4
BEGIN ACDATA
#AC( hz S ri R 50 )
% F n11x n11y n21x n21y n12x n12y n22x n22y
           1e+009    -0.0997555774      -0.381004445       0.705619581
-0.459619141       0.705619581      -0.459619141      -0.188617047
-0.322113995
           2e+009     -0.387429707       -0.50652345       0.338299265
-0.580037701       0.338299265      -0.580037701      -0.568533379
-0.21853959
           3e+009      -0.59300033       -0.48258943      0.0913926446
-0.508488094      0.0913926446      -0.508488094      -0.734058749
0.0900874159
           4e+009      -0.71385299      -0.421239785     -0.0364444847
-0.397584211     -0.0364444847      -0.397584211      -0.713634507
0.390775305
           5e+009     -0.783429944      -0.361124669     -0.0944553209
-0.298630566     -0.0944553209      -0.298630566      -0.595965263
0.61920336
END
BEGIN NDATA
#AC( hz S ri R 1 )
% F NFMIN N11X N11Y RN
1.00000000000000000E9    4.07278952069115260E-1    3.20981863953611680E-1
5.26706311842366580E-1    7.6643738931871832
2.00000000000000000E9    8.13665870677917270E-1   -1.24308690147576310E-1
5.64368849214357040E-1    7.6773474702487121
3.00000000000000000E9    1.21828615365247780E0    -3.71333282289684650E-1
5.08578990984615050E-1    7.6989700986845886
4.00000000000000000E9    1.62029912735584050E0    -5.17462235668050940E-1
4.46062394082844540E-1    7.7292417784948277
5.00000000000000000E9    2.01891277231332160E0    -6.10837572225724480E-1
3.92061347849876940E-1    7.7681625096794225
END
VAR Wafer_Lot = 5
BEGIN ACDATA
#AC( hz S ri R 50 )
% F n11x n11y n21x n21y n12x n12y n22x n22y
           1e+009     -0.148708863      -0.411149613       0.661371247
-0.487106054       0.661371247      -0.487106054      -0.245385025
-0.343281312
           2e+009     -0.459669272      -0.498617399        0.27661003
-0.561103773        0.27661003      -0.561103773      -0.633354256
-0.183147263
           3e+009      -0.65008453      -0.447693986       0.054820678
-0.464075002       0.054820678      -0.464075002      -0.761781857
0.147962113
           4e+009     -0.751951738      -0.378576048     -0.0489188832
-0.35214127     -0.0489188832       -0.35214127      -0.712725662
0.441632279
           5e+009     -0.807697362      -0.319231466     -0.0924561924
-0.260818351     -0.0924561924      -0.260818351      -0.581417298
0.655785284
END
BEGIN NDATA
#AC( hz S ri R 1 )
% F NFMIN N11X N11Y RN
1.00000000000000000E9    4.82467789743262190E-1    2.28415357401098710E-1
5.09316970466515430E-1    7.1489835897047316
2.00000000000000000E9    9.63454968428843020E-1   -2.06744364689974120E-1
5.11947374976623950E-1    7.1696884038188884
3.00000000000000000E9    1.44152132366022330E0    -4.32828356211392770E-1
4.47558248165678220E-1    7.2041964273425005
4.00000000000000000E9    1.91530443304156290E0    -5.63042210953368820E-1
3.86155387977519470E-1    7.2525076602755627
5.00000000000000000E9    2.38355146947575140E0    -6.45263220258679840E-1
3.36048596462367750E-1    7.3146221026180545
END

P2D Format

The large-signal or power-dependent S-parameter (.p2d) file is a system input file you create from an S-parameter file, inserting the MDIF format. You use the . p2d file to characterize the component by a complete set of 2-port large-signal S-parameters, accounting for power dependence of S21, S11, S22, and S12, plus optional noise data, and optional intermodulation data.

A .p2d file can also be created via simulation by placing a P2D simulation component from the LSSP Simulation Library in the design.

It possible to have multi-dimensional P2D files with VAR statements separating individual basic P2D sections. Such files may be automatically generated using the AmplifierP2D_Setup component from the System-Data Models library.

The format for a basic P2D section is shown here. Required keywords appear in UPPERCASE ITALIC characters.

!!! Begin basic P2D syntax
BEGIN ACDATA !!! required 2-port S-parameter data block
..... ( Required small signal section identical to ACDATA section of S2D format )
..... ( Optional large signal section - shown in the next section )
END ACDATA
BEGIN NDATA !!! optional 2-port noise data block
....
END NDATA
BEGIN IMTDATA !!! optional intermodulation table
....
END IMTDATA
!!! End basic P2D syntax

This format can be expanded to form a multi-dimensional P2D file using VAR statements. For instance a single P2D file containing two temperature points over three bias points contains a total of six basic sections as shown. Note that each sequence of VAR statements should preserve the order of the sweep, in this case temperature over bias and each sweep variable, for example, bias has its values arranged in monotonically increasing order. In this example B1 < B2 < B3 and T1 < T2 . Required keywords appear in UPPERCASE ITALIC characters.

VAR temp=T1
VAR bias=B1
...... ( 1st Basic P2D section )
VAR temp=T1
VAR bias=B2
...... ( 2nd Basic P2D section )
VAR temp=T1
VAR bias=B3
...... ( 3rd Basic P2D section )
VAR temp=T2
VAR bias=B1
...... ( 4th Basic P2D section )
VAR temp=T2
VAR bias=B2
...... ( 5th Basic P2D section )
VAR temp=T2
VAR bias=B3
...... ( 6th Basic P2D section )

Guidelines for .p2d

The ACDATA Block

The ACDATA block allows you to specify the small- and large-signal characteristics of the 2-port.

ACDATA Block Examples

2-port with 50-ohm S-parameters:

BEGIN  ACDATA
# AC( GHZ   S  DB  R 50   FC 1.0 0.0 )
%  F   n11x  n11y  n21x  n21y  n12x  n12y  n22x  n22y
! RF-freq S11-db S11-deg S21-dB S21-deg S12-dB S12-deg S22-db  S22-deg
1.0000      -15     45       8     25     -20    -15     -12     10
2.0000      -16     25       9     30     -20    -15     -12     20
3.0000      -17    -10      10     35     -20    -15     -11     30
%  F
1.00
%  P1  P2   n11x  n11y  n21x  n21y  n12x  n12y  n22x  n22y
-15.000   -5.000  ...
-5.000     5.000  ...  large-signal S-parameter data here ....
5.020    15.000   ...
%  F
2.00
%  P1  P2   n11x  n11y  n21x  n21y  n12x  n12y  n22x  n22y
-15.000   -5.000  ...
-5.000     5.000  ...  large-signal S-parameter data here ...
5.020    15.000  ...
END

2-port frequency converter with variable RF freq, variable LO freq, fixed IF freq, fixed LO power, and RF-to-IF 2-port 50-ohm S-parameters:

BEGIN  ACDATA
# AC( GHZ  VDB  R 50  FC 0  0.2 ) ! this gives a constant IF of 0.2 GHz
%  F   n11x  n11y  n21x  n21y  n12x  n12y  n22x  n22y
! RF-freq S11-vswr S11-deg S21-dB S21-deg S12-dB S12-deg S22-vswr S22-deg
1.0000      1.2      0       -8     0       -20    0       1.3      0
2.0000      1.3      0       -9     0       -20    0       1.2      0
3.0000      1.4      0       -10    0       -20    0       1.3      0
%  F
1.00
%  P1  P2   n11x  n11y  n21x  n21y  n12x  n12y  n22x  n22y
-15.000  -5.00    ...
-5.000    5.00    ...  large-signal S-parameter data here ....
5.020   15.00    ...
%  F
2.00
%  P1  P2   n11x  n11y  n21x  n21y  n12x  n12y  n22x  n22y
-15.000  -5.00    ...
-5.000    5.00    ...  large-signal S-parameter data here ...
5.020   15.00    ...
END

2-port frequency converter with variable RF freq, fixed LO freq, variable IF freq, fixed LO power, and RF-to-IF 2 port 50-ohm S-parameters:

BEGIN  ACDATA
# AC( GHZ   DB  R 50  FC -1 4 )  !  this gives an IF = 4 - RF
%  F   n11x  n11y  n21x  n21y  n12x  n12y  n22x  n22y
! RF-freq S11-dB S11-deg S21-dB S21-dB S12-dB S12-deg S22-dB S22-deg
1.0000      -12    0       -8     0     -20     0       -13    0
2.0000      -13    0       -9     0     -20     0       -12    0
3.0000      -14    0       -10    0     -20     0       -13    0
%  F
1000.00
%  P1  P2   n11x  n11y  n21x  n21y  n12x  n12y  n22x  n22y
-15.000   -5.00   ...
-5.000     5.00   ...  large-signal S-parameter data here ....
5.020    15.00   ...
%  F
2000.00
%  P1  P2   n11x  n11y  n21x  n21y  n12x  n12y  n22x  n22y
-15.000   -5.00   ...
-5.000     5.00   ...  large-signal S-parameter data here ...
5.020    15.00   ...
END

The NDATA Block

The NDATA block allows the user to specify the small-signal noise characteristics of the 2-port.

The IMTDATA Block

The IMTDATA data block allows you to specify for a 2-port frequency converter the single tone output intermodulation levels with respect to the fundamental output tone.

Example .p2d File

! --------------------------------------------------------------------------
! ampp2d.p2d
! --------------------------------------------------------------------------
! This is a sample P2D data file containing an ACDATA block, an NDATA block,
! and an IMTDATA block.
! --------------------------------------------------------------------------
!
BEGIN ACDATA
! This line and all lines starting with the comment (!) character are ignored
! Do not have a blank line or comments as the first line in this file
! In a P2D file ACDATA is a required block of data. It may have one or two
! sections.
! (a) Required - Full 2-port small signal S-parameters vs frequency
! (b) Optional - Full 2-port large signal S-parameters vs (frequency X power)
! The small signal data must precede the large signal data in this block.
# AC( GHZ   S  RI   R 50.0    FC   1.  0. )
!  Optional Selection: HZ, KHZ, MKZ, or GHZ;  Default is GHZ
!  Optional Selection: S, Z, Y, H, or G;      Default is  S
!  Optional Selection: MA, DB, or RI;         Default is RI
!  Optional Selection: R xx; where xx = reference resistance; Default R 50.0
!  Optional Selection: FC x1 x2 is for frequency conversion: Fout=x1*Fin + x2
!                                               Default is  Fout = Fin
%  F   n11x  n11y  n21x  n21y  n12x  n12y  n22x  n22y
!  The above line is the format line showing the order in the following data
!   lines
!  The columns of data can be in any order
1.0000   0.3926   -0.1211  -0.0003  -0.0021  -0.0003  -0.0021  0.3926 -0.1211
2.0000   0.3517   -0.3054  -0.0096  -0.0298  -0.0096  -0.0298  0.3517 -0.3054
3.0000   0.0430   -0.5916  -2.6933  -0.1433  -0.5933  -0.1433  0.0430 -0.5916
4.0000   0.4071   -0.2756  2.4617   0.6234   0.3617   0.4234   0.4071 -0.2756
5.0000   0.2041   0.2880   2.6848   -0.5367  0.3848   -0.4367  0.2041 0.2880
6.0000   0.5666   0.0343   2.0383   -0.7437  0.0383   -0.7437  0.5666 0.0343
7.0000   0.0430   0.6916   -2.6933  0.1433   -0.6933  0.1433   0.0430 0.6916
8.0000   0.3059   0.5659   -0.1000  0.1424   -0.1000  0.1424   0.3059 0.5659
9.0000   0.3071   0.4145   -0.0307  0.0673   -0.0307  0.0673   0.3071 0.4145
10.0000  0.3419   0.3336   -0.0134  0.0379   -0.0134  0.0379   0.3419 0.3336
! This is the end of the small signal ACDATA section
!
! This is the beginning of the large signal ACDATA section
% F
1.00
% P1 P2 n11x  n11y  n21x  n21y  n12x  n12y  n22x  n22y
-15.00 -25.00 0.3926 -0.1211 -0.0003 -0.0021 -0.0003 -0.0021 0.3926 -0.1211
-10.00 -20.00 0.3826 -0.1221 -0.0004 -0.0022 -0.0003 -0.0021 0.3926 -0.1211
-5.00 -15.00 0.3726 -0.1231 -0.0007 -0.0029 -0.0003 -0.0021 0.3926 -0.1211
0.00 -10.00 0.3856 -0.1245 -0.0010 -0.0129 -0.0003 -0.0021 0.3926 -0.1211
% F
2.00
% P1 P2 n11x  n11y  n21x  n21y  n12x  n12y  n22x  n22y
-15.00 -25.00 0.3517 -0.3054 -0.0096 -0.0298 -0.0096 -0.0298 0.3517 -0.3054
-10.00 -20.00 0.3517 -0.3154 -0.0098 -0.0298 -0.0096 -0.0298 0.3517 -0.3054
-5.00 -15.00 0.3517 -0.3254 -0.0104 -0.0298 -0.0096 -0.0298 0.3517 -0.3054
0.00 -10.00 0.3517 -0.3354 -0.0106 -0.0298 -0.0096 -0.0298 0.3517 -0.3054
! .... (more frequencies and power sweeps under each frequency may be added)
! This is the end of the small signal ACDATA section
END
BEGIN   NDATA
!  This is an optional block of data
#  AC( GHZ   RI  S   R  50.0  )
!  Optional Selection: HZ, KHZ, MKZ, or GHZ;  Default is GHZ
!  Optional Selection: S, Z, Y, H, or G;      Default is  S
!  Optional Selection: MA, DB, or RI;         Default is RI
!  Optional Selection: R xx; where xx = reference resistance; Default R 50.0
%  F    nfmin   n11x     n11y     rn
!  The above line is the format line showing the order in the following data
!   lines
!  The columns of data can be in any order
1.0000   2.0000   0.3926   -0.1211    .4
2.0000   2.5000   0.3517   -0.3054    .45
3.0000   3.0000   0.0430   -0.5916    .5
4.0000   3.5000   0.4071   -0.2756    .55
5.0000   4.0000   0.2041   0.2880     .6
6.0000   4.5000   0.5666   0.0343     .65
7.0000   5.0000   0.0430   0.6916     .7
8.0000   5.5000   0.3059   0.5659     .75
9.0000   6.0000   0.3071   0.4145     .8
10.0000  6.5000   0.3419   0.3336     .85
END
BEGIN  IMTDATA
! This is an optional block and may be used some mixer component if the file
! format is supported.
! Intermodulation table for double balanced mixer #1
! Signal Level (dBm)   LO Level (dBm)
# -10                 7
! M x LO ( Horizontal )   N x Signal (Vertical )
!  0     1     2     3     4     5     6     7     8     9    10    11    12    13    14    15
!
  99    26    35    39    50    41    53    49    51    42    62    51    60    47    77    50
  24     0    35    13    40    24    45    28    49    33    53    42    60    47    63
  73    73    74    70    71    64    69    64    69    62    74    62    72    60
  67    64    69    50    77    47    74    44    74    47    75    44    70
  86    90    86    88    88    85    86    85    90    85    85    85
  90    80    90    71    90    68    90    65    88    65    85
  90    90    90    90    90    90    90    90    90    90
  90    90    90    90    90    87    90    90    90
  99    95    99    95    99    95    99    95
  90    95    90    90    90    99    90
  99    99    99    99    99    99
  90    99    90    95    90
  99    99    99    99
  90    99    90
  99    99
  99
END
!
! --------------------------------------------------------------------------

S2D Format

The S-parameter Data (.s2d ) file is a system input file you create from an S-parameter file, inserting the MDIF format. In the .s2d file, you describe small-signal data, optional noise data, optional nonlinear data, and optional intermodulation data. You can describe nonlinearity as a function of drive power or nonlinear parameter consisting of some combination of third-order intercept point, 1dB gain compression, saturated output power, and gain compression at saturation. In ADS, it possible to have multidimensional S2D files with VAR statements separating individual basic S2D sections. Such files may be automatically generated using the AmplifierS2D_Setup component from the System-Data Models library.

The format for a basic S2D section is shown here. Required keywords appear in UPPERCASE ITALIC characters.

!!! Begin basic S2D syntax
BEGIN ACDATA !!! optional small-signal data block
....
END ACDATA
BEGIN GCOMPx !!! required compression information x=(1,...,7)
!!! only one type of GCOMPx supported in one S2D file
....
END GCOMPx
BEGIN NDATA !!! optional 2-port noise data block
....
END NDATA
BEGIN IMTDATA !!! optional intermodulation table
....
END IMTDATA
!!! End basic S2D syntax

This format can be expanded to form a multi-dimensional S2D file using VAR statements in ADS. For instance a single S2D file containing two temperature points over three bias points contains a total of six basic sections as shown. Note that each sequence of VAR statements should preserve the order of the sweep, in this case, temperature over bias and each sweep variable. For example, bias has its values arranged in monotonically increasing order. In this example B1 < B2 < B3 and T1 < T2. Required keywords appear in UPPERCASE ITALIC characters:

VAR temp=T1
VAR bias=B1
...... ( 1st basic S2D section )
VAR temp=T1
VAR bias=B2
...... ( 2nd basic S2D section )
VAR temp=T1
VAR bias=B3
...... ( 3rd basic S2D section )
VAR temp=T2
VAR bias=B1
...... ( 4th basic S2D section )
VAR temp=T2
VAR bias=B2
...... ( 5th basic S2D section )
VAR temp=T2
VAR bias=B3
...... ( 6th basic S2D section )

Guidelines for .s2d

The ACDATA Block

The ACDATA block allows you to specify the small-signal characteristics of the 2-port.

The NDATA Block

The NDATA block allows you to specify the small-signal noise characteristics of the 2-port.

Understanding GCOMP Data

There are seven mutually exclusive formats for expressing large signal response in an S2D file, each corresponding to one type of GCOMP block. GCOMP stands for gain compression, indicating that only forward transmission behavior of the device under large signal conditions is captured here. Each GCOMP section may optionally contain multiple profiles, each at a different gain compression frequency. Various nonlinear device models refer to these frequencies as GCFreq or GainCompFreq.

GCOMP1 through GCOMP6 use parametric specifications whereas GCOMP7 uses a data-based profile. As such, the first six types of GCOMP blocks are restricted in the modeling capability of nonlinear behavior whereas GCOMP7 can represent any arbitrary response including gain expansion regions.

GCOMP1 through GCOMP6 use various combinations of the following four standard measures of nonlinear behavior, all referenced to the abscissa of an output (dBm) versus input power (dBm) plot in:

System level components that can interpret S2D profiles use an odd-order polynomial fitting to emulate narrow-band nonlinear behavior based on GCOMP information. The amount of compression information available for polynomial fitting depends on the GCOMP convention as follows:

The following seven sections show the format for each GCOMP type. Note that each type of block can have an multiple sections each delineated by an optional compression frequency line as shown in the following generic example. Required keywords appear in UPPERCASE ITALIC characters:

BEGIN GCOMPx
% F
comp_freq_A
% ( option line for block-type x )
.... ( data for block-type x at fundamental output frequency A )
% F
comp_freq_B
% ( option line for block-type x )
.... ( data for block-type x at fundamental output frequency B )
......
% F
comp_freq_F
% ( option line for block-type x )
.... ( data for block-type x at fundamental output frequency F )
END GCOMPx

The GCOMP1 Block

The GCOMP1 data block for the .s2d data file allows you to specify the 2-port 3rd order output intercept (IP3). No option line is used.

The GCOMP2 Block

The GCOMP2 data block for the .s2d data file allows you to specify the 2-port output power at 1 dB gain compression. No option line is used.

The GCOMP3 Block

The GCOMP3 data block for the .s2d data file allows you to specify the 2-port output IP3 and 1DBC simultaneously. No option line is used.

The GCOMP4 Block

The GCOMP4 data block for the .s2d data file allows you to specify the 2-port output IP3, output power at saturation (PS), and the gain compression at saturation (GCS). No option line is used.

The GCOMP5 Block

The GCOMP5 data block for the .s2d data file allows you to specify the 2-port output 1DBC, output power at saturation (PS), and the gain compression at saturation (GCS). No option line is used.

The GCOMP6 Block

The GCOMP6 data block for the .s2d data file allows you to specify the 2-port output IP3, 1DBC, output power at saturation (PS), and the gain compression at saturation (GCS). No option line is used.

The GCOMP7 Block

The GCOMP7 data block for the . s2d data file enables you to specify the input-to-output gain compression characteristic by listing the differential dB gain and differential phase as a function of input power in tabular form.

The S2D file format allows gain compression data at multiple frequencies to be specified in the GCOMP7 block. Note, however, that the AmplifierS2D component – with which many S2D files are later associated – cannot interpolate between gain compression data at different frequencies but uses a fixed frequency specified by the parameter GCfreq . If the compression behavior is to hold true at multiple frequencies, separate GCOMP7 blocks must be defined for each indexing frequency within the same .s2d data file.

It is important to note that the values of S21x and S21y contained in the GCOMP7 section are not the absolute S-parameter responses of the system at the relevant input power. They are differences with respect to the small signal values recorded in the ACDATA section at the same frequency. For instance, if the small signal S21 response at frequency F is polar(ss21mag, ss21deg), and the actual large signal S21 at power PinX at the same frequency F is polar(ls21mag, ls21deg), then the GCOMP7 entry for PinX will register the value of polar(ds21mag, ds21deg) where:

ds21mag = 10**(20*log10(ls21mag/ss21mag)/20) = ls21mag/ss21mag

ds21deg = ls21deg - ss21deg

Please note that regardless of the final format in which the small signal S-parameters [ssijmag, ssijdeg] or the [ds21mag, ds21deg] pairs are expressed in the data file, the dB domain differential definition of the GCOMP7 sections S21 values always holds as mentioned above. Caution must be employed when manually generating or interpreting the contents of the GCOMP7 section and all variables converted to dB domain before numerically adding / subtracting to compute the actual S21values at PinX power.

Complete .s2d File Example

! --------------------------------------------------------------------------
! amps2d.s2d
! --------------------------------------------------------------------------
! This is a sample S2D data file containing an activated ACDATA block, an
! activated NDATA block and examples of all seven types of GCOMPx blocks, of
! which, only the GCOMP1 block is activated. A functional S2D file should
! contain only one type of GCOMPx block. An S2D file may also contain an
! IMTDATA block. For details see documentation on IMT data files.
! --------------------------------------------------------------------------
!
BEGIN  ACDATA
!  This line and all lines starting with a comment (!) character are ignored
!  Do not have a blank line, or comments as the first line in this file
!  ACDATA is an optional block of data for an S2D file. However, some
! components such as AmplifierS2D require the existence of this block.
!  The following is the OPTION line
# AC( GHZ   S  RI   R 50.0    FC   1.  0. )
!  Optional Selection: HZ, KHZ, MKZ, or GHZ;  Default is GHZ
!  Optional Selection: S, Z, Y, H, or G;      Default is  S
!  Optional Selection: MA, DB, or RI;         Default is RI
!  Optional Selection: R xx; where xx = reference resistance; Default R 50.0
!  Optional Selection: FC x1 x2 is for frequency conversion: Fout=x1*Fin + x2
!                                               Default is  Fout = Fin
%  F   n11x  n11y  n21x  n21y  n12x  n12y  n22x  n22y
!  The above line is the format line showing the order in the following data
!   lines
!  The columns of data can be in any order
1.0000   0.3926   -0.1211  -0.0003  -0.0021  -0.0003  -0.0021  0.3926 -0.1211
2.0000   0.3517   -0.3054  -0.0096  -0.0298  -0.0096  -0.0298  0.3517 -0.3054
3.0000   0.0430   -0.5916  -2.6933  -0.1433  -0.5933  -0.1433  0.0430 -0.5916
4.0000   0.4071   -0.2756  2.4617   0.6234   0.3617   0.4234   0.4071 -0.2756
5.0000   0.2041   0.2880   2.6848   -0.5367  0.3848   -0.4367  0.2041 0.2880
6.0000   0.5666   0.0343   2.0383   -0.7437  0.0383   -0.7437  0.5666 0.0343
7.0000   0.0430   0.6916   -2.6933  0.1433   -0.6933  0.1433   0.0430 0.6916
8.0000   0.3059   0.5659   -0.1000  0.1424   -0.1000  0.1424   0.3059 0.5659
9.0000   0.3071   0.4145   -0.0307  0.0673   -0.0307  0.0673   0.3071 0.4145
10.0000  0.3419   0.3336   -0.0134  0.0379   -0.0134  0.0379   0.3419 0.3336
END
BEGIN   NDATA
!  This is an optional block of data
#  AC( GHZ   RI  S   R  50.0  )
!  Optional Selection: HZ, KHZ, MKZ, or GHZ;  Default is GHZ
!  Optional Selection: S, Z, Y, H, or G;      Default is  S
!  Optional Selection: MA, DB, or RI;         Default is RI
!  Optional Selection: R xx; where xx = reference resistance; Default R 50.0
%  F    nfmin   n11x     n11y     rn
!  The above line is the format line showing the order in the following data
!   lines
!  The columns of data can be in any order
1.0000   2.0000   0.3926   -0.1211    .4
2.0000   2.5000   0.3517   -0.3054    .45
3.0000   3.0000   0.0430   -0.5916    .5
4.0000   3.5000   0.4071   -0.2756    .55
5.0000   4.0000   0.2041   0.2880     .6
6.0000   4.5000   0.5666   0.0343     .65
7.0000   5.0000   0.0430   0.6916     .7
8.0000   5.5000   0.3059   0.5659     .75
9.0000   6.0000   0.3071   0.4145     .8
10.0000  6.5000   0.3419   0.3336     .85
END
!    In place of a GCOMP1 block of data there can be either of the following
!    blocks: GCOMP2,  GCOMP3,  GCOMP4,  GCOMP5,  GCOMP6,  GCOMP7
!    An example of each of these are given below and only GCOMP1 is
!    activated for this sample file.
BEGIN   GCOMP1
%  IP3
   25
END
! BEGIN   GCOMP2
! %  1DBC
!    15
! END
! BEGIN   GCOMP3
! %  IP3  1DBC
!    25    15
! END
! BEGIN   GCOMP4
! %  IP3   PS  GCS
!    25    25   5
! END
! BEGIN   GCOMP5
! %  1DBC  PS  GCS
!    15   25   5
! END
! BEGIN   GCOMP6
! %  IP3   1DBC  PS  GCS
!      30   20    25    8
! END
! BEGIN   GCOMP7
! #  AC( GHZ  S  DBM  DB   R  50.0 )
! !  Optional Selection: HZ, KHZ, MKZ, or GHZ;  Default is GHZ
! !  Optional Selection: S only;                Default is  S
! !  Optional Selection: DBM only;              Default is  DBM
! !  Optional Selection: MA, DB, or RI;         Default is RI
! !  Optional Selection: R xx; where xx = reference resistance;
! !                                                     Default R 50.0
! ! The S2D file format allows gain compression data at multiple frequencies
! ! to be specified in the GCOMP7 block. Note, however, that the
! ! Amplifier2 and AmplifierS2D components cannot interpolate between
! ! gain compression data at different
! ! frequencies but uses a fixed frequency specified by the parameter
! ! GCfreq.
! %  F
!    5.
! %  PIN          N21x        N21y
!    0.0         0.000      0.000
!    2.0        -0.012      0.173
!    4.0        -0.027      0.399
!    6.0        -0.046      0.697
!    8.0        -0.074      1.162
!   10.0        -0.116      1.988
!   12.0        -0.186      2.996
!   14.0        -0.397      3.754
!   16.0        -0.904      3.729
!   18.0        -1.718      3.585
!   20.0        -2.856      4.337
! END
!
! --------------------------------------------------------------------------

IMT Format

Intermodulation table (IMT) data is used to represent the behavior of mixers and frequency translators. Three distinct types of IMT formats are supported in ADS. See the following sections for descriptions and examples:

O-Type IMT Format

Standard spur tables for mixers are defined in this format which allows only single side banded (SSB), single-RF, single-LO mixing specification of IF voltage strengths in dB (relative to IF fundamental) or dBm (absolute value). Such files contain only a single IMT matrix preceded by an option line containing reference values of RF and LO signal strengths. O-type IMT files do not contain any information regarding actual RF or LO frequencies, and therefore, may be used to characterize a generic mixing process. Each column of the table represents mixing due to one of the N harmonics of the LO tone and each row represents mixing one of the M harmonics of the RF tone.

Example O-Type IM Table

In the following O-type IM table, five LO harmonics are mixed with three RF harmonics. All values are non-negative and the IF fundamental strength is 0 dB. This indicates that all the spurs are suppressed with respect to the IF fundamental by the specified value. Thus, the IM products for 3*RFfreq + 2*LOfreq and 3*RFfreq - 2*LOfreq are both suppressed by 69 dB below the strength of the IF fundamental when reference RF and LO powers at mixer inputs are -10 dBm and +7 dBm respectively. There is no specific distinction between sum and difference products, and the table contains no information about IF phase.

! O-type IMT file
BEGIN IMTDATA
! Option line for reference power at: RF = -10 dBm, LO = +7 dBm
# IMT ( -10 7 )
! Format line for LO-side harmonics
%   0     1     2     3     4     5
    99    26    35    39    50    41
    24    0     35    13    40    24
    73    73    74    70    71    64
    67    64    69    50    77    47
END IMTDATA

A-Type IMT Format

IM tables extracted from mixers in simulation environment are defined in this format which allows double side banded (DSB), single-RF, single-LO mixing specification of IF voltage strengths in dBm (absolute value). Such files may contain multiple IMT matrices each captured at specific levels of RF and LO powers and input frequencies. A-type IMT files therefore contain frequency specific information, and may be used for interpolation across modest spans of RF or LO frequency and power variation. Each column of the table represents mixing due to one of the N harmonics of the LO tone, and each row represents mixing one of the M harmonics of the RF tone. Both positive (sum) and negative (difference) rows are represented in the table as shown by the value of the first column.

Example A-Type IM Table

In the following A-type IM table two LO harmonics are mixed with two RF harmonics. The IM product for 2*RFfreq + 2*LOfreq is -40 dBm at 23 degrees phase; whereas, the product for 2*RFfreq - 2*LOfreq is -50 dBm at -41 degrees phase when reference RF and LO powers at mixer inputs are -10 dBm and +7 dBm respectively, and reference frequencies are RFfreq=2 GHz and LOfreq=1.7 GHz. Although, for the difference tone the table shows -2*FRF + 2*FLO, given that FLO < FRF in this case, we get the phase as -41 degrees by taking the complex conjugate of the value on file which is +41 degrees. To represent a physically feasible system, the values in the first complex column which contain harmonics of the RF tone, should be complex conjugates when mirrored across the DC spur. Thus the spur at N=0, M=m should be the complex conjugate of the spur at N=0, M=-m.

! A-type IMT file
BEGIN IMTDATA
! Option line for reference power at: RF = -10 dBm, LO = +7 dBm
# IMT ( GHz S DBM R 50.0 )
! Format line for RF frequency
% FRF
  2.0
! Format line for LO frequency
% FLO
  1.7
! Format line for reference RF power
% PRF
  -10
! Format line for reference LO power
% PLO
  -7
! Format line for LO-side harmonics
%  M      0             1              2
   -2    -24     -77    -35      39    -50      41
   -1    -67     -64    -35      13    -40      24
    0    -99      73    -74      70    -71      64
    1    -67      64    -69      50    -77      47
    2    -24      77    -35     -33    -40     -23
END IMTDATA

B-Type IMT Format

IM tables extracted from mixers in the simulation environment are defined in this format which allows double side banded (DSB), multi-RF, single-LO mixing specification of IF voltage strengths in dBm (absolute value). Such files may contain multiple IMT matrices each captured at specific levels of LO powers and frequencies. RF frequencies and powers should remain constant throughout the file. B-type IMT files therefore contain frequency specific information, and may be used for interpolation across modest spans of LO frequency and power variation at nominal RF powers and frequencies. Each column of the table represents mixing due to one of the N harmonics of the LO tone and each row represents mixing the various harmonics of the RF tones. Both positive (sum) and negative (difference) rows are represented in the table as shown by the value of the first r columns where r RF tones are active at the mixer's signal input.

To represent a physically feasible system, the values in the first complex column which contain pure RF on RF mixing, should be complex conjugates when mirrored across the DC spur. Thus the spur at N=0, M1=m1 M2=m2 should be the complex conjugate of the spur at N=0, M1=-m1, M2=-m2.

Example B-Type IM Table

In the following B-type IM table two LO harmonics are mixed with two RF harmonics of the first RF tone and one harmonic of the second RF tone. The IM product for 2*RFfreq1 - RFfreq2 + 2*LOfreq is -71 dBm at 64 degrees phase; whereas, the product at -RFfreq1 + RFfreq2 is -45 dBm +66 degrees.

! B-type IMT file
BEGIN IMTDATA
! Option line
# IMT ( GHz S DBM R 50.0 )
! Format line for RF frequency
%  FRF1    FRF2
   2.0      2.1
! Format line for LO frequency
%  FLO
   1.7
! Format line for reference RF power
%  PRF1    PRF2
   -10      -15
! Format line for reference LO power
%  PLO
   -7
! Format line for LO-side harmonics
%  M1     M2   0                1                 2
   -2      -1    -24    -77    -35      39    -50     41
   -2       0    -67    -64    -35      13    -40     24
   -2       1    -77     23    -74      70    -71     64
   -1      -1    -45    -32    -69      50    -77     47
   -1       0    -43    -97    -35     -33    -40    -23
   -1       1    -24    -77    -35      39    -50     41
    0      -1    -67     64    -35      13    -40     24
    0       0    -99     73    -74      70    -71     64
    0       1    -67    -64    -69      50    -77     47
    1      -1    -24     77    -35     -33    -40    -23
    1       0    -43     97    -37     -29    -55    -23
    1       1    -45     32    -71      82    -50     41
    2      -1    -77    -23    -74      70    -71     64
    2       0    -67     64    -69      50    -77     47
    2       1    -24     77    -35     -33    -40    -23
END IMTDATA

SPW Format

These files contain time-domain waveform data and are signal data files in SPW format. Advanced Design System can interface with the Cadence Alta Group SPW format through the use of data files in SPW format. Both ASCII (.ascsig ) and binary (.sig ) file formats are supported.

The SPW version 3.0 data file format is fully supported for real double data and partially supported for complex double data.

Guidelines for .ascsig

Example .ascsig Files

There are two examples, one uses real values and the second uses complex numbers.

File 1: Real double-data format

$SIGNAL_FILE 9
$USER_COMMENT
$COMMON_INFO
SPW Version = 3.0
Sampling Frequency = 1
Starting Time = 0
$DATA_INFO
Number of points = 6
Signal Type = Double
$DATA
1.000000000000000000000
1.000000000000000000000
- 1.000000000000000000000
- 1.000000000000000000000
1.000000000000000000000
1.000000000000000000000

File 2: Complex double-data format

$SIGNAL_FILE 9
$USER_COMMENT
$COMMON_INFO
SPW Version = 3.0
Sampling Frequency = 1
Starting Time = 0
$DATA_INFO
Number of points = 10
Signal Type = Double
Complex Format = Real_Imag
$DATA
1.000000000000000000000+j1.000000000000000000000
1.000000000000000000000+j1.000000000000000000000
- 1.000000000000000000000+j1.000000000000000000000
- 1.000000000000000000000+j1.000000000000000000000
1.000000000000000000000+j1.000000000000000000000
1.000000000000000000000+j1.000000000000000000000
- 1.000000000000000000000+j1.000000000000000000000
- 1.000000000000000000000+j1.000000000000000000000
- 1.000000000000000000000+j1.000000000000000000000
-1.000000000000000000000+j1.000000000000000000000

TIM Format

The .tim file is a signal data file in MDIF format. It contains time-domain waveform data for defining the signals associated with certain sources.

The general .tim file format is:

BEGIN TIMEDATA
# T ( SEC V R xx )
% time voltage
<data line>
...
<data line>
END

The BINTIM Format

The BINTIM format (.bintim) is for binary time-domain waveform data files. In .bintim files, the format is the same as .tim files, except the BEGIN line is preceded by a line indicating the number of data points, n:

NUMBER OF DATA n

The <data line> in a .bintim file is just a binary dump of all the waveform (time, voltage) data. Also, there is no END line.

Note
The .bintim format is not supported in the Data File Tool. However, certain signal processing components can read .bintim files.


Guidelines for .tim Files

TIMEDATA Block

Example .tim Files

BEGIN  TIMEDATA
# T ( USEC  V  R 50 )
%   time      voltage
     0.0      -1.0
     2.0       1.0
     4.0       2.0
     8.0       3.0
    10.0       3.0
    14.0       0.0
    18.0      -1.0
    24.0      -2.0
    28.0       0.0
    32.0      -1.0
END

This example file results in a time periodic voltage versus time with time period 32 µsec, interpreted as a piece-wise linear voltage description.


Time periodic voltage vs. Time with time period 32 µsec.

The following example shows how to handle the independent and dependent variable names when using a DataAccessComponent. This is useful since the file reader reads the independent variable name as time , and the dependent variable name as voltage , regardless of the names specified in the file. The following example data files shows the variable names specified as t and v:

BEGIN TIMEDATA
%      t               v
       0               0
  1e-011      0.00995017
  2e-011       0.0198013
  5e-011       0.0487706
1.4e-010        0.130642
4.1e-010         0.33635
  1e-009        0.632121
END

Though the variable names are t and v , the file reader changes the names to time and voltage , requiring the following syntax for the DataAccessComponent:

DataAccessComponent
Type=Time Domain Waveform    (TIM MDIF)
iVar1="time"
iVal1=time
VAR
X=file{DAC1,"voltage"}

Generic MDIF

The generic MDIF provides a generalized MDIF format for unifying the various specific MDIF formats, and overcoming some limitations of other formats. The generic format enables diverse applications to use a common data I/O interface, so long as the intent is to access/save multidimensional (multiple independent vs dependent variables) data.

The general format is as follows:

VAR var1Name(var1Type) = var1
ValueVAR var2Name(var2Type) = var2Value
..
VAR varNName(varNType) = varNValue
BEGIN blockName
% bVar1Name(bVar1Type) bVar2Name(bVar2Type) ....
% bVarLName(bVarLType) ...
% ...
% bVarQName(bVarQType) ... bVarPName(bVarPType)
bVar1Value bVar2Value ...
bVarLValue ..
..
bVarQValue ... bVarPValue
bVar1Value bVar2Value ...
bVarLValue ..
..
bVarQValue ... bVarPValue
...
END

where var*Type can be the token:

0 or int
1 or real
2 or string

Type bVar*Type can be one of the above as well as:

3 or complex
4 or boolean
5 or binary
6 or octal
7 or hexadecimal
8 or byte16

The variable names above constitute a name-space uniquely identified by the string blockName which is either:

A string type variable's value must be surrounded by "".

If there are multiple blocks, the outermost independent variables (e.g., VAR var1Name(var1Type) = var1 ) apply only to the block immediately following the variable definitions, and not to any other blocks.

The block data (bVar*Value) lines must follow the pattern (order, number of values per line, and number of lines) of the format (%) lines. If the number of values in any data line does not match the number of dependent variables specified in the corresponding format (%) line, incorrect results will occur. A variable's value cannot be split across lines. Although there is no line length limit specified, MDIF file readers may choose to truncate at some finite length. This may result in a file read error, or, if the file was carefully crafted, truncated names and/or string-type values.

Scale factors, which can be applied only to real numbers, may be case-insensitive suffixes as follows:

f = 1e-15, p = 1e-12, n = 1e-9, u = 1e-6, mil = 2.54e-5, m = 1e-3,

k = 1e3, g = 1e9, t = 1e12

E.g.: 15mA = 15e-3, 30KHz = 30e3

There should be no space between the number and the suffix, and extra characters are ignored. Unrecognized suffixes result in 1.0. The above is not totally consistent with the rest of ADS.

!=========================================================================
! Example 1
REM This has 3 indepVars: v1, v2, v3(innermost) and
REM 4 depVars: dv1(integer), dv2(real), dv3(string) and
REM dv4(hexadecimal), but is read in as a string.
REM The outermost indepVars: v1, v2 apply only to the block
REM immediately following them, and not to any other block.
! There are 2 data nodes
VAR v1(0) = 1
VAR v2(1) = 2.2
BEGIN blk1
% v3(1) dv1(1) dv2(1) dv3(2) dv4(hexadecimal)
7.7 8 9.9999 "line 1" 0xabc
8.8 9 1.11 "line 2 " 0x123
END
VAR v1(0) = 2
VAR v2(1) = 3.2
BEGIN blk1
% v3(1) dv1(1) dv2(1) dv3(2) dv4(hexadecimal)
8.7 9uF 10.9999mA "line 1" 0xff
9.8 10uF 11.11mA "line 2 " 0xdef
END
!=========================================================================
! Example 2
! Created Tue Mar 9 13:39:19 1999
! Data Acquired Tue Mar 9 13:38:34 1999
BEGIN NDATA_noise
% freq(real)  Sopt(complex)  NFmin(real)  Rn(real)  PortZ[1](real)
       1e+09     0.098481      0.017365        1          5        50
       2e+09      0.18794      0.068404        2         10        50
       3e+09      0.25981          0.15        3         15        50
       4e+09      0.30642       0.25712        4         20        50
       5e+09      0.32139       0.38302        5         25        50
       6e+09          0.3       0.51962        6         30        50
       7e+09      0.23941       0.65778        7         35        50
       8e+09      0.13892       0.78785        8         40        50
   9.543e+09    -0.014122         0.911   9.5445     46.166        50
END

CITIfile Data Format

This section describes the CITIfile format definitions of key terms, and file examples. It also includes:

Overview

CITIfile is a standardized data format that is used for exchanging data between different computers and instruments. CITIfile stands for Common Instrumentation Transfer and Interchange file format.

This standard is a group effort between instrument and computer-aided design program designers. As much as possible, CITIfile meets current needs for data transfer, and it is designed to be expandable so it can meet future needs.

CITIfile defines how the data inside an ASCII package is formatted. Since it is not tied to any particular disk or transfer format, it can be used with any operating system, such as DOS or UNIX, with any disk format, such as DOS or HFS, or with any transfer mechanism, such as by disk, LAN, or GPIB.

By careful implementation of the standard, instruments and software packages using CITIfile are able to load and work with data created on another instrument or computer. It is possible, for example, for a network analyzer to directly load and display data measured on a scalar analyzer, or for a software package running on a computer to read data measured on the network analyzer.

Data Formats

There are two main types of data formats: binary and ASCII. CITIfile uses the ASCII text format. Although this format requires more space than binary format, ASCII data is a transportable, standard type of format which is supported by all operating systems. In addition, the ASCII format is accepted by most text editors. This allows files to be created, examined, and edited easily, making CITIfile easier to test and debug.

File and Operating System Formats

CITIfile is a data storage convention designed to be independent of the operating system, and therefore may be implemented by any file system. However, transfer between file systems may sometimes be necessary. You can use any software that has the ability to transfer ASCII files between systems to transfer CITIfile data. Refer to Converting Between Disk Formats for more information.

The descriptions and examples shown here demonstrate how CITIfile may be used to store and transfer both measurement information and data. The use of a single, common format allows data to be easily moved between instruments and computers.

CITIfile Definitions

This section defines: package , header , data array , and keyword .

Package

A typical CITIfile package is divided into two parts:

The following example shows the basic structure of a CITIfile package:

When stored in a file there may be more than one CITIfile package. With the Agilent 8510 network analyzer, for example, storing a memory all will save all eight of the memories held in the instrument. This results in a single file that contains eight CITIfile packages .

Header

The header section contains information about the data that will follow. It may also include information about the setup of the instrument that measured the data. The CITIfile header shown in the first example has the minimum of information necessary; no instrument setup information was included.

Data Array

An array is numeric data that is arranged with one data element per line. A CITIfile package may contain more than one array of data. Arrays of data start after the BEGIN keyword, and the END keyword follows the last data element in an array.

A CITIfile package does not necessarily need to include data arrays. For instance, CITIfile could be used to store the current state of an instrument. In that case the keywords VAR , BEGIN , and END would not be required.

When accessing arrays via the DAC (DataAccessComponent), the simulator requires array elements to be listed completely and in order.

Example: S[1,1], S[1,2], S[2,1], S[2,2]

Keywords

Keywords are always the first word on a new line. They are always one continuous word without embedded spaces. A listing of all the keywords used in version A.01.00 of CITIfile is shown in CITIfile Keyword Reference.

CITIfile Examples

The following are examples of CITIfile packages.

Display Memory File

This example shows an Agilent 8510 display memory file. The file contains no frequency information. Some instruments do not keep frequency information for display memory data, so this information is not included in the CITIfile package.

Note that instrument-specific information (#NA = network analyzer information) is also stored in this file.

CITIFILE A.01.00
#NA VERSION HP8510B.05.00
NAME MEMORY
#NA REGISTER 1
VAR FREQ MAG 5
DATA S RI
BEGIN
-1.31189E-3,-1.47980E-3
-3.67867E-3,-0.67782E-3
-3.43990E-3,0.58746E-3
-2.70664E-4,-9.76175E-4
0.65892E-4,-9.61571E-4
END

Agilent 8510 Data File

This example shows an 8510 data file, a package created from the data register of an Agilent 8510 network analyzer. In this case, 10 points of real and imaginary data was stored, and frequency information was recorded in a segment list table.

CITIFILE A.01.00
#NA VERSION 8510B.05.00
NAME DATA
#NA REGISTER 1
VAR FREQ MAG 10
DATA S[1,1] RI
SEG_LIST_BEGIN
SEG 1000000000 4000000000 10
SEG_LIST_END
BEGIN
0.86303E-1,-8.98651E-1
8.97491E-1,3.06915E-1
-4.96887E-1,7.87323E-1
-5.65338E-1,-7.05291E-1
8.94287E-1,-4.25537E-1
1.77551E-1,8.96606E-1
-9.35028E-1,-1.10504E-1
3.69079E-1,-9.13787E-1
7.80120E-1,5.37841E-1
-7.78350E-1,5.72082E-1
END

Agilent 8510 3-Term Frequency List Cal Set File

This example shows an 8510 3-term frequency list cal set file. It shows how CITIfile may be used to store instrument setup information. In the case of an 8510 cal set, a limited instrument state is needed to return the instrument to the same state that it was in when the calibration was done.

Three arrays of error correction data are defined by using three DATA statements. Some instruments require these arrays be in the proper order, from E[1] to E[3] . In general, CITIfile implementations should strive to handle data arrays that are arranged in any order.

CITIFILE A.01.00
#NA VERSION 8510B.05.00
NAME CAL_SET
#NA REGISTER 1
VAR FREQ MAG 4
DATA E[1] RI
DATA E[2] RI
DATA E[3] RI
#NA SWEEP_TIME 9.999987E-2
#NA POWER1 1.0E1
#NA POWER2 1.0E1
#NA PARAMS 2
#NA CAL_TYPE 3
#NA POWER_SLOPE 0.0E0
#NA SLOPE_MODE 0
#NA TRIM_SWEEP 0
#NA SWEEP_MODE 4
#NA LOWPASS_FLAG -1
#NA FREQ_INFO 1
#NA SPAN 1000000000 3000000000 4
#NA DUPLICATES 0
#NA ARB_SEG 1000000000 1000000000 1
#NA ARB_SEG 2000000000 3000000000 3
VAR_LIST_BEGIN
1000000000
2000000000
2500000000
3000000000
VAR_LIST_END
BEGIN
1.12134E-3,1.73103E-3
4.23145E-3,-5.36775E-3
-0.56815E-3,5.32650E-3
-1.85942E-3,-4.07981E-3
END
BEGIN
2.03895E-2,-0.82674E-2
-4.21371E-2,-0.24871E-2
0.21038E-2,-3.06778E-2
1.20315E-2,5.99861E-2
END
BEGIN
4.45404E-1,4.31518E-1
8.34777E-1,-1.33056E-1
-7.09137E-1,5.58410E-1
4.84252E-1,-8.07098E-1
END

When an instrument's frequency list mode is used, as it was in this example, a list of frequencies is stored in the file after the VAR_LIST_BEGIN statement. The unsorted frequency list segments used by this instrument to create the VAR_LIST_BEGIN data are defined in the #NA ARB_SEG statements.

2-Port S-Parameter Data File

This example shows how a CITIfile can store 2-port S-parameter data. The independent variable name FREQ has two values located in the VAR_LIST_BEGIN section. The four DATA name definitions indicate there are four data arrays in the CITIfile package located in the BEGIN...END sections. The data must be in the correct order to ensure values are assigned to the intended ports. The order in this example results in data assigned to the ports as shown in the table that follows:

CITIFILE A.01.00
NAME BAF1
VAR FREQ MAG 2
DATA S[1,1] MAGANGLE
DATA S[1,2] MAGANGLE
DATA S[2,1] MAGANGLE
DATA S[2,2] MAGANGLE
VAR_LIST_BEGIN
1E9
2E9
VAR_LIST_END
BEGIN
0.1, 2
0.2, 3
END
BEGIN
0.3, 4
0.4, 5
END
BEGIN
0.5, 6
0.6, 7
END
BEGIN
0.7, 8
0.8, 9
END
DATA FREQ = 1E9 FREQ = 2E9
s[1,1] s[0.1,2] s[0.2,3]
s[1,2] s[0.3,4] s[0.4,5]
s[2,1] s[0.5,6] s[0.6,7]
s[2,2] s[0.7,8] s[0.8,9]

CITIfile Keyword Reference

The following table lists keywords, definitions, and examples.

CITIfile Keywords and Definitions
Keyword Example and Explanation
CITIFILE Example: CITIFILE A.01.00
Identifies the file as a CITIfile and indicates the revision level of the file. The CITIFILE keyword and revision code must precede any other keywords.
The CITIFILE keyword at the beginning of the package assures the device reading the file that the data that follows is in the CITIfile format.The revision number allows for future extensions of the CITIfile standard.
The revision code shown here following the CITIFILE keyword indicates that the machine writing this file is using the A.01.00 version of CITIfile as defined here. Any future extensions of CITIfile will increment the revision code.
NAME Example: NAME CAL_SET
Sets the current CITIfile package name. The package name should be a single word with no embedded spaces. Some standard package names:
RAW_DATA : Uncorrected data.
DATA: Data that has been error corrected. When only a single data array exists, it should be named DATA .
CAL_SET: Coefficients used for error correction.
CAL_KIT: Description of the standards used.
DELAY_TABLE: Delay coefficients for calibration.
VAR Example: VAR FREQ MAG 201
Defines the name of the independent variable ( FREQ ); the format of values in a VAR_LIST_BEGIN table ( MAG ) if used; and the number of data points ( 201 ).
CONSTANT Example: CONSTANT name value
Lets you record values that do not change when the independent variable changes.
# Example: #NA POWER1 1.0E1
Lets you define variables specific to a particular type of device. The pound sign ( # ) tells the device reading the file that the following variable is for a particular device.
The device identifier shown here ( NA ) indicates that the information is for a network analyzer. This convention lets you define new devices without fear of conflict with keywords for previously defined devices. The device identifier can be any number of characters.
SEG_LIST_BEGIN Indicates that a list of segments for the independent variable follows.
Segment Format: segment type start stop number of points
The current implementation supports only a signal segment. If you use more than one segment, use the VAR_LIST_BEGIN construct. CITIfile revision A.01.00 supports only the SEG (linear segment) segment type.
SEG_LIST_END Sets the end of a list of independent variable segments.
VAR_LIST_BEGIN Indicates that a list of the values for the independent variable (declared in the VAR statement) follows. Only the MAG format is supported in revision A.01.00.
VAR_LIST_END Sets the end of a list of values for the independent variable.
DATA Example: DATA S[1,1] RI
Defines the name of an array of data that will be read later in the current CITIfile package , and the format that the data will be in. Multiple arrays of data are supported by using standard array indexing as shown above. CITIfile revision A.01.00 supports only the RI (real and imaginary) format, and a maximum of two array indexes.
Commonly used array names include:
S – S parameter
E – Error Term
Voltage – Voltage
VOLTAGE_RATIO – a ratio of two voltages (A/R)

CITIfile Guidelines

The following general guidelines aid in making CITIfiles universally transportable:

Line Length. The length of a line within a CITIfile package should not exceed 80 characters. This allows instruments which may have limited RAM to define a reasonable input buffer length.

Keywords. Keywords are always at the beginning of a new line. The end of a line is as defined by the file system or transfer mechanism being used.

Unrecognized Keywords. When reading a CITIfile, unrecognized keywords should be ignored. There are two reasons for this:

Adding New Devices. Individual users are allowed to create their own device keywords through the # (user-defined device) mechanism. (Refer to the table immediately above for more information.) Individual users should not add keywords to CITIfiles without using the # notation, as this could make their files incompatible with current or future CITIfile implementations.

File Names. Some instruments or programs identify a particular type of file by characters that are added before or after the file name. Creating a file with a particular prefix or ending is not a problem. However in general an instrument or program should not require any such characters when reading a file. This allows any file, no matter what the filename, to be read into the instrument or computer. Requiring special filename prefixes and endings makes the exchange of data between different instruments and computers much more difficult.

Converting Between Disk Formats

Most current Agilent Technologies instruments use disks formatted in the Logical Interchange Format (LIF). Some instruments also use DOS-formatted disks. CITIfiles created on one file system (LIF, DOS, HFS, etc.) may be transferred to other file systems. This is useful for designers using test equipment in addition to ADS to read/write CITIfiles.

HFS

Several LIF and DOS utilities are available for HP-UX workstations. The HP-UX utilities lifcp and doscp can transfer CITIfiles to and from LIF and DOS disks. Using lifcp and doscp are similar; using lifcp is described below. Several other LIF and DOS utilities are also available. Consult the manuals for these utilities for more detailed information. Listing the contents of a LIF disk when using HP-UX would be similar to the following example:

lifls /dev/rdsk/1s0.0

The device name used will depend on how your system was configured. Copying a CITIfile named DD_FILED1 from a LIF disk to HFS would be similar to the following example:

lifcp /dev/rdsk/1s0.0: DD_FILED1 DD_FILED1

To copy a standard HFS ASCII file to a LIF disk:

lifcp DD_FILED1 /dev/rdsk/1s0.0: DD_FILED1

When used on an HFS disk, The HP-UX program RMB/UX (Rocky Mountain BASIC for HP-UX) has the ability to write a CITIfile in either as a standard HFS ASCII file, or as a LIF volume file. The LIF volume file is the default. This type of file is not directly readable when using the HP-UX operating system, and the copy commands listed above will not work correctly.

BASIC program writers are encouraged to detect when writing to an HFS disk, and to use the standard HFS format. The program examples CITIWRITE and CITIDOALL show how this can be done. However CITIfiles stored in the LIF volume format can still be transferred to LIF disks, or converted to standard HFS files. To copy a LIF volume file named DD_FILED stored on an HFS disk and move it to a LIF disk:

lifcp DD_FILED1:WS_FILE /dev/rdsk/1s0.0: DD_FILED1

To copy the LIF volume file DD_FILED1 to a standard HFS file named NEWFILE :

lifcp DD_FILED1:WS_FILE NEWFILE

DOS

Utilities are available for DOS machines that enable them to transfer files to and from a LIF formatted disk. Many of these programs are menu-driven, and are available from the following companies: Agilent, Oswego, Meadow Soft Works, and Innovative Software Systems.

CITIfile Device-Specific Definitions

CITIfile is a generic definition of a data storage format for any type of computer or instrument. However each type of device may need to define certain conventions for itself. This section describes the device-specific keywords and conventions for current implementations.

Network Analyzer (#NA) Definitions

Data Grouping. Data arrays of the same type, obtained during a single measurement operation, are stored in a single CITIfile package. For example, all error correction arrays are stored in the same CITIfile package, and all parameters acquired during an s-parameter measurement operation are stored in the same CITIfile package.

A CITIfile package is as described in the main CITIfile documentation: the CITIFILE keyword, followed by a header section, usually followed by one or more arrays of data.

Note
There are some specific problems with the current version in reading and/or writing this data format. On the Agilent EEsof web site, refer to the Release Notes in Product Documentation, and to Technical Support for more information and workarounds (http://www.agilent.com/find/eesof).

Network Analyzer Keywords. The definition of CITIfile allows for statements that are specific to a certain type of device. the following table lists the currently defined commands for the #NA (network analyzer) keyword.

Network Analyzer Keyword Commands
Statement Explanation
#NA ARB_SEG x y p A list segment, as entered by the user.
xx = start value
y = stop value
p = number of points.
#NA REGISTER nn Register in instrument that the current data package was stored in.
nn = number of register.
#NA SWEEP_TIME tt The sweep time of the analyzer.
tt = time in seconds.
#NA POWER1 pp Power level of signal source #1.
pp = power in dBm.
#NA POWER2 pp Power level of signal source #2.
pp = power in dBm.
#NA PARAMS aa Bitmap of valid parameters for a calibration. Bit positions 1-8 represent the following:
Bit #1 = S 11
Bit #2 = S 21
Bit #3 = S 12
Bit #4 = S 22
Bit #5 = user1
Bit #6 = user2
Bit #7 = user3
Bit #8 = user4
A bit equal to one means that the calibration is valid for that parameter; a zero means that the calibration is not valid for that parameter. Bit #0 is the least significant bit.
NA# CAL_TYPE cc The type of calibration used:
1 = response calibration.
2 = response and isolation calibration.
3 = one-port calibration on port 1.
4 = one-port calibration on port 2.
5 = two-port calibration (includes one-path full & TRL)
NA# POWER_SLOPE ss Change in power versus frequency.
ss = dBm/GHz
NA# SLOPE_MODE mm On/off flag for power slope.
mm = 0 = off
mm = 1 = on
NA# TRIM_SWEEP tt Linearity adjustment value for swept sources.
NA# SWEEP_MODE ss Type of sweep done to make measurement.
0 = swept
1 = stepped
2 = single-point
3 = fast CW
4 = list
NA# LOWPASS_FLAG ff Low-pass time domain flag.
ff = 0 = low-pass time domain enabled .
ff = 1 = low-pass time domain disabled .
NA# FREQ_INFO ii The frequency information flag.
ii = 0 = frequency information displayed on instrument screen.
ii = 1 = frequency information not displayed on instrument screen.
NA# DUPLICATES dd Delete duplicates flag. Determines if points listed more than once should be measured more than once.
dd = 0 = points listed more than once are measured as many times as they are listed.
dd = 1 = points are measured only once.
NA# SPAN xx yy pp The sweep parameters:
xx = start value
yy = stop value
pp = number of points
NA# IF_BW gg The IF bandwidth setting of the receiver.
gg = IF bandwidth in Hertz.

Error Array Numbering

Current network analyzer implementations use between one and twelve error coefficient arrays to perform error correction. The CAL_TYPE keyword description in Network Analyzer (#NA) Definitions lists the currently defined calibration types. The following table defines the meanings of each coefficient array with respect to the error model used.

Network Analyzer Error Coefficient Arrays
Error Array Name Frequency Response Response & Isolation All 1-Port All 2-Port
E1 Er or Et Ed or Ex Ed Edf
E2 - Er or Et Es Esf
E3 - - Er Erf
E4 - - - Exf
E5 - - - Elf
E6 - - - Etf
E7 - - - Edr
E8 - - - Esr
E9 - - - Err
E10 - - - Exr
E11 - - - Elr
E12 - - - Etr

Disk Filename Requirements

Some instruments or programs identify a particular type of file by characters that are added before or after the file name. In general an instrument or program should not require any such characters when reading a file.

There exist CITIfile implementations which do have file naming restrictions. This section explains how to work around these restrictions.

Agilent 8510 Series CITIfile

The 8510 checks the first 3 letters of the filename to determine what is stored in the file. The file prefixes for an 8510 CITIfile are listed in the following table.

Agilent 8510 CITIfile Prefixes
File Prefix File Contents Notes
RD_ Raw Data Raw (uncorrected data array(s).
DD_ Data Data Error corrected data array(s)
FD_ Formatted Data Corrected & formatted data array.
DM_ Display Memory File holds one memory.
MA_ Display Memory All Holds all memories in 8510.
CS_ Cal Set One set of calibration data.
CA Cal Set All All sets of calibration data.
DT_ Delay Table One delay table.

DD_MYDATA is an example of a file name for a file that contains one array of corrected data.

The current 8510 CITIfile implementation is unable to read files unless they have the prefixes above. It is expected that a future 8510 revision will remove this restriction.

Agilent 8700 Series CITIfile

Storing a data file from an 8700-series analyzer in CITIfile format requires that you choose the SAVE USING ASCII option.

The 8700 series of instruments check the last two characters of the filename to determine what is stored in the file. The file endings for an 8700 CITIfile are listed in the following table.

Agilent 8700 CITIfile Filenames
Last Two Chars File Contents Notes
Rx Raw Data x = 1 = channel 1.
x = 5 for channel 2.
Dx Data Data x = channel number.
Fx Formatted Data x = channel number.
Mx Display Memory x = channel number.
xy Cal Set x = channel number.
y = number of error coefficient arrays in the file. y is displayed in hexadecimal.

FILE1D1 is an example of a file name for a file that contains corrected data for channel #1. FILE1R5 is a filename for raw data arrays from channel #2. MYFILE2C is an example of a name for a file that contains a cal set used by channel #2, with 12 arrays of data (hexadecimal C).

To load data from disk into an 8700-series instrument, there must be a matching instrument state file to go with the data that is being loaded. Consult the 8700-series documentation for more information.

 

Privacy Statement  | Terms of Use  | Legal | Contact Us  | © Agilent 2000-2008 

Contents
Additional Resources