x310 Platform Worker
OpenCPI Ettus USRP X310 platform worker.
The Ettus Research USRP X310 is a high-performance, scalable software defined radio (SDR) platform for designing and deploying next generation wireless communications systems. The hardware architecture combines two extended-bandwidth daughterboard slots covering DC to 6 GHz with up to 160 MHz of baseband bandwidth, multiple high-speed interface options (PCIe, dual 10 GigE, dual 1 GigE), and a large user-programmable Kintex-7 FPGA in a convenient desktop or rack-mountable half-wide 1U form factor.
Xilinx Kintex-7 XC7K410T FPGA
14 bit 200 MS/s ADC
16 bit 800 MS/s DAC
Frequency range: DC - 6 GHz with suitable daughterboard
Up 160MHz bandwidth per channel
Two wide-bandwidth RF daughterboard slots
Optional GPSDO
Multiple high-speed interfaces (Dual 10G, PCIe Express, ExpressCard, Dual 1G)
The Ettus USRP X310 supports a range of plugin daughterboards that contain the baseband to
RF frequency modulation, PA and LNA functionality. This platform worker supports the UBX160-160 daughterboard only.
Detail
The x310 platform includes the following device workers
time_server
dgrdma_config_dev
lmk04816
x310_gpio
ubx160_eeprom
dac_spi
One or two instances of the daughter board device workers can be used with this platform. These workers are
data_sink_qdac_csts
ad9146
data_src_qadc_csts
ads62p48
max2871 (RXLO1, RXLO2, TXLO1, TXLO2)
ubx160_cpld
ubx160_io
Assemblies can be built using this platform worker that support either one (single) or two (dual) ethernet ports
time_server.hdl
This device worker provides a Time Service Interface to OpenCPI.
dgrdma_config_dev.hdl
This device worker is required when using DGRDMA OpenCPI functionality. DGRDMA provides the necessary functionality for interfacing between OpenCPI software (RCC) and FPGA implementation (HDL) using one or two ethernet interfaces. This worker provides property access used for control and configuration of the OpenCPI DGRDMA components.
lmk04816.hdl
This device worker is used for configuration of the LMK04816 clock generator IC present on the x310 mother board. Configuration of the LMK04816 is performed by the drc_x310.rcc Digital-Radio-Controller worker. It is not necessary for an application using the x310 platform to read or write to the properties of this worker.
x310_gpio.hdl
This device worker provides access to the 12 front-panel GPIO signals (AUX IO connector). This worker is not required for DGRDMA or x310 Digital-radio-controller functionality. It is provided to aid assembly and application development.It provides a means to connect input or output signals to the FPGA for debug and verification purposes.
ubx160_eeprom.hdl
A single instance of this device worker is included in the x310 platform. This provides access to the mother board and daughter board EEPROMs.
dac_spi
This worker is a sub-device of the ad9146.hdl device worker. It provides access to the hardware registers of the DAC ICs over its SPI interface. One instance of this sub-device worker is required to control both DACs. Note also that the DAC SPI uses a separate SPI bus to that used for controlling the ADCs.
One or two instance of the following device workers are used to support the UBX160 daughter board hardware, depending on the number fitted. The worker instance names are prefixed with DB0 or DB1 to distinguish between the two daughter boards.
data_sink_qdac_csts
An instance of this worker is used for each of the two transmit data streams (one for each daughter board). It is used to connect the transmit data stream to the DAC device.
ad9146
The AD9146 is a dual 16-bit digital-to-analogue converter (DAC). There are two AD9146 devices on the x310 mother board. Each device generates the analogue I and Q baseband signals for a single daughter board.
data_src_qadc_csts
An instance of this worker is used for each of the two receive data streams (one for each daughter board). It is used to connect the ADC, producing data on the receive data stream.
ads62p48
The ADS62P48 is a dual 14-bit analogue-to-digital converter (ADC). There are two ADS62P48 devices on the x310 mother board. Each devices digitises the analogue I and Q baseband signals from a single daughter board.
max2871 (RXLO1, RXLO2, TXLO1, TXLO2)
The MAX2871 is an ultra-wideband phase-locked loop (PLL) with integrated voltage control oscillators (VCOs). Each UBX160 daughter board has 4 MAX2871 devices. These are used for generating the transmit (TXLO1/TXLO2) and receiver (RXLO1/RXLO2) clocks.
ubx160_cpld
The ubx160_cpld.hdl device worker provides the means to control the CPLD device on the UBX160 daughter board. This is used to control the signal paths on the UBX160 daughter card.
ubx160_io
The UBX160_io.hdl device worker provides the means to read and write a number of GPIO signals used to control a UBX160 daughter board. The ubx160_io.hdl device worker also contains the implementation of the SPI interface used by the AD9146, ADS62P48 and UBX160_CPLD devices.
Worker Properties
ack_tracker_bitfield_widthType:
ulongAccess:
Parameter:
TrueWritable:
FalseInitial:
FalseVolatile:
FalseRead back:
False
Default value:
None
ack_tracker_max_ack_countType:
ucharAccess:
Parameter:
TrueWritable:
FalseInitial:
FalseVolatile:
FalseRead back:
False
Default value:
None
dual_ethernetType:
boolAccess:
Parameter:
TrueWritable:
FalseInitial:
FalseVolatile:
FalseRead back:
False
Default value:
None
clock_ref_selectType:
enumAllowed values:
['ext', 'int', 'gps']
Access:
Parameter:
TrueWritable:
FalseInitial:
FalseVolatile:
FalseRead back:
False
Default value:
None
Worker Ports
devType:
devsignal
Supported device worker:
dgrdma_config_devConnections:
Subdevice port:
devSupported worker port:
devIndex:
0
Interfaces (other than data I/O ports):
Subdevice Connections:
Worker Signals
RESETDirection:
outDifferential:
falsePin:
false
REMOTE_MAC_ADDRDirection:
outWidth:
64Differential:
falsePin:
false
REMOTE_DST_IDDirection:
outWidth:
16Differential:
falsePin:
false
LOCAL_SRC_IDDirection:
outWidth:
16Differential:
falsePin:
false
INTERFACE_MTUDirection:
outWidth:
16Differential:
falsePin:
false
ACK_WAITDirection:
outWidth:
32Differential:
falsePin:
false
MAX_ACKS_OUTSTANDINGDirection:
outWidth:
8Differential:
falsePin:
false
COALESCE_WAITDirection:
outWidth:
32Differential:
falsePin:
false
DUAL_ETHERNETDirection:
outDifferential:
falsePin:
false
ACK_TRACKER_REJ_ACKDirection:
inDifferential:
falsePin:
false
ACK_TRACKER_BITFIELDDirection:
inWidth:
32Differential:
falsePin:
false
ACK_TRACKER_BASE_SEQNODirection:
inWidth:
16Differential:
falsePin:
false
ACK_TRACKER_REJ_SEQNODirection:
inWidth:
16Differential:
falsePin:
false
ACK_TRACKER_TOTAL_ACKS_SENTDirection:
inWidth:
32Differential:
falsePin:
false
ACK_TRACKER_TX_ACKS_SENTDirection:
inWidth:
32Differential:
falsePin:
false
ACK_TRACKER_PKTS_ENQUEUEDDirection:
inWidth:
32Differential:
falsePin:
false
ACK_TRACKER_REJECT_OUT_OF_RANGEDirection:
inWidth:
32Differential:
falsePin:
false
ACK_TRACKER_REJECT_ALREADY_SETDirection:
inWidth:
32Differential:
falsePin:
false
ACK_TRACKER_ACCEPTED_BY_PEEKDirection:
inWidth:
32Differential:
falsePin:
false
ACK_TRACKER_HIGH_WATERMARKDirection:
inWidth:
16Differential:
falsePin:
false
FRAME_PARSER_REJECTDirection:
inWidth:
32Differential:
falsePin:
false
REMOTE_IP_ADDRDirection:
outWidth:
32Differential:
falsePin:
false
REMOTE_UDP_PORTDirection:
outWidth:
16Differential:
falsePin:
false
FPGA_125MHz_CLKDirection:
inDifferential:
falsePin:
true
FPGA_REFCLK_10MHz_pDirection:
inDifferential:
falsePin:
true
FPGA_REFCLK_10MHz_nDirection:
inDifferential:
falsePin:
true
XG_CLK_pDirection:
inDifferential:
falsePin:
true
XG_CLK_nDirection:
inDifferential:
falsePin:
true
TCXO_ENADirection:
outDifferential:
falsePin:
true
ClockRefSelectDirection:
outWidth:
2Differential:
falsePin:
true
aIoResetIn_nDirection:
inDifferential:
falsePin:
true
aIoReadyOutDirection:
outDifferential:
falsePin:
true
aIoReadyInDirection:
inDifferential:
falsePin:
true
aIoPort2RestartDirection:
outDifferential:
falsePin:
true
aStc3Gpio7Direction:
inDifferential:
falsePin:
true
IoRxClockDirection:
inDifferential:
falsePin:
true
IoRxClock_nDirection:
inDifferential:
falsePin:
true
irIoRxDataDirection:
inWidth:
16Differential:
falsePin:
true
irIoRxData_nDirection:
inWidth:
16Differential:
falsePin:
true
irIoRxHeaderDirection:
inDifferential:
falsePin:
true
irIoRxHeader_nDirection:
inDifferential:
falsePin:
true
IoTxClockDirection:
outDifferential:
falsePin:
true
IoTxClock_nDirection:
outDifferential:
falsePin:
true
itIoTxDataDirection:
outWidth:
16Differential:
falsePin:
true
itIoTxData_nDirection:
outWidth:
16Differential:
falsePin:
true
itIoTxHeaderDirection:
outDifferential:
falsePin:
true
itIoTxHeader_nDirection:
outDifferential:
falsePin:
true
aIrqDirection:
outDifferential:
falsePin:
true
SFP0_TX_pDirection:
outDifferential:
falsePin:
true
SFP0_TX_nDirection:
outDifferential:
falsePin:
true
SFP0_RX_pDirection:
inDifferential:
falsePin:
true
SFP0_RX_nDirection:
inDifferential:
falsePin:
true
SFPP0_RxLOSDirection:
inDifferential:
falsePin:
true
SFPP0_TxFaultDirection:
inDifferential:
falsePin:
true
SFPP0_TxDisableDirection:
outDifferential:
falsePin:
true
LED_LINK2Direction:
outDifferential:
falsePin:
true
LED_ACT2Direction:
outDifferential:
falsePin:
true
SFP1_TX_pDirection:
dual_ethernet ? out : unusedDifferential:
falsePin:
true
SFP1_TX_nDirection:
dual_ethernet ? out : unusedDifferential:
falsePin:
true
SFP1_RX_pDirection:
inDifferential:
falsePin:
true
SFP1_RX_nDirection:
inDifferential:
falsePin:
true
SFPP1_RxLOSDirection:
inDifferential:
falsePin:
true
SFPP1_TxFaultDirection:
inDifferential:
falsePin:
true
SFPP1_TxDisableDirection:
outDifferential:
falsePin:
true
LED_LINK1Direction:
outDifferential:
falsePin:
true
LED_ACT1Direction:
outDifferential:
falsePin:
true
LED_PPSDirection:
outDifferential:
falsePin:
true
LED_GPSLOCKDirection:
outDifferential:
falsePin:
true
LED_LINKSTATDirection:
outDifferential:
falsePin:
true
LED_LINKACTDirection:
outDifferential:
falsePin:
true
FPGA_PUDC_BDirection:
inDifferential:
falsePin:
true