AN 729: Implementing JESD204B IP Core System Reference Design with Nios II Processor

ID 683844
Date 5/04/2015
Public
Document Table of Contents

1.10. Dynamic Reconfiguration

One of the key features enabled by the Nios II processor is dynamic reconfiguration of the JESD204B parameters. You can issue the reconfiguration command (“rc”) along with the parameters and values that you desire. The valid ranges for the values entered for each parameter are governed by certain rules. These rules are a function of the JESD204B IP core and transport layer valid parameter value ranges (as described in the JESD204B IP Core User Guide) and also the initially configured values for the JESD204B IP core. The rules for valid ranges are implemented as discrete functions in the rules.c file (see Functions in rules.c Source File) and are described fully in the table below. If you enter an invalid value, the software flags the error to the screen and disallow the change.

The Altera transport layer has a more restricted value range for certain parameters compared to the JESD204B IP core. In those cases where the parameter value ranges are governed by both the JESD204B IP core and the Altera transport layer, the more restrictive value range will take precedence. In the table below, the transport layer rules are indicated by “TL:”. If you are not using the Altera transport layer, turn off the Altera transport layer rule checking by setting the ALTERA_TRANSPORT_LAYER parameter in the main.h header file to 0 (see the Customizing the C Code section).

Table 11.  Dynamic Reconfiguration Command Options and Rules

Command Options

Parameters

Rule

l

L

The value for L must be an integer within the range of 1-8.

Returns 0 if valid, 1 if invalid.

l

L

The value for L must not exceed the initially configured value.

Returns 0 if valid, 1 if invalid.

l

L, F

TL: The value for L must be an even number if F = 1.

Returns 0 if valid, 1 if invalid.

m

M

The value for M must be an integer within the range of 1-32.

Returns 0 if valid, 1 if invalid.

f

F

The value for F must be an integer within the range of 1,2, 4-256 (any integer value between 1-256 except 3)

TL: The value for F must be an integer of the values 1, 2, 4, 8

Returns 0 if valid, 1 if invalid.

Note: The Altera test pattern generator and checker do not support dynamic reconfiguration of F.

f, m, s, np, l

F, M, S, N’, L

The values for M, S, N' and L must be such that the current value of F conforms to the formula F(current) = (M * S * N')/(8*L). If a new value of F is indicated, then F(current) = F(new). If not, then F(current) = F(initially configured).

Returns 0 if valid, 1 if invalid.

Note: The Altera test pattern generator and checker do not support dynamic reconfiguration of F.

f, m, s, np, l

F, M ,S, N’, L

The value for F must not exceed the initially configured value. By extension, since F is defined by the formula F = (M * S * N')/(8*L), the values for M, S, N' and L must be such that the new value for F not exceed the initial configured value.

Returns 0 if valid, 1 if invalid.

Note: The Altera test pattern generator and checker do not support dynamic reconfiguration of F.

s

S

The value for S must be an integer within the range of 1-32.

Returns 0 if valid, 1 if invalid.

n

N

The value for N must be an integer within the range of 1-32

TL: The value for N must be an integer within the range of 12-16.

Returns 0 if valid, 1 if invalid.

n, np

N

The value for N must adhere to the following range: N ≤ N'.

Returns 0 if valid, 1 if invalid.

np

N’

The value for N' must be an integer within the range of 4-32.

TL: Only N'=16 configuration is supported. Dynamic reconfiguration of N' parameter is not supported.

Returns 0 if valid, 1 if invalid.

cs

CS

The value for CS must be an integer within the range of 0-3.

Returns 0 if valid, 1 if invalid.

k

K

The value for K must be an integer within the range 17/F ≤ K ≤ min(32, floor(1024/F)).

Returns 0 if valid, 1 if invalid.

f, k

F, K

The value of F * K must be divisible by 4.

Returns 0 if valid, 1 if invalid.

hd

High Density (HD)

The value for HD must be either 0 or 1.

Returns 0 if valid, 1 if invalid.

hd, n

HD, N

TL: The value for HD can be 1 if and only if N=16.

Returns 0 if valid, 1 if invalid.

scr

Scrambler Enable

The value for SCR must be either 0 or 1.

Returns 0 if valid, 1 if invalid.

sub

Subclass

The value for subclass must be 0, 1 or 2.

Returns 0 if valid, 1 if invalid.

dr

Serial Data Rate

The value for DR must be 1, 2, 4. DR value is integer divisor of initially configured serial data rate. For example, DR=2 means the initially configured data rate divided by 2.

Returns 0 if valid, 1 if invalid.

dr

Serial Data Rate

The value for DR must not fall below the minimum allowable range of the target device family.

Minimum serial data rate specification:

  • Arria V GZ, Arria 10, Stratix V: 2 Gbps
  • Arria V: 1 Gbps

Refer to the JESD204B IP Core User Guide for the latest information on the minimum serial data rate spec. The minimum data rate value is defined by the DATA_RATE_MIN parameter in the main.h header file. You are responsible to ensure that the minimum data rate value for the target device is set correctly.

Returns 0 if valid, 1 if invalid.

dr, m, s, np, l

Frame clock, serial data rate, M, S, N’, L

The values of serial data rate, M, S, N’ and L must be such that the new frame clock value,

FC(new) = (Serial data rate * L * 8) / (M * S * N’ * 10)

not exceed the initially configured frame clock value, FC (initially configured). Furthermore, the ratio of FC (initially configured) to FC (new) must be 1, 2, 4 only.

Returns 0 if valid, 1 if invalid.