Zmod SDR Reference Manual

The Digilent Zmod SDR is a digitizer designed for software-defined radio and RF applications. It is a SYZYGY™ 1)-compatible pod containing a dual-channel ADC and the associated front end. The Zmod SDR is intended to be used with any SYZYGY™ compatible carrier board. It features a wide input bandwidth, allowing for undersampling applications - capturing signals with frequencies much higher than the baseline 122.88 MS/s sample rate's associated Nyquist frequency. An on-board low-jitter clock generator and low-noise design provide the precision necessary to capture fast radio signals. When paired with an Eclypse Z7 host board, the Zmod is supported in GNU Radio, providing a convenient and familiar interface for SDR experts and researchers.

Features

Table 1. Zmod SDR family features

Features/Version 1450-122
ADC AD9648BCPZ-125
Input Channels 2
Input Range ±1 V
Resolution [bits] 14 bits
Absolute Resolution 61 μV
Sample Rate - Max [MS/s] 122.88 MS/s
Analog Bandwidth @ 3 dB 100 kHz - 200 MHz
Analog Bandwidth @ 12 dB 35 kHz - 470 MHz
Input Impedance @ 10 MHz 50 Ω
Reference Clock sources Onboard (ultra-low phase noise)
External (SYZYGY)

1. Architectural Overview and Block Diagram

This document describes the Zmod SDR's circuits, with the intent of providing a better understanding of its electrical functions, operations, and a more detailed description of the hardware’s features and limitations. It is not intended to provide enough information to enable complete duplication of the Zmod SDR, but can help users to design custom configurations for programmable parts in the design.

Zmod SDR's block diagram is presented in Fig. 1 below. The core of the Analog Zmod SDR is a dual channel, high speed, low power ADC, as shown in Table 1. The carrier board is responsible to configure the internal registers of the ADC and clock generator circuits, and receive the data.

The Front End signals use the “SC” index. Signals and equations also use certain naming conventions. Analog voltages are prefixed with a “V” (for voltage), and suffixes and indexes are used in various ways: to specify the location in the signal path (IN, BUF, ADC, etc.); to indicate the related instrument (SC, etc.); to indicate the channel (1 or 2); and to indicate the type of signal (P, N, or diff). Referring to the block diagram in Fig. 1 below:

  • The Analog Input instrument block includes:
    • Front End: AC coupling, differential balance, impedance matching, and protection circuitry
    • ADC Reference: generates and buffers reference voltages for the ADC
    • Clock Generator: generates a low jitter, programmable frequency clock for data acquisition
    • ADC: the analog-to-digital converter for both input channels
  • The Power Supplies and Control block generates all internal supply voltages
  • The MCU works as an I2C memory for the DNA: the standard SYZYGY™ pod identification information

In the sections that follow, schematics are not shown separately for identical blocks. For example, the Front End schematic is only shown for channel 1 since the schematic for channel 2 is identical. Indexes are omitted where not relevant. As an example, in equation \ref{1} below, $V_{SCOPE-SMA}$ does not contain the channel index (because the equation applies to both channels 1 and 2).

Figure 1. Zmod SDR Block diagram.


2. Analog Input

2.1. Front End

Fig. 2 shows the analog input frontend stage.

Figure 2. Analog Input Frontend.

  • C2 provides controlled capacitance, much higher than the parasitical capacitance of subsequent stages
  • C1, C3 realize AC coupling
  • T1 balun balances the single ended input to differential
  • T2 transformer doubles the voltage
  • R1, R3, D1, D2 clamp the ADC differential input voltage to ±1.2 V
  • R2 connects the ADC Common Mode Voltage to the midpoint of the transformer secondary winding, filtered and decoupled by C4 and C5
  • R44 in figure Fig. 3 reflects through the T2 transformer as a 50 Ω Input Impedance of the Front End

The input divider provides:

  • Analog input impedance = 50 Ω || 5 pF
  • A gain of 2
  • Balanced differential input to the ADC
  • Flat gain over a large frequency range

The maximum voltage rating for analog inputs is limited to:

$$-0.5V<V_{SCOPE1-SMA}<0.5V\label{1}\tag{1}$$

The DC gain is: $$\frac {V_{ADC-SC2}}{V_{SCOPE1-SMA}}=2\label{2}\tag{2}$$

The nominal input voltage range is: $$-0.5V \le V_{SCOPE1-SMA} \le 0.5V \label{3}\tag{3}$$

The input impedance at 1 MHz is:

$$Z_{in} = \frac{R_{44}}{4} = 50 Ω\label{4}\tag{4}$$

Experiments shown that there is significant parasitic capacity in the input node: CP includes the capacity to GND of the layout, balun, transformer, diodes.

The equivalent capacitance of the input divider (SCOPE1_SMA node) is:

$$C_{in} = C_{2} || C_{P} = 5pF\label{6}\tag{6}$$


2.2. Scope Reference

The ADC uses the internal 1 V reference voltage which is filtered and decoupled by C69 and C70 in Fig. 3.


2.3. ADC

Figure 3. ADC.

The Zmod SDR uses a dual channel, high speed, low power, 14-bit, 125 MS/s ADC, as shown in Fig. 4.

The differential clock is AC-coupled and the line is impedance matched. The ADC generates the common mode reference voltage (VCM_SC) to be used in the buffer stage.

The digital stage of the ADC and the corresponding FPGA bank are supplied at 1.8 V by the SYZYGY™ voltage Vadj.

The multiplexed mode is used, to combine the two channels on a single data bus and minimize the number of used FPGA pins. CLKOUT_SC is provided to the FPGA for synchronizing data.


2.4. Clock Generator

IC1 in the figure below is a low-jitter clock generator: CDCE6214. It has a PLL loop, with divider and multiplier registers, for programmable output frequencies. An input MUX can select between two possible clock sources:

  • Zmod SDR uses a crystal for a low-jitter clock source at CLKIN_XTAL pins
  • As an alternative, the SYZYGY C2P clock can be selected at CLKIN_PLL pins, for a flexible, lower-quality clock source, originating at the carrier board FPGA

OUT4 pins generate the LVDS clock for the ADC, CLKIN_ADC.

The circuit is programmed via a dedicated I2C bus, which is not the standard SYZYGY I2C bus used to communicate with the ADN MCU of the Zmod.

Figure 4. Clock Generator

Fig. 5 and Fig. 6 show the time and spectral images of a single-tone signal.

The Signal is a clean 1 V amplitude, 10 MHz sinus signal, generated with a Agilent 33500B Waveform Generator.

It is acquired with a Zmod SDR on a Eclypse Z7 system board using WaveForms. The sampling clock is generated by the IC1 in Fig. 4. The source clock is the XTAL for Fig. 5, respectively CLKIN_PLL (from the FPGA) for Fig. 6.

Figure 5. Signal acquired with a Jitter-clean sampling Clock

Figure 6. Signal acquired with a Jittery sampling Clock


2.5 Signal Scaling

The nominal differential ADC input voltage range is:

$$-1V<V_{ADC\;diff}<1V\label{8}\tag{8}$$

The total analog gain (from the SMA connectors to the ADC inputs) is:

$$Analog\; gain = \frac{V_{ADC\;diff}}{V_{SCOPE-SMA}}=2\label{9}\tag{9}$$

The Zmod SDR input voltage range is:

$$ -0.5V<V_{SCOPE-SMA}<0.5V=Range\label{10}\tag{10}$$

With the 14-bit ADC, the absolute resolution:

$$ R_{abs} = \frac{1V}{2^{n}}=61μV\label{11}\tag{11}$$

For Vin voltage value at the input of the analog channel, the Zmod SDR sends a signed n-bit integer, N. This value is used to compute Vin:

$$V_{SCOPE-SMA} = \frac{N \cdot Range }{2^{n-1}} \label{12}\tag{12}$$

Where:

  • n = 14, the number of bits of the ADC
  • Vin= the corrected value of the input voltage
  • N = the n bit, 2's complement integer number returned by the ADC
  • Range = 0.5 V = the ideal Range of the input stage

Keep in mind that the Zmod SDR input impedance is 50 Ω. If the input signal generator (antenna) has a non-zero output impedance, the input voltage is divided from the theoretical input voltage:

$$V_{SCOPE-SMA} = V_{in}\frac{Z_{in}}{Z_{in}+Z_{out}} \label{13}\tag{13}$$


2.6 Input Impedance

The Zmod SDR is designed for an equivalent input impedance of 50 Ω: $$Z_{in} = \frac{R_{43}}{2^{n-1}} \label{14}\tag{14}$$

Where:

  • R43 = 200 Ω,
  • Vin = 4 = T2 impedance ratio

However, the parasitic effects and component non-idealities make the input impedance a function of frequency, as shown in Fig. 7. A PXIe-5832 VNA is used to measure the Resistance and Reactance. Impedance and Phase are computed in a spreadsheet.

The VNA settings are:

  • Display Impedance
  • 5 dBm (1 V amplitude)
  • Frequency range 0.5…479.5 MHz - first Nyquist zone
  • 480 steps
  • Step size 1 MHz
  • 100 ms delay

Figure 7. Input Impedance Frequency Characteristic. Linear scale (left), logarithmic scale (right)


2.7 Spectral Characteristics

Fig. 8 shows a typical spectral characteristic of the Zmod SDR. A PXIe-5832 VNA is used to generate the input sinus signal of 5 dBm (1 V amplitude with infinite impedance load). The tested Zmod SDR is mounted on a Eclypse Z7 board. The WaveForms software runs a Network Analyzer instrument. The Network Analyzer settings are:

  • Sampling Clock Frequency FSample = 120 MHz
  • External input
  • 500 kHz to 59.5 MHz (first Nyquist zone)
  • 60 steps
  • 10 ms settling time

The VNA settings are:

  • 5 dBm (1 V amplitude)
  • 100 ms delay
  • 60 steps
  • Step size 1 MHz
  • Each reference was recorded with VNA set to cover one Nyquist zone in 60 steps:
    • Ref1: 0.5…59.5 MHz - first Nyquist zone
    • Ref2: 60.5…119.5 MHz - second Nyquist zone, mirrored
    • Ref3: 120.5…179.5 MHz - third Nyquist zone, shifted
    • Ref4: 180.5…239.5 MHz - fourth Nyquist zone, mirrored
    • Ref5: 240.5…299.5 MHz - fifth Nyquist zone, shifted
    • Ref6: 300.5…359.5 MHz - sixth Nyquist zone, mirrored
    • Ref7: 360.5…419.5 MHz - seventh Nyquist zone, shifted
    • Ref8: 420.5…479.5 MHz - eight Nyquist zone, mirrored

The first Nyquist zone is visible as direct transfer characteristic. The next Nyquist zones are visible as mirror/shifted frequency images in the first Nyquist range.

Figure 8. Folded 8-Nyquist Zones Frequency Throughput Characteristic

Fig. 9 shows the “unfolded” spectral characteristic of the Zmod SDR. The References from Fig. 5 are shifted back and unmirrored to show the continuous frequency characteristic over the full range of 500Hz to 479.5MHz.

Figure 9. Unfolded 8-Nyquist Zones Frequency Throughput Characteristic. Linear scale (left), logarithmic scale (right)

Fig. 10 shows the low-frequency spectral characteristic (5kHz to 500kHz) of the Zmod SDR, which is AC-coupled. A Zmod AWG and the tested Zmod SDR are mounted on an Eclypse Z7 board. The WaveForms software runs a Network Analyzer instrument. The Network Analyzer settings are:

  • Input: Zmod AWG1411, 1V amplitude, 5 kHz to 1 MHz, 200 steps
  • WaveForms on Eclypse Z7, sampling at 120 MS/s
  • Network Analyzer set for Wavegen1 input
  • 5 kHz to 1 MHz (AC coupling char)
  • Ref1: Ch1
  • Ref2: Ch2

Figure 10. Low Frequency Throughput Characteristic. Linear scale (left), logarithmic scale (right)


3. MCU

The ATtiny44 MCU in Fig. 11 works as an I2C memory, storing the SYZYGY™ DNA information and the Calibration Coefficients. The J5 connector is used for programming the MCU and the SYZYGY™ DNA at manufacturing.

The DNA and the Factory Calibration Coefficients are stored in the Flash memory of the MCU, which appears to the I2C interface as “read-only”. The User Calibration Coefficients are stored in the EEPROM memory of the MCU, which is write-protected via a magic number at a magic address. The memory structure can be consulted below. Since the amplitude accuracy is not important in SDR applications, there is no calibration process implemented at the Zmod SDR manufacturing, and no Calibration Coefficients are saved, neither in the Factory Calibration Coefficients nor in the User Calibration Coefficients fields, except for the manufacturing test date.

Figure 11. The MCU

  • Program Memory Type: Flash
  • Program Memory Size (KB): 4
  • CPU Speed (MIPS/DMIPS): 20
  • SRAM Bytes: 256
  • Data EEPROM/HEF (bytes): 256
  • Digital Communication Peripherals: 1-SPI, 1-I2C
  • Capture/Compare/PWM Peripherals: 1 Input Capture, 1 CCP, 4PWM
  • Timers: 1 x 8-bit, 1 x 16-bit
  • Number of Comparators: 1
  • Temperature Range (C): -40 to 85
  • Operating Voltage Range (V): 1.8 to 5.5
  • Pin Count: 14
  • Low Power: Yes

Table 2. The Flash memory structure

Address Function Size (Bytes)
0x8000 - 0x80FF DNA 256
0x8100 - 0x817F Factory Calibration 128
0x8180 - 0x83FF Future use 896

3.1. SYZYGY™ DNA

The Zmod SDR is compliant with SYZYGY™ Specification. It contains an MCU able to calculate the Geographical Address and provide the DNA information via I2C. The DNA is stored in the MCU FLASH at the address range: 0x8000 - 0x80FF with the following structure:

Table 3. The Zmod SDR DNA structure

Contents Type Size (Bytes) Value Address
DNA full data length uint16 2 99 0x8000
DNA header length uint16 2 40 0x8002
SYZYGY DNA major version uint8 1 1 0x8004
SYZYGY DNA minor version uint8 1 0 0x8005
Required SYZYGY DNA major version uint8 1 0 0x8006
Required SYZYGY DNA minor version uint8 1 0 0x8007
Maximum operating 5V load (mA) uint16 2 400 0x8008
Maximum operating 3.3V load (mA) uint16 2 100 0x800A
Maximum VIO load (mA) uint16 2 270 0x800C
Attribute flags uint16 2 0 0x800E
Minimum operating VIO (10 mV steps) uint16 2 180 0x8010
Maximum operating VIO (10 mV steps) uint16 2 180 0x8012
Minimum operating VIO (10 mV steps) uint16 2 170 0x8014
Maximum operating VIO (10 mV steps) uint16 2 190 0x8016
Minimum operating VIO (10 mV steps) uint16 2 0 0x8018
Maximum operating VIO (10 mV steps) uint16 2 0 0x801A
Minimum operating VIO (10 mV steps) uint16 2 0 0x801C
Maximum operating VIO (10 mV steps) uint16 2 0 0x801E
Manufacturer name length uint8 1 12 0x8020
Product name length uint8 1 17 0x8021
Product model / Part number length uint8 1 17 0x8022
Product version / revision length uint8 1 1 0x8023
Serial number length uint8 1 12 0x8024
RESERVED uint8 1 0 0x8025
CRC-16 (most significant byte) uint8 1 0x27 CRC computed over the addresses 0x8000-0x8025: most significant byte 0x8026
CRC-16 (least significant byte) uint8 1 0x88 CRC computed over the addresses 0x8000-0x8025: least significant byte 0x8027
END DATA HEADER
Manufacturer name string 12 Digilent Inc 0x8028
Product name string 17 Zmod SDR 1450-122 0x8034
Product model / Part number string 17 Zmod SDR 1450-122 0x8045
Product version / revision string 1 A, B, C, etc - upon case 0x8056
Serial number string 12 210427?????? 0x8057
Product ID uint32 4 0x80506100 0x80FC

3.2. Calibration Memory

Since the amplitude accuracy is not important in SDR applications, there is no calibration process implemented at the Zmod SDR manufacturing, and no Calibration Coefficients are saved, nor in the Factory Calibration Coefficients neither in User Calibration Coefficients fields, except for the manufacturing test date. All Cx constants in the table below are 0x00. The structure of the calibration data is shown below:

Table 4. The Calibration Data Structure

Heading 1 Name Size (Bytes) Type Flash Address
(Factory Calibration)
EEPROM Address
(User Calibration)
Magic ID 1 uchar 0xAD 0x8100 0x7000
Calibration Time 4 unix timestamp 0x8101 0x7001
Channel 1 LG Gain CG 4 float32 0x8105 0x7005
Channel 1 LG Offset CA 4 float32 0x8109 0x7009
Channel 1 HG Gain CG 4 float32 0x810D 0x700D
Channel 1 HG Offset CA 4 float32 0x8111 0x7011
Channel 2 LG Gain CG 4 float32 0x8115 0x7015
Channel 2 LG Offset CA 4 float32 0x8119 0x7019
Channel 2 HG Gain CG 4 float32 0x811D 0x701D
Channel 2 HG Offset CA 4 float32 0x8121 0x7021
Reserved Area 68 - 0x8125 0x7025
Log 22 string 0x8169 0x7069
CRC 1 uchar 0x817F 0x707F

Table 5. The EEPROM Memory Map

Address Function Size (Bytes)
0x7000 - 0x707F User Calibration 128
0x7080 - 0x70FF Future Use 128

At the power up the EEPROM memory is protected against write operations. To disable the write protection one has to write a magic number to a magic address over I2C. To re-enable the write protection one has to write any other number to the magic address.

Table 6. The Write Protection Disable magic number and address

Magic Number Magic Address
0xD2 0x6FFF

4. Power Supplies and Control

This block includes the internal power supplies.

The Zmod Scope gets the digital rails from the carrier board, via the SYZYGY connector:

  • VCC3V3 - used for the MCU and analog supplies
  • Vadj = 1.8 V - used for the ADC digital rail

The internal analog rail sequence is:

  • AVCC1V8 - ADC analog rail

Figure 12. The 1.8 V power supply


5. The SYZYGY™ Connector

The SYZYGY™ connector in provides the interface with the carrier board. The used signals are:

  • Power rails
    • VCC5V0
    • VCC3V3
    • VADJ - needs to be set by the carrier board to 1.8 V
    • GND
    • Shield
  • SYZYGY™ I2C bus:
    • MCU_SCLUSCK
    • MCU_SDA_MOSI
  • ADC differential input clock
    • CLKIN_ADC_P
    • CLKIN_ADC_N
  • ADC single-ended output clock:
    • CLKOUT_ADC (coupled with GND in the differential P2C pair)
  • R_GA for geographical address identification
  • SYNC_ADC for ADC internal clock divider synchronization
  • ADC data bus: DOUT_ADC_0…13
  • ADC SPI bus:
    • CS_SC1n
    • SCLK_SC
    • SDIO_SC
  • Relay control
    • SCx_yy_z

Figure 13. SYZYGY™ connector


6. The SYZYGY™ compatibility table

Table 7. The SYZYGY™ compatibility table

Parameter Value
Maximum 5 V supply current 400 mA
Maximum 3.3 V supply current 100 mA
VIO supply voltage 1.8 V
Maximum VIO supply current 270 mA
Total number of I/O 25
Number of differential I/O pairs 0
Width Single

Written by Mircea Dabacan, PhD, Technical University of Cluj-Napoca Romania

1)
The “SYZYGY™ ” mark is owned by Opal Kelly.