AN 755: Implementing JESD204B IP Core System Reference Design with ARM HPS As Control Unit (Baremetal Flow)

ID 683776
Date 12/30/2015
Public
Document Table of Contents

1.7.2. Dynamic Reconfiguration

One of the key features that the ARM® HPS enables is software-controlled dynamic reconfiguration of the JESD204B parameters. You can issue the reconfiguration command (rc) along with the parameters and values that you desire at the command prompt. The valid ranges for the values entered for each parameter are governed by certain rules. These rules are a function of:

  • JESD204B IP core valid parameter ranges.
  • JESD204B transport layer valid parameter ranges.
  • Initially configured values for the JESD204B IP core.

The rule enforcement for valid ranges are implemented as discrete functions in the rules.c file (see Functions in rules.c Source File section) and are described in the table below. If you enter an invalid value, the software flags the error to the screen and disallows the change.

The Altera JESD204B transport layer in the reference design has a more restricted value range for certain parameters compared to the JESD204B IP core. In cases where the parameter value ranges are governed by both the JESD204B IP core and the transport layer, the more restrictive value range will take precedence. In the table below, the transport layer rules are indicated by “TL:”.
Note: If you are not using the Altera transport layer, turn off the transport layer rule checking by setting the ALTERA_TRANSPORT_LAYER parameter in the main.h header file to ‘0‘ (see the Software Parameters section).
Table 15.  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.