Citifile
Understanding Citifile
Citifile was created in the 1980s when Hewlett-Packard needed a flexible format to transfer measurement data from its network analyzers (HP 8510, HP 8753) to its Microwave Design System (MDS, the predecessor to ADS). The format uses a header-data structure: the header defines named variables, their types (independent or dependent), data formats (real-imaginary, magnitude-angle, dB-angle), and the number of data points. The data section contains the numerical values in ASCII text. Multiple data packages can be stored in one file, each with its own variable definitions.
The key advantage of Citifile over Touchstone was its ability to handle multi-dimensional datasets. A complete transistor characterization might include S-parameters measured at 201 frequencies, 5 bias voltages, and 3 temperatures. In Touchstone format, this requires 15 separate .s2p files (one per bias/temperature combination). In Citifile, all 15 datasets fit in a single file with named data packages. This made Citifile natural for device modeling workflows within the HP/Agilent/Keysight ecosystem. However, the format's association with a single vendor limited its adoption, and Touchstone's simplicity and universal support made it the de facto standard for S-parameter exchange between different vendors' tools. Touchstone 2.0 (standardized by IBIS/IEEE 370) partially addresses the format gap by supporting noise data and comments, but still lacks Citifile's multi-dimensional flexibility.
Citifile Format Structure
CITIFILE A.01.01 [version]
NAME <dataset_name> [package identifier]
VAR freq MAG <N> [independent variable, N points]
DATA S[1,1] RI [dependent variable, real-imaginary format]
Data Formats:
RI = Real, Imaginary ; MA = Magnitude, Angle ; DB = dB, Angle
Each data package contains a header block followed by SEG_LIST_BEGIN/END or VAR_LIST_BEGIN/END for independent variable values, then BEGIN/END blocks for each dependent variable's data.
RF Data Format Comparison
| Format | Extension | Multi-Sweep | Tool Support | Best For |
|---|---|---|---|---|
| Touchstone 1.0 | .s1p, .s2p | No | Universal | Simple S-parameter exchange |
| Touchstone 2.0 | .ts | Limited | Growing | Mixed-mode, noise data |
| Citifile | .cti | Yes | Keysight-centric | Multi-dimensional characterization |
| MDIF | .mdif | Yes | Keysight ADS | Nonlinear device models |
| CSV/Excel | .csv | Flexible | Universal | Custom post-processing |
Frequently Asked Questions
How does Citifile differ from Touchstone?
Touchstone stores one frequency sweep of network parameters per file. Citifile supports multiple independent variables (frequency, power, bias, temperature) and multiple dependent variables in a single file with named data packages. Citifile is better for multi-dimensional characterization; Touchstone is simpler and universally supported for S-parameter exchange.
What tools support Citifile?
Keysight ADS (native), Keysight PNA/PNA-X network analyzers (direct export), AWR Microwave Office, Cadence Spectre RF, Python scikit-rf, and MATLAB. For maximum interoperability, most engineers convert to Touchstone 2.0 (.ts), which adds multi-parameter and mixed-mode support.
Is Citifile still relevant?
For simple S-parameter exchange, Touchstone has effectively replaced it. Citifile remains relevant for: legacy HP/Agilent measurement archives, complex multi-dimensional characterization datasets, and within the Keysight ADS ecosystem. New designs typically use Touchstone for exchange and MDIF for complex data.