beautypg.com

Dynamic read/write of serdes registers via sbus, Overview – Achronix Speedster22i SerDes User Manual

Page 98

background image

Dynamic Read/Write of SerDes Registers via SBUS

This chapter broadly categorizes the PMA and PCS registers into:

1. Static registers
2. Dynamic registers

While the static registers are hardcoded into ACE generated GUI, the dynamic registers can

be modified runtime. This chapter details the macros that can be used to modify the dynamic

PCS/PMA registers.
Typically, SerDes registers are programmed during FPGA configuration, and there is no need

to program them dynamically. One common case where registers need to be programmed

dynamically is to set loopback mode.
In this chapter, we first present the overview of the SerDes register access through SBUS. We

then present a micro-controller that executes one or more sequences of SBUS register

accesses. Finally, we present an example of existing ACE macros for using SBUS interface; the

example presents the case where the user wants to set the SerDes loopback mode.

Overview

The Serdes has a serial interface, called SBUS, through which the user design can read and

write internal registers. The ACX_SERDES_SBUS_IF module provides parallel-to-serial

conversion for this interface. (Other I/O ring components have an SBUS interface as well.)
To enable SerDes register access through SBUS, the user needs to use the following in the

code.

`include "speedster22i/macros/ACX_SERDES_SBUS_IF.v"

Alternatives for using SBUS interface for SerDes register access:

There are several ways of using SBUS interface for SerDes register access:

The user can use the ACX_SERDES_SBUS_IF module that is a relatively low-level

interface.

Rather than using ACX_SERDES_SBUS_IF module, wrappers for common

configurations can be created using ACX_SERDES_REG_CTRL.

For some purposes, ACE library provides wrapper macros. For instance, for the

common case of setting loopback mode using SBUS interface, the user can use the

macro ACX_SERDES_LOOPBACK_CTRL; this macro automatically configures

loopback mode once the SerDes is ready.

Each of the above requires using SBUS interface to access PMA/PCS registers. The

BitPorter perspective in the Ace GUI has a JTAG Browser tab, which allows reading

and writing the SerDes register values interactively through the JTAG interface. This

gives access to the same registers as the SBUS interface.

Note: Both ACX_SERDES_REG_CTRL and ACX_SERDES_LOOPBACK_CTRL calls the low-

level ACX_SERDES_SBUS_IF under the hood.

98

UG028, July 1, 2014