Design tips – Achronix Speedster22i SerDes User Manual

Page 87

Advertising
background image

Design Tips

Timing report of a routed design: When a design passes through the place-and-route tool,

please make sure that there is no setup- and/or hold-time violation for the routed design.

Section-4 of the ACE User Document provides a detailed description of checking the timing

reports generated by ACE.
Bringing up debug/status signals from the top-level RTL: To facilitate debugging of a design,

we can bring up the SerDes status signals to on-board LED’s and/or SMA/SMP connectors.

“Table 20: Signals passed between the SerDes Instance and the Top-Level module” provides

a list of debugging signals that we use as primary outputs from the top-level RTL:

simple_serdes_design_top.v.
Note: These signals can be used for other purposes as well. For example, ln0_pma_TX_ready

signal can be used to enable the data-generation and transmission to SerDes.
Observing the clocks from SerDes: It is a good idea to observe the RX and TX clock signals

that are generated by SerDes. The user may not directly connect these signals (ln0_RX_clk

and ln0_TX_clk) to SMA connectors. An alternative way of observing these signals is to

generate a signal (in the fabric) based on these clocks and connect them to SMA connectors.

The following code snippet from simple_serdes_design_top.v shows two clock signals that

are generated in the fabric. The frequency of these generated signals are half of that for the

TX and the RX clock frequencies.

// ln0_TX_clk_div2 and ln0_RX_clk_div2 have been defined as primary outputs.

//

// Generation of divide-by-2 clock, based on TX-clk generated by SerDes

always @ (posedge ln0_TX_clk or negedge ln0_rst_n_TX)

begin

if (ln0_rst_n_TX == 1'b0)

ln0_TXclk_div2 <= 1'b0;

else

ln0_TXclk_div2 <= ~ln0_TXclk_div2;

end

// Generation of divide-by-2 clock, based on RX-clk generated by SerDes

always @ (posedge ln0_RXclk or negedge ln0_rst_n_RX)

begin

if (ln0_rst_n_RX == 1'b0)

ln0_RXclk_div2 <= 1'b0;

else

ln0_RXclk_div2 <= ~ln0_RXclk_div2;

end

For observation, we need to connect these signals to SMA connectors, which require the

addition of the following two lines in src/constraints/ace_placement.pdc file:

#div2 version of SerDes RX and TX clocks

set_placement -batch -fixed {p:ln0_TXclk_div2} {SMA Pin in Development Board}

set_placement -batch -fixed {p:ln0_RXclk_div2} {SMA Pin in Development Board}

The frequency of RX and TX clock does not depend on the reference clock that we are using,

which is 156.25 MHz in our sample design. Rather, the frequency of the clocks generated by

SerDes depends on the data-rate and data-width. This frequency is determined by ACE GUI

while generating the wrapper file.

UG028, July 1, 2014

87

Advertising