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

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