Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.
Comment: SOC Interface update (V2) + Service description
Table of Contents

Introduction

...

The NX_GCK_U can be used exclusively by instantiation. The current version of NXmap3 does not yet support inference for this device.

Generics

inv_in

type bit

default value ‘0’

This generic select wether to invert (inv_in = ‘1’) or not both clock inputs pins SI1 and SI2.

inv_out

type bit

default value ‘0’

This generic select wether to invert (inv_out = ‘1’) or not the clock output pin SO.

std_mode

type string

default value “BYPASS”

Select the configuration mode of the NX_GCK_U. NX_GCK_U can be configured into the following modes:

...

The NX_CKS can be used exclusively by instantiation. The current version of NXmap does not yet support inference for this device.

Image RemovedImage Added

Figure 1: CKS chronograms

...

Figure 2: NG-ULTRA CKG block diagram

The next figure shows a block diagram of the NX_PLL_U and the user’s settings (in yellow).

Figure 3: Simplified NG-ULTRA PLL block diagram

Generics

location

type string

default value “”

This generic allows to define the NX_PLL_U location directly in the source code (instead of using the nxpython addPLLLocation method).

Example : location => “CKG2.PLL1”

use_pll

type bit

default value 0

Set to 1 to enable the PLL. When set to 0, the PLL is bypassed with Fvco = Frefo.

pll_odf

type bit_vector (1 downto 0)

default value others => ‘0’

Define the output division factor of the PLL (factors: 1, 2, 5 and 10).

pll_odf

Output Division factor

0

1

1

2

2

5

3

10

pll_lock

type bit_vector (1 downto 0)

default value others => ‘0’

Configure the frequency lock.

pll_lock value

PPM approx

0

20

1

40

2

60

3

80

4

100

5

200

6

400

7

600

8

800

9

1000

10

2000

11

4000

12

6000

13

8000

14

10000

15

20000

ref_intdiv

type bit_vector (4 downto 0)

default value others => ‘0’

The REFerence frequency can be divided by factors ranging from 1 to 32 before reaching the VCO input. This allows to give more flexibility of the PLL generated output frequency, and increase the PLL input frequency range.

REF input frequency range

ref_intdiv value

Vco input frequency

5 to 50 MHz

0

Fref

10 to 100 MHz

1

Fref / 2

15 to 150 MHz

2

Fref / 3

20 to 200 MHz

3

Fref / 4

...

150 MHz to 1,5 GHz

29

Fref / 30

155 MHz to 1,55 GHz

30

Fref / 31

160 MHz to 1,6 GHz

31

Fref / 32

For VCO expected at 400MHz, ref_intdiv value must be set to 8 with a REF input frequency range between 45 and 450 Mhz.

ref_osc_on

type bit

default value ‘0’

This generic configures the source of the PLL reference.

If ref_osc_on is set to ‘0’, the input reference of the pll is the REF input pin.

If set to ‘1’, the internal oscillator is used as reference of the PLL.

ext_fbk_on

type bit

default value ‘0’

When ‘0’, the internal feedback path is selected. The output of the FBK_INTDIV divider is used as feedback source. The VCO output frequency is divided by (fbk_intdiv + 1)

When ‘1’, the external feedback path is selected. This is particularly useful for “zero delay” clock generation.

fbk_intdiv

type bit_vector (6 downto 0)

default value others => ‘0’

Internal feedback divider of N+1 ratio (with division from 1 to 128).

fbk_delay_on

type bit

default value ‘0’

This generic configures whether the delay of the feedback path is active (‘1’) or not (‘0’).

fbk_delay

type bit_vector (5 downto 0)

default value others => ‘0’

The number of delay taps on the feedback path (internal or external) can be adjusted to meet the required phase on the VCO outputs. When using external feedback, it can be used to compensate the delay on the reference clock input to the REF pin of the PLL via the semi-dedicated clock input pin and associated direct routing.

The delay can be selected or not (see fbk_delay_on). When selected, it can be adjusted from 340 ps (fbk_delay = 0) to 10580 ps (fbk_delay = 63) by steps of 160 ps.

clk_outdiv1 : applies to CLK_DIV1

type bit_vector (2 downto 0)

default value others => ‘0’

...

CLK_DIV1 = Fpll/(2*7+3) = Fpll / 17

clk_outdiv2 : applies to CLK_DIV2

type bit_vector (2 downto 0)

default value others => ‘0’

...

CLK_DIV2 = Fpll/(2*7+5) = Fpll / 19

clk_outdiv3 : applies to CLK_DIV3

type bit_vector (2 downto 0)

default value others => ‘0’

...

CLK_DIV3 = Fpll/(2*0+5) = Fpll / 7

If clk_outdiv3 = 7

CLK_DIV3 = Fpll/(2*7+5) = Fpll / 21

clk_outdiv4 : applies to CLK_DIV4

type bit_vector (2 downto 0)

default value others => ‘0’

...

CLK_DIV4 = Fpll/(2*0+5) = Fpll / 9

If clk_outdiv4 = 7

CLK_DIV4 = Fpll/(2*7+5) = Fpll / 23

clk_outdivd* : applies to CLK_DIVD*

type bit_vector (3 downto 0)

default value others => ‘0’

...

This generic allows to define the divider value of the CLK_DIVD* output. There are 16 possible values:

clk_outdivd*

ratio

Fpll_div_dyn

(ex: Fpll = 800Mhz)

0

2

400

1

4

200

2

6

133.33

3

8

100

4

10

80

5

20

40

6

40

20

7

60

13.33

8

80

10

9

100

8

10

200

4

11

400

2

12

600

1.33

13

800

1

14

1000

0.8

15

2000

0.4

* clk_outdivd1/2/3/4/5 respectively apply to CLK_DIVD1/2/3/4/5

use_cal

type bit

default value ‘0’

When set to 0, the calibration module is bypassed. When set to 1, the calibration module is activated with cal_div and cal_delay generics used to define divide and delay values of the calibration engine.

clk_cal_sel

type bit_vector (1 downto 0)

default value “01”

Select the clock used for internal calibration.

cal_div

type bit_vector (3 downto 0)

default value “0111”

Set the division factor of the calibration engine.

cal_delay

type bit_vector (5 downto 0)

default value “011011”

Set the delay value of the calibration engine.

Notes about user’s adjustable delays on NG-ULTRA:

The PLL has a user’s selectable and adjustable delay line (no delay or 0 to 63 x 100 ps +/- 5% delay taps) on the feedback path. A similar delay chain is available in each WFGs. Finally, the IO banks have input, output and tri-state command 64-tap delay chains.

All the delay chain taps are calibrated with the same automatic process and hardware resources.

The procedure is transparent to the user.

The delays calibration system uses the PLL 400 MHz oscillator output as reference clock to calibrate all delays: feedback path in the PLL itself, WFG delays and calibration delay in same CKG), and IO delays in the neighboring complex IO banks:

  • CKG1 oscillator calibrates the delays in CKG1 (PLL + CAL+ WFGs)

    • Banks 11 to 13

  • CKG2 oscillator calibrates the delays in CKG2 (PLL + CAL + WFGs)

    • Banks 2 to 3

  • CKG3 oscillator calibrates the delays in CKG3 (PLL + CAL + WFGs)

  • CKG4 oscillator calibrates the delays in CKG4 (PLL + CAL + WFGs)

    • Banks 4 to 5

  • CKG5 oscillator calibrates the delays in CKG5 (PLL + CAL+ WFGs)

Banks 8 to 10

  • CKG6 oscillator calibrates the delays in CKG6 (PLL + CAL+ WFGs)

    • Banks 8 to 10

  • CKG7 oscillator calibrates the delays in CKG7 (PLL + CAL+ WFGs)

    • Banks 11 to 13

The calibration procedure takes about 10 µs at startup. The “CAL_LOCKED” output goes high when the delay calibration process is complete. Can be used as status bit.

Ports

Ports

Direction

Type

Description

REF

In

std_logic

Reference clock input

Connectivity: semi-dedicated clock inputs, clock trees (low skew network)

FBK

In

std_logic

External FeedBack input

Connectivity: semi-dedicated clock inputs, clock trees (low skew network)

R

In

std_logic

Active high Reset input. Must be activated when REF input frequency changes to force a re-locking process of the PLL

ARST_CAL

In

std_logic

Active high asynchronous reset input of the calibration module

CAL_CLK

In

std_logic

Clock input of the calibration module.

EXT_CAL_LOCKED

In

sdt_logic

Input of the calibration module coming from the fabric. Indicates the calibration is locked

EXT_CAL1/2/3/4/5

In

sdt_logic

Input of the calibration module coming from the fabric. Indicates the calibration value send by fabric

VCO

Out

std_logic

VCO output:

- Fvco = REF * 2 * (fbk_intdiv+1) / (ref_intdiv+1) with use_pll = 1

- Fvco = Frefo when use_pll = 0

REFO

Out

std_logic

Output of the REFerence divider. The division factor is set by the generic “ref_intdiv”

LDFO

Out

std_logic

Output of the FBK_INTDIV divider. The division factor is set by the generic ‘fbk_intdiv”

CLK_DIV1

Out

std_logic

This output delivers a divided (by 2N+3) PLL frequency or REF frequency (in case PLL is bypassed). The division factor is set by the generic “clk_outdiv1”

CLK_DIV2

Out

std_logic

This output delivers a divided (by 2N+5) PLL frequency or REF frequency (in case PLL is bypassed). The division factor is set by the generic “clk_outdiv2”

CLK_DIV3

Out

std_logic

This output delivers a divided (by 2N+7) PLL frequency or REF frequency (in case PLL is bypassed). The division factor is set by the generic “clk_outdiv3”

CLK_DIV4

Out

std_logic

This output delivers a divided (by 2N+9) PLL frequency or REF frequency (in case PLL is bypassed). The division factor is set by the generic “clk_outdiv4”

CLK_DIVD1

Out

std_logic

This output delivers a dynamically divided (by N+2) PLL frequency or REF frequency (in case PLL is bypassed). The division factor is set by the generic “clk_outdivd1”

CLK_DIVD2

Out

std_logic

This output delivers a dynamically divided (by N+2) PLL frequency or REF frequency (in case PLL is bypassed). The division factor is set by the generic “clk_outdivd2”

CLK_DIVD3

Out

std_logic

This output delivers a dynamically divided (by N+2) PLL frequency or REF frequency (in case PLL is bypassed). The division factor is set by the generic “clk_outdivd3”

CLK_DIVD4

Out

std_logic

This output delivers a dynamically divided (by N+2) PLL frequency or REF frequency (in case PLL is bypassed). The division factor is set by the generic “clk_outdivd4”

CLK_DIVD5

Out

std_logic

This output delivers a dynamically divided (by N+2) PLL frequency or REF frequency (in case PLL is bypassed). The division factor is set by the generic “clk_outdivd5”

OSC

Out

std_logic

Internal 400 MHz oscillator

Connectivity: WFG inputs, delay calibration engine

PLL_LOCKED

Out

std_logic

High when PLL is locked synchronously (fine grain)

Connectivity: RDY inputs of WFGs, fabric…

PLL_LOCKEDA

Out

std_logic

High when PLL is locked asynchronously (coarse grain)

Connectivity: RDY inputs of WFGs, fabric…

CLK_CAL_DIV

Out

std_logic

Divided Clock of the calibration module sent to fabric

CAL_LOCKED

Out

std_logic

High when the automatic calibration procedure of the current FPGA quarte area is complete

Connectivity: fabric

CAL1/2/3/4/5

Out

std_logic

Calibration value sent to fabric

...

Figure 4: NX_WFG_U diagram

Generics

location

type string

default value “” (no location constraint)

This generic allows to define the NX_WFG_L location directly in the source code (with the addWFGLocation method)

Example : location => “CKG2.WFG_C2”,

delay

type integer

default value 0

...

The NX_ADD is composed of 4 stages numbered from 1 to 4 where 1 represents the LSB.

Image RemovedImage Added

Figure 6: NX_ADD diagram

...

The NX_LUT component describes a 4-input LUT as part of a functional element (FE) as shown in the following diagram:

Image RemovedImage Added

Figure 7: NX_LUT diagram

...

The nxmap nxLibrary-Ultra.vhdp defines several dedicated NX IP models, instantiating NX_RFB_U component, for each of the above configurations.

Image RemovedImage Added

Figure 9: 32x18 RF implemented in a TILE of NG-Ultra

...

Figure 12: DSP 24x32 bits unsigned multiplication

Image RemovedImage Added

Figure 13: DSP 24x36 bits unsigned multiplication

...

The following is the declaration of the component NX_DSP_U_SPLIT, included in the nxLibrary-Ultra.vhdp package.

component NX_DSP_U_SPLIT

generic (

-------------------------------------------------------------------------

...

-------------------------------------------------------------------------

SIGNED_MODE : bit := '0';

INV_WE : bit := '0';

INV_WEZ : bit := '0';

INV_RST: bit := '0';

INV_RSTZ : bit := '0';

ALU_DYNAMIC_OP : bit_vector(1 downto 0) := B"00"; -- '00' for Static,

-- '-1' for Dynamic control from C

-- '10' for Dynamic control from D

SATURATION_RANK : bit_vector(5 downto 0) := B"000000"; -- Weight of useful MSB on Z and CZO result

-- (to define saturation and overflow)

ENABLE_SATURATION : bit := '0'; -- '0' for Disable, '1' for Enable

MUX_CCO : bit := '0'; -- '0' for CCO = ALU(42), '1' for CCO = ALU(56)

MUX_Z : bit := '0'; -- Select Z output. '0' for Y, '1' Saturation / ALU

MUX_CZ : bit := '0'; -- Select MUX_X input. '0' for CZI, '1' for CZO

MUX_Y : bit := '0'; -- Select ALU's Y input. '0' for MULT output, '1' for (B & A)

MUX_X : bit_vector(2 downto 0) := B"000"; -- Select MUX_X operation

...

-- "110" for MUX_X >> 17

-- "111" for MUX_X >> 18

MUX_CCI : bit := '0'; -- Select '1' input of CI mux. '0' for CCI, '1' for CO_feddback

MUX_CI : bit := '0'; -- Select input carry of ALU. '0' for CI, '1' for CCI/CO_feedback mux

MUX_P : bit := '0'; -- '0' for PRE_ADDER, '0' for B input

MUX_B : bit := '0'; -- '0' = B input, '1' = CBI input

MUX_A : bit := '0'; -- '0' = A input, '1' = CAI input

PRE_ADDER_OP : bit := '0'; -- '0' = Add, '1' = Sub

-------------------------------------------------------------------------

...

-------------------------------------------------------------------------

PR_WE_MUX : bit := '0'; -- '0' for No pipe reg, '1' for 1 pipe reg

PR_WEZ_MUX : bit := '0'; -- '0' for No pipe reg, '1' for 1 pipe reg

PR_RST_MUX : bit := '0'; -- '0' for No pipe reg, '1' for 1 pipe reg

PR_RSTZ_MUX : bit := '0'; -- '0' for No pipe reg, '1' for 1 pipe reg

PR_OV_MUX : bit := '0'; -- '0' for No pipe reg, '1' for 1 pipe reg

PR_CO_MUX : bit := '0'; -- Registered carry out (CO42 & CO56)

PR_CCO_MUX : bit := '0'; -- Registered cascade carry out

PR_Z_MUX : bit := '0'; -- Registered output

PR_CZ_MUX : bit := '0'; -- Registered Cascade output

PR_Y_MUX : bit := '0'; -- '0' for No pipe reg, '1' for 1 pipe reg

PR_X_MUX : bit := '0'; -- '0' for No pipe reg, '1' for 1 pipe reg

PR_CI_MUX : bit := '0'; -- '0' for No pipe reg, '1' for 1 pipe reg

PR_MULT_MUX : bit := '0'; -- No pipe reg -- Register inside MULT

PR_P_MUX : bit := '0'; -- '0' for No pipe reg, '1' for 1 pipe reg (Pre-adder)

PR_D_MUX : bit := '0'; -- '0' for No pipe reg, '1' for 1 pipe reg

PR_C_MUX : bit := '0'; -- '0' for No pipe reg, '1' for 1 pipe reg

PR_B_CASCADE_MUX : bit_vector(1 downto 0) := "00"; -- Number of pipe reg levels for CAO output. "-0" for 0 level, "01" for 1 level, "11" for 2 levels

PR_B_MUX : bit_vector(1 downto 0) := "00"; -- Number of pipe reg levels on B input. "-0" for 0 level, "01" for 1 level, "11" for 2 levels

PR_A_CASCADE_MUX : bit_vector(1 downto 0) := "00"; -- Number of pipe reg levels for CAO output. "-0" for 0 level, "01" for 1 level, "11" for 2 levels

PR_A_MUX : bit_vector(1 downto 0) := "00"; -- Number of pipe reg levels on A input. "-0" for 0 level, "01" for 1 level, "11" for 2 levels

...

-------------------------------------------------------------------------

ENABLE_PR_OV_RST : bit := '1'; -- '0' for Disable, '1' for Enable

ENABLE_PR_CO_RST : bit := '1'; -- '0' for Disable, '1' for Enable

ENABLE_PR_CCO_RST : bit := '1'; -- '0' for Disable, '1' for Enable

ENABLE_PR_Z_RST : bit := '1'; -- '0' for Disable, '1' for Enable

ENABLE_PR_CZ_RST : bit := '1'; -- '0' for Disable, '1' for Enable

ENABLE_PR_Y_RST : bit := '1'; -- '0' for Disable, '1' for Enable

ENABLE_PR_X_RST : bit := '1'; -- '0' for Disable, '1' for Enable

ENABLE_PR_CI_RST : bit := '1'; -- '0' for Disable, '1' for Enable

ENABLE_PR_MULT_RST : bit := '1'; -- '0' for Disable, '1' for Enable

ENABLE_PR_P_RST : bit := '1'; -- '0' for Disable, '1' for Enable

ENABLE_PR_D_RST : bit := '1'; -- '0' for Disable, '1' for Enable

ENABLE_PR_C_RST : bit := '1'; -- '0' for Disable, '1' for Enable

ENABLE_PR_B_RST : bit := '1'; -- '0' for Disable, '1' for Enable

ENABLE_PR_A_RST : bit := '1'; -- '0' for Disable, '1' for Enable

-- PR_CZ_INIT : bit_vector(5 downto 0) := B"000000"; -- Value of CZ's pipe register on reset

...

-------------------------------------------------------------------------

ALU_OP : bit_vector(2 downto 0) := B"000"; -- ALU operation

-- x+y+c = "000"

...

-- -x+y-c = "110"

-- -x-y+c-2 = "111"

);

port(

CK : IN std_logic;

R : IN std_logic;

RZ : IN std_logic;

WE : IN std_logic;

WEZ : IN std_logic;

CI : IN std_logic;

A : IN std_logic_vector(23 downto 0);

B : IN std_logic_vector(17 downto 0);

C : IN std_logic_vector(35 downto 0);

D : IN std_logic_vector(17 downto 0);

CAI : IN std_logic_vector(23 downto 0);

CBI : IN std_logic_vector(17 downto 0);

CZI : IN std_logic_vector(55 downto 0);

CCI : IN std_logic;

Z : out std_logic_vector(55 downto 0);

CO42 : OUT std_logic;

CO56 : OUT std_logic;

OVF : OUT std_logic;

CAO : OUT std_logic_vector(23 downto 0);

CBO : OUT std_logic_vector(17 downto 0);

CZO : OUT std_logic_vector(55 downto 0);

CCO : OUT std_logic

);

end component

NX_DSP_U_WRAP

Description

The NX_DSP_U_WRAP component provides a wrapper around NX_DSPU IP for user convenience, concatening bits into vector interfaces. The generics are the same as NX_DSP_U, check the associated section for detail explanations.

...

However, simultaneous write access on both ports at the same physical address, or write access simultaneous with a read access at the same physical address are not allowed.

Image RemovedImage Added

Figure 17: RAM diagram

...

The following array list the clock, reset and config (interruptions, trigger, hold) signals exchanged between the fabric and the SOC.

Ports

Direction

Type

Description

fabric_lowskew_o

Output

std_logic_vector (1 downto 0)

dahlia_rstn_fpga_out_i / dahlia_clk_fpga_i going to fabric

fabric_lowskew_i

Input

std_logic_vector (

9

18 downto

0

2)

10 FPGA clocks (dahlia_clk_fpga_nic_o) send by fabric

18 => fpga_ddr0

17 => llpp3_s

16 => llpp2_s

15 => llpp1_s

14 => llpp0_s

13 => fpga_apb

12 => axi_s2

11 => axi_s1

10 => axi_m2

9 => axi_m1

8 => dma_hs_5

7 => dma_hs_4

6 => dma_hs_3

5 => dma_hs_2

4 => dma_hs_1

3 => dma_hs_0

2 => qos_pclk

fabric_enable_TMR_i

Input

std_logic_vector(3 downto 0)

Control bits to enable signals going from SoC to Fabric. Default value set to 1 for each bit

fabric_fpga_nic_rstn_i

Input

std_logic_vector (9 downto 0)

10 FPGA resets (dahlia_fpga_pmrstn_o) send by fabric

Same mapping than fabric_lowskew_i

fabric_fpga_pmrstn_i

Input

std_logic

Power monitoring reset. Active low

fabric_fpga_sysrstn_i

Input

std_logic

System reset. Active low

fabric_fpga_trigger_in_o

Output

std_logic_vector (7 downto 0)

Trigger in bus

fabric_fpga_trigger_out_i

Input

std_logic_vector (7 downto 0)

Trigger out bus

fabric_fpga_interrupt_in_i

Input

std_logic_vector (119 downto 0)

Interrupt bus

fabric_sysc_hold_on_debug_i

Input

std_logic

Hold

fabric_fpga_events60_i

Input

std_logic_vector (59 downto 0)

Fpga event bus

fabric_spw_interrupts_toggle_o

Output

std_logic_vector(2 downto 0)

Spacewire interruption toggle

fabric_spw_interrupts_o

Output

std_logic_vector(2 downto 0)

Spacewire interruption

fabric_flash_irq_toggle_o

Output

std_logic

Flash interruption toggle

fabric_flash_irq_o

Output

std_logic

Flash interruption

AXI Master requests

The Network interconnect of the SoC (NIC) handles different protocols for different interfaces, including two set of AXI master interfaces connected to the fabric.

Ports

Direction

Type

fabric_fpga_dma_hs_rstn_i

Input

std_logic_vector (5 downto 0)

fabric_fpga_arready_axi_m*_o

Output

std_logic

fabric_fpga_awready_axi_m*_o

Output

std_logic

fabric_fpga_bid_axi_m*_o

Output

std_logic_vector (4 downto 0)

fabric_fpga_bresp_axi_m*_o

Output

std_logic_vector (1 downto 0)

fabric_fpga_bvalid_axi_m*_o

Output

std_logic

fabric_fpga_dma_ack_m*_o

Output

std_logic_vector (5 downto 0)

fabric_fpga_dma_finish_m*_o

Output

std_logic_vector (5 downto 0)

fabric_fpga_rdata_axi_m*_o

Output

out std_logic_vector (127 downto 0)

fabric_fpga_rid_axi_m*_o

Output

out std_logic_vector (4 downto 0)

fabric_fpga_rlast_axi_m*_o

Output

std_logic

fabric_fpga_rresp_axi_m*_o

Output

std_logic_vector (1 downto 0)

fabric_fpga_rvalid_axi_m*_o

Output

std_logic

fabric_fpga_wready_axi_m*_o

Output

std_logic

fabric_fpga_araddr_axi_m*_i

Input

std_logic_vector (39 downto 0)

fabric_fpga_arburst_axi_m*_i

Input

std_logic_vector (1 downto 0)

fabric_fpga_arcache_axi_m*_i

Input

std_logic_vector (3 downto 0)

fabric_fpga_arid_axi_m*_i

Input

std_logic_vector (4 downto 0)

fabric_fpga_arlen_axi_m*_i

Input

std_logic_vector (7 downto 0)

fabric_fpga_arlock_axi_m*_i

Input

std_logic

fabric_fpga_arprot_axi_m*_i

Input

std_logic_vector (2 downto 0)

fabric_fpga_arqos_axi_m*_i

Input

std_logic_vector (3 downto 0)

fabric_fpga_arsize_axi_m*_i

Input

std_logic_vector (2 downto 0)

fabric_fpga_arvalid_axi_m*_i

Input

std_logic

fabric_fpga_awaddr_axi_m*_i

Input

std_logic_vector (39 downto 0)

fabric_fpga_awburst_axi_m*_i

Input

std_logic_vector (1 downto 0)

fabric_fpga_awcache_axi_m*_i

Input

std_logic_vector (3 downto 0)

fabric_fpga_awid_axi_m*_i

Input

std_logic_vector (4 downto 0)

fabric_fpga_awlen_axi_m*_i

Input

std_logic_vector (7 downto 0)

fabric_fpga_awlock_axi_m*_i

Input

std_logic

fabric_fpga_awprot_axi_m*_i

Input

std_logic_vector (2 downto 0)

fabric_fpga_awqos_axi_m*_i

Input

std_logic_vector (3 downto 0)

fabric_fpga_awsize_axi_m*_i

Input

std_logic_vector (2 downto 0)

fabric_fpga_awvalid_axi_m*_i

Input

std_logic

fabric_fpga_bready_axi_m*_i

Input

std_logic

fabric_fpga_dma_last_m*_i

Input

std_logic_vector (5 downto 0)

fabric_fpga_dma_req_m*_i

Input

std_logic_vector (5 downto 0)

fabric_fpga_dma_single_m*_i

Input

std_logic_vector (5 downto 0)

fabric_fpga_rready_axi_m*_i

Input

std_logic

fabric_fpga_wdata_axi_m*_i

Input

std_logic_vector (127 downto 0)

fabric_fpga_wlast_axi_m*_i

Input

std_logic

fabric_fpga_wstrb_axi_m*_i

Input

std_logic_vector (15 downto 0)

fabric_fpga_wvalid_axi_m*_i

Input

std_logic

* : valid for M1 and M2 AXI Master requests

...

The Network interconnect of the SoC (NIC) handles different protocols for different interfaces, including two set of AXI slave interfaces connected to the fabric.

Ports

Direction

Type

fabric_fpga_araddr_axi_s*_o

Output

std_logic_vector (39 downto 0)

fabric_fpga_arburst_axi_s*_o

Output

std_logic_vector (1 downto 0)

fabric_fpga_arcache_axi_s*_o

Output

std_logic_vector (3 downto 0)

fabric_fpga_arid_axi_s*_o

Output

std_logic_vector (11 downto 0)

fabric_fpga_arlen_axi_s*_o

Output

std_logic_vector (7 downto 0)

fabric_fpga_arlock_axi_s*_o

Output

std_logic

fabric_fpga_arprot_axi_s*_o

Output

std_logic_vector (2 downto 0)

fabric_fpga_arqos_axi_s*_o

Output

out std_logic_vector (3 downto 0)

fabric_fpga_arregion_axi_s*_o

Output

std_logic_vector (3 downto 0)

fabric_fpga_arsize_axi_s*_o

Output

std_logic_vector (2 downto 0)

fabric_fpga_arvalid_axi_s*_o

Output

std_logic

fabric_fpga_awaddr_axi_s*_o

Output

std_logic_vector (39 downto 0)

fabric_fpga_awburst_axi_s*_o

Output

std_logic_vector (1 downto 0)

fabric_fpga_awcache_axi_s*_o

Output

std_logic_vector (3 downto 0)

fabric_fpga_awid_axi_s*_o

Output

std_logic_vector (11 downto 0)

fabric_fpga_awlen_axi_s*_o

Output

std_logic_vector (7 downto 0)

fabric_fpga_awlock_axi_s*_o

Output

std_logic

fabric_fpga_awprot_axi_s*_o

Output

std_logic_vector (2 downto 0)

fabric_fpga_awqos_axi_s*_o

Output

std_logic_vector (3 downto 0)

fabric_fpga_awregion_axi_s*_o

Output

std_logic_vector (3 downto 0)

fabric_fpga_awsize_axi_s*_o

Output

std_logic_vector (2 downto 0)

fabric_fpga_bready_axi_s*_o

Output

std_logic

fabric_fpga_rready_axi_s*_o

Output

std_logic

fabric_fpga_wdata_axi_s*_o

Output

std_logic_vector (127 downto 0)

fabric_fpga_wlast_axi_s*_o

Output

std_logic

fabric_fpga_wstrb_axi_s*_o

Output

std_logic_vector (15 downto 0)

fabric_fpga_wvalid_axi_s*_o

Output

std_logic

fabric_fpga_awvalid_axi_s*_o

Output

std_logic

fabric_fpga_arready_axi_s*_i

Input

std_logic

fabric_fpga_awready_axi_s*_i

Input

std_logic

fabric_fpga_bid_axi_s*_i

Input

std_logic_vector (11 downto 0)

fabric_fpga_bresp_axi_s*_i

Input

std_logic_vector (1 downto 0)

fabric_fpga_bvalid_axi_s*_i

Input

std_logic

fabric_fpga_rdata_axi_s*_i

Input

std_logic_vector (127 downto 0)

fabric_fpga_rid_axi_s*_i

Input

std_logic_vector (11 downto 0)

fabric_fpga_rlast_axi_s*_i

Input

std_logic

fabric_fpga_rresp_axi_s*_i

Input

std_logic_vector (1 downto 0)

fabric_fpga_rvalid_axi_s*_i

Input

std_logic

fabric_fpga_wready_axi_s*_i

Input

std_logic

* : valid for S1 and S2 slave requests

...

The Network interconnect of the SoC (NIC) handles different protocols for different interfaces, including a FPGA DDR interface through which the fabric can send requests to the DDR controller in the SoC.

Ports

Direction

Type

fabric_fpga_ddr0_arready_o

Output

std_logic

fabric_fpga_ddr0_awready_o

Output

std_logic

fabric_fpga_ddr0_bid_o

Output

std_logic_vector (4 downto 0)

fabric_fpga_ddr0_bresp_o

Output

std_logic_vector (1 downto 0)

fabric_fpga_ddr0_bvalid_o

Output

std_logic

fabric_fpga_ddr0_rdata_o

Output

out std_logic_vector (127 downto 0)

fabric_fpga_ddr0_rid_o

Output

out std_logic_vector (4 downto 0)

fabric_fpga_ddr0_rlast_o

Output

std_logic

fabric_fpga_ddr0_rresp_o

Output

std_logic_vector (1 downto 0)

fabric_fpga_ddr0_rvalid_o

Output

std_logic

fabric_fpga_ddr0_wready_o

Output

std_logic

fabric_fpga_ddr0_araddr_i

Input

std_logic_vector (39 downto 0)

fabric_fpga_ddr0_arburst_i

Input

std_logic_vector (1 downto 0)

fabric_fpga_ddr0_arcache_i

Input

std_logic_vector (3 downto 0)

fabric_fpga_ddr0_arid_i

Input

std_logic_vector (4 downto 0)

fabric_fpga_ddr0_arlen_i

Input

std_logic_vector (7 downto 0)

fabric_fpga_ddr0_arlock_i

Input

std_logic

fabric_fpga_ddr0_arprot_i

Input

std_logic_vector (2 downto 0)

fabric_fpga_ddr0_arqos_i

Input

std_logic_vector (3 downto 0)

fabric_fpga_ddr0_arsize_i

Input

std_logic_vector (2 downto 0)

fabric_fpga_ddr0_arvalid_i

Input

std_logic

fabric_fpga_ddr0_awaddr_i

Input

std_logic_vector (39 downto 0)

fabric_fpga_ddr0_awburst_i

Input

std_logic_vector (1 downto 0)

fabric_fpga_ddr0_awcache_i

Input

std_logic_vector (3 downto 0)

fabric_fpga_ddr0_awid_i

Input

std_logic_vector (4 downto 0)

fabric_fpga_ddr0_awlen_i

Input

std_logic_vector (7 downto 0)

fabric_fpga_ddr0_awlock_i

Input

std_logic

fabric_fpga_ddr0_awprot_i

Input

std_logic_vector (2 downto 0)

fabric_fpga_ddr0_awqos_i

Input

std_logic_vector (3 downto 0)

fabric_fpga_ddr0_awsize_i

Input

std_logic_vector (2 downto 0)

fabric_fpga_ddr0_awvalid_i

Input

std_logic

fabric_fpga_ddr0_bready_i

Input

std_logic

fabric_fpga_ddr0_rready_i

Input

std_logic

fabric_fpga_ddr0_wdata_i

Input

std_logic_vector (127 downto 0)

fabric_fpga_ddr0_wlast_i

Input

std_logic

fabric_fpga_ddr0_wstrb_i

Input

std_logic_vector (15 downto 0)

fabric_fpga_ddr0_wvalid_i

Input

std_logic

LLPP requests

The Network interconnect of the SoC (NIC) handles different protocols for different interfaces, including four Low Latency Parallel Port (LLPP) interfaces through which R52 cores of the SoC can send requests directly to the fabric.

Ports

Direction

Type

fabric_llpp*_araddr_s_o

Output

std_logic_vector (31 downto 0)

fabric_llpp*_arburst_s_o

Output

std_logic_vector (1 downto 0)

fabric_llpp*_arcache_s_o

Output

std_logic_vector (3 downto 0)

fabric_llpp*_arid_s_o

Output

std_logic_vector (11 downto 0)

fabric_llpp*_arlen_s_o

Output

std_logic_vector (7 downto 0)

fabric_llpp*_arlock_s_o

Output

std_logic

fabric_llpp*_arprot_s_o

Output

std_logic_vector (2 downto 0)

fabric_llpp*_arqos_s1_o

Output

std_logic_vector (3 downto 0)

fabric_llpp*_arsize_s_o

Output

std_logic_vector (2 downto 0)

fabric_llpp*_arvalid_s_o

Output

std_logic

fabric_llpp*_awaddr_s_o

Output

std_logic_vector (31 downto 0)

fabric_llpp*_awburst_s_o

Output

std_logic_vector (1 downto 0)

fabric_llpp*_awcache_s_o

Output

std_logic_vector (3 downto 0)

fabric_llpp*_awid_s_o

Output

std_logic_vector (11 downto 0)

fabric_llpp*_awlen_s_o

Output

std_logic_vector (7 downto 0)

fabric_llpp*_awlock_s_o

Output

std_logic

fabric_llpp*_awprot_s_o

Output

std_logic_vector (2 downto 0)

fabric_llpp*_awqos_s_o

Output

std_logic_vector (3 downto 0)

fabric_llpp*_awsize_s_o

Output

std_logic_vector (2 downto 0)

fabric_llpp*_awvalid_s_o

Output

std_logic

fabric_llpp*_bready_s_o

Output

std_logic

fabric_llpp*_rready_s_o

Output

std_logic

fabric_llpp*_wdata_s_o

Output

std_logic_vector (31 downto 0)

fabric_llpp*_wlast_s_o

Output

std_logic

fabric_llpp*_wstrb_s_o

Output

std_logic_vector (3 downto 0)

fabric_llpp*_wvalid_s_o

Output

std_logic

fabric_llpp*_arready_s_i

Input

std_logic

fabric_llpp*_awready_s_i

Input

std_logic

fabric_llpp*_bid_s_i

Input

std_logic_vector (11 downto 0)

fabric_llpp*_bresp_s_i

Input

std_logic_vector (1 downto 0)

fabric_llpp*_bvalid_s_i

Input

std_logic

fabric_llpp*_rdata_s_i

Input

out std_logic_vector (31 downto 0)

fabric_llpp*_rid_s_i

Input

out std_logic_vector (11 downto 0)

fabric_llpp*_rlast_s_i

Input

std_logic

fabric_llpp*_rresp_s_i

Input

std_logic_vector (1 downto 0)

fabric_llpp*_rvalid_s_i

Input

std_logic

fabric_llpp*_wready_s_i

Input

std_logic

* : valid for llpp0, llpp1, llpp2 and llpp3 requests

...

The SoC provides several services and error management & monitoring functionalities which are connected to the NIC and can be available through the fabric with the following interface.

Ports

Direction

Type

fabric_qos_pprdata_o

Output

std_logic_vector (31 downto 0)

fabric_qos_ppready_o

Output

std_logic

fabric_qos_ppslverr_o

Output

std_logic

fabric_qos

_pclk

_

i

Input

std_logic

fabric_qos_

ppaddr_i

Input

std_logic_vector (31 downto 0)

fabric_qos_ppenable_i

Input

std_logic

fabric_qos_ppwdata_i

Input

std_logic_vector (31 downto 0)

fabric_qos_ppwrite_i

Input

std_logic

fabric_qos_presetn_i

Input

std_logic

fabric_qos_psel_i

Input

std_logic

fabric_tnd_hssl_flushin_o

Output

std_logic

fabric_tnd_hssl_trigin_o

Output

std_logic

fabric_tnd_fpga_apb_master_paddr_o

Output

std_logic_vector (31 downto 0)

fabric_tnd_fpga_apb_master_penable_o

Output

std_logic

fabric_tnd_fpga_apb_master_psel_o

Output

std_logic

fabric_tnd_fpga_apb_master_pwdata_o

Output

std_logic_vector (31 downto 0)

fabric_tnd_fpga_apb_master_pwrite_o

Output

std_logic

fabric_tnd_fpga_atb_master_afvalid_o

Output

std_logic

fabric_tnd_fpga_atb_master_atready_o

Output

std_logic

fabric_tnd_fpga_atb_master_syncreq_o

Output

std_logic

fabric_tnd_hssl_apb_master_paddr_o

Output

std_logic_vector (31 downto 0)

fabric_tnd_hssl_apb_master_penable_o

Output

std_logic

fabric_tnd_hssl_apb_master_psel_o

Output

std_logic

fabric_tnd_hssl_apb_master_pwdata_o

Output

std_logic_vector (31 downto 0)

fabric_tnd_hssl_apb_master_pwrite_o

Output

std_logic

fabric_tnd_hssl_atb_master_afready_o

Output

std_logic

fabric_tnd_hssl_atb_master_atbytes_o

Output

std_logic_vector (3 downto 0)

fabric_tnd_hssl_atb_master_atdata_o

Output

std_logic_vector (127 downto 0)

fabric_tnd_hssl_atb_master_atid_o

Output

std_logic_vector (6 downto 0)

fabric_tnd_hssl_atb_master_atvalid_o

Output

std_logic

fabric_tnd_trace_clk_traceoutportintf_o

Output

std_logic

fabric_tnd_trace_ctl_traceoutportintf_o

Output

std_logic

fabric_tnd_trace_data_traceoutportintf_o

Output

std_logic_vector (31 downto 0)

fabric_tsvalue_tsgen_fpga_o

Output

std_logic_vector (63 downto 0)

fabric_tnd_fpga_apb_master_prdata_i

Input

std_logic_vector (31 downto 0)

fabric_tnd_fpga_apb_master_pready_i

Input

std_logic

fabric_tnd_fpga_apb_master_pslverr_i

Input

std_logic

fabric_tnd_fpga_atb_master_afready_i

Input

std_logic

fabric_tnd_fpga_atb_master_atbytes_i

Input

std_logic_vector (3 downto 0)

fabric_tnd_fpga_atb_master_atdata_i

Input

std_logic_vector (127 downto 0)

fabric_tnd_fpga_atb_master_atid_i

Input

std_logic_vector (6 downto 0)

fabric_tnd_fpga_atb_master_atvalid_i

Input

std_logic

fabric_tnd_hssl_apb_master_prdata_i

Input

std_logic_vector (31 downto 0)

fabric_tnd_hssl_apb_master_pready_i

Input

std_logic

fabric_tnd_hssl_apb_master_pslverr_i

Input

std_logic

fabric_tnd_hssl_atb_master_afvalid_i

Input

std_logic

fabric_tnd_hssl_atb_master_atready_i

Input

std_logic

fabric_tnd_hssl_atb_master_syncreq_i

Input

std_logic

fabric_watchdog0_signal_0_o

Output

std_logic

fabric_watchdog0_signal_1_o

Output

std_logic

fabric_watchdog1_signal_0_o

Output

std_logic

fabric_watchdog1_signal_1_o

Output

std_logic

fabric_watchdog2_signal_0_o

Output

std_logic

fabric_watchdog2_signal_1_o

Output

std_logic

fabric_watchdog3_signal_0_o

Output

std_logic

fabric_watchdog3_signal_1_o

Output

std_logic

fabric_tst_pll_lock_o

Output

std_logic_vector (6 downto 0)

fabric_soc_mon_sensor_alarm_o

Output

std_logic

fabric_erom_fpga_cpu0_dbgen_i

Input

std_logic

fabric_erom_fpga_cpu0_hiden_i

Input

std_logic

fabric_erom_fpga_cpu0_hniden_i

Input

std_logic

fabric_erom_fpga_cpu0_niden_i

Input

std_logic

fabric_erom_fpga_cpu1_dbgen_i

Input

std_logic

fabric_erom_fpga_cpu1

_hiden_i

Input

std_logic

fabric_erom_fpga_cpu1_hniden_i

Input

std_logic

fabric_erom_fpga_cpu1_niden_i

Input

std_logic

fabric_erom_fpga_cpu2_dbgen_i

Input

std_logic

fabric_erom_fpga_cpu2_hiden_i

Input

std_logic

fabric_erom_fpga_cpu2_hniden_i

Input

std_logic

fabric_erom_fpga_cpu2_niden_i

Input

std_logic

fabric_erom_fpga_cpu3_dbgen_i

Input

std_logic

fabric_erom_fpga_cpu3_hiden_i

Input

std_logic

fabric_erom_fpga_cpu3_hniden_i

Input

std_logic

fabric_erom_fpga_cpu3_niden_i

Input

std_logic

fabric_erom_fpga_cs_dbgen_i

_hiden_i

Input

std_logic

fabric_erom_fpga_cpu1_hniden_i

Input

std_logic

fabric_erom_fpga_cpu1_niden_i

Input

std_logic

fabric_erom_fpga_cpu2_dbgen_i

Input

std_logic

fabric_erom_fpga_cpu2_hiden_i

Input

std_logic

fabric_erom_fpga_cpu2_hniden_i

Input

std_logic

fabric_erom_fpga_cpu2_niden_i

Input

std_logic

fabric_erom_fpga_cpu3_dbgen_i

Input

std_logic

fabric_erom_fpga_cpu3_hiden_i

Input

std_logic

fabric_erom_fpga_cpu3_hniden_i

Input

std_logic

fabric_erom_fpga_cpu3_niden_i

Input

std_logic

fabric_erom_fpga_cs_dbgen_i

Input

std_logic

fabric_erom_fpga_cs_niden_i

Input

std_logic

fabric_erom_fpga_cs_deviceen_i

Input

std_logic

fabric_erom_fpga_cs_rst_n_i

Input

std_logic

fabric_erom_fpga_debug_en_i

Input

std_logic

SERVICE

NX_SERVICE_U_WRAP

Description

The NX_SERVICE_U_WRAP component describes the complete set of signals transiting between the Service bank) and the fabric of NG-Ultra.

Generics

bsm_config

type bit_vector(31 downto 0)

default value B"00000000000000000000000000000000"

This generic specifies the configuration for the bitstream functionalities.

ahb_config

type bit_vector(31 downto 0)

default value B"00000000000000000000000000000000"

This generic specifies the configuration for the ahb interface.

Ports

Lowskew

Ports

Direction

Type

Description

fabric_lowskew_o[2]                   

Output

std_logic

clk_bsm

fabric_lowskew_o[3]                   

Output

std_logic

tck

fabric_lowskew_o[4]                   

Output

std_logic

clk_otp_out

fabric_lowskew_o[5]                   

Output

std_logic

out_0

fabric_lowskew_i[19]             

Input

std_logic

otp_clk

fabric_lowskew_i[20]             

Input

std_logic

user_clk

fabric_lowskew_i[21]

Input

std_logic

otp_user_clk

fabric_lowskew_i[22]

Input

std_logic

clk_mrepair

BSM

Ports

Direction

Type

fabric_ahb_direct_data_o              

Output

std_logic_vector(31 downto 0)

fabric_io_out_o                       

Output

std_logic_vector(24 downto 0)

fabric_user_data_o                    

Output

std_logic_vector(31 downto 0)

fabric_user_write_cycle_o             

Output

std_logic

fabric_user_read_cycle_o              

Output

std_logic

fabric_cfg_fabric_user_flag_o         

Output

std_logic

fabric_cfg_fabric_user_unmask_o       

Output

std_logic

fabric_parusr_data_o                  

Output

std_logic_vector(15 downto 0)

fabric_parusr_data_val_o              

Output

std_logic

fabric_jtag_trst_n_o                  

Output

std_logic

fabric_jtag_tms_o                     

Output

std_logic

fabric_jtag_tdi_o                     

Output

std_logic

fabric_jtag_usr1_o                    

Output

std_logic

fabric_jtag_usr2_o                    

Output

std_logic

fabric_direct_data_o                  

Output

std_logic

fabric_status_cold_start_o            

Output

std_logic

fabric_flag_trigger_o                 

Output

std_logic

fabric_flag_error_o                   

Output

std_logic

fabric_flag_ready_o                   

Output

std_logic

fabric_ahb_direct_data_i         

Input

std_logic_vector(31 downto 0)

fabric_io_in_i                   

Input

std_logic

fabric_io_oe_i                   

Input

std_logic

fabric_user_data_i               

Input

std_logic_vector(31 downto 0)

fabric_parusr_cs_i               

Input

std_logic

fabric_parusr_type_i             

Input

std_logic_vector(1 downto 0)

fabric_parusr_data_i             

Input

std_logic_vector(15 downto 0)

fabric_jtag_tdo_usr1_i           

Input

std_logic

fabric_jtag_tdo_usr2_i           

Input

std_logic

fabric_direct_data_i             

Input

std_logic_vector(31 downto 0)

Debug

Ports

Direction

Type

fabric_otp_apb_ready_o                

Output

std_logic

fabric_otp_apb_rdata_o                

Output

std_logic_vector(31 downto 0)

fabric_otp_security_ack_o             

Output

std_logic

fabric_otp_security_bist_end1_o       

Output

std_logic

fabric_otp_security_bist_end2_o       

Output

std_logic

fabric_otp_security_bist_bad_o        

Output

std_logic

fabric_otp_security_bist_fail1_o      

Output

std_logic_vector(7 downto 0)

fabric_otp_security_bist_fail2_o      

Output

std_logic_vector(6 downto 0)

fabric_otp_security_scanout_o         

Output

std_logic_vector(3 downto 0)

fabric_debug_lifecycle_o              

Output

std_logic_vector(3 downto 0)

fabric_debug_fsm_state_o              

Output

std_logic_vector(2 downto 0)

fabric_debug_rst_soft_o               

Output

std_logic

fabric_debug_error_o                  

Output

std_logic

fabric_debug_otp_manager_read_otp_o   

Output

std_logic

fabric_debug_otp_manager_read_done_o  

Output

std_logic

fabric_debug_direct_permission_write_o

Output

std_logic_vector(3 downto 0)

fabric_debug_direct_permission_read_o 

Output

std_logic_vector(3 downto 0)

fabric_debug_frame_use_encryption_o   

Output

std_logic

fabric_debug_frame_permission_frame_o 

Output

std_logic_vector(3 downto 0)

fabric_debug_key_correct_o            

Output

std_logic

fabric_debug_otpmgmt_state_o          

Output

std_logic_vector(2 downto 0)

fabric_debug_otpapb_state_o           

Output

std_logic_vector(2 downto 0)

fabric_debug_otpboot_state_o          

Output

std_logic_vector(2 downto 0)

fabric_debug_otp_reload_err_o         

Output

std_logic

fabric_debug_cpt_retry_o              

Output

std_logic

fabric_debug_bsec_core_status_o       

Output

std_logic_vector(31 downto 0)

fabric_debug_otpboot_curr_addr_o      

Output

std_logic

fabric_debug_access_reg_data_ready_o  

Output

std_logic

fabric_debug_security_error_read_o    

Output

std_logic

fabric_debug_security_boot_done_o     

Output

std_logic

fabric_debug_lock_reg_o               

Output

std_logic

fabric_otp_rstn_i                

Input

std_logic

fabric_otp_apb_addr_i            

Input

std_logic_vector(31 downto 0)

fabric_otp_apb_write_i           

Input

std_logic

fabric_otp_apb_sel_i             

Input

std_logic

fabric_otp_apb_enable_i          

Input

std_logic

fabric_otp_apb_wdata_i           

Input

std_logic_vector(31 downto 0)

fabric_otp_cfg_fabric_apb_en_i   

Input

std_logic

fabric_otp_cfg_loader_read_en_i  

Input

std_logic

fabric_otp_cfg_loader_write_en_i 

Input

std_logic

fabric_otp_cfg_clk_otpm_disable_i

Input

std_logic

fabric_otp_cfg_clk_fab_en_i      

Input

std_logic

fabric_otp_security_rbact1_i     

Input

std_logic

fabric_otp_security_rbact2_i     

Input

std_logic

fabric_otp_security_bistmode_i   

Input

std_logic

fabric_otp_security_force_pdn1_i 

Input

std_logic

fabric_otp_security_scanin_i     

Input

std_logic_vector(4 downto 0)

fabric_otp_security_testmode_i   

Input

std_logic

fabric_otp_security_scanenable_i 

Input

std_logic

OTP User

Ports

Direction

Type

fabric_otp_user_bistmode_i      

Input

std_logic

fabric_otp_user_disturbcheck_i  

Input

std_logic

fabric_otp_user_eccbypass_i     

Input

std_logic

fabric_otp_user_pdn_i           

Input

std_logic

fabric_otp_user_prog_i          

Input

std_logic

fabric_otp_user_rbact1_i        

Input

std_logic

fabric_otp_user_rbact2_i        

Input

std_logic

fabric_otp_user_read_i          

Input

std_logic

fabric_otp_user_redbypass_i     

Input

std_logic

fabric_otp_user_suppadd_i       

Input

std_logic

fabric_otp_user_tm_i            

Input

std_logic

fabric_otp_user_tst_scanenable_i

Input

std_logic

fabric_otp_user_wordlock_i      

Input

std_logic

fabric_otp_user_add_i           

Input

std_logic_vector(6 downto 0)

fabric_otp_user_configreg_i     

Input

std_logic_vector(31 downto 0)

fabric_otp_user_din_i           

Input

std_logic_vector(38 downto 0)

fabric_otp_user_prgwidth_i      

Input

std_logic_vector(2 downto 0)

fabric_otp_user_tst_scanin_i    

Input

std_logic_vector(4 downto 0)

fabric_otp_user_ack_o        

Output

std_logic

fabric_otp_user_bbad_o       

Output

std_logic

fabric_otp_user_bend1_o      

Output

std_logic

fabric_otp_user_bend2_o      

Output

std_logic

fabric_otp_user_calibrated_o 

Output

std_logic

fabric_otp_user_ded_o        

Output

std_logic

fabric_otp_user_disturbed_o  

Output

std_logic

fabric_otp_user_locked_o     

Output

std_logic

fabric_otp_user_progfail_o   

Output

std_logic

fabric_otp_user_pwok_o       

Output

std_logic

fabric_otp_user_sec_o        

Output

std_logic

fabric_otp_user_bist1fail_o  

Output

std_logic_vector(7 downto 0)

fabric_otp_user_bist2fail_o  

Output

std_logic_vector(6 downto 0)

fabric_otp_user_dout_o       

Output

std_logic_vector(40 downto 0)

fabric_otp_user_flagstate_o  

Output

std_logic_vector(3 downto 0)

fabric_otp_user_startword_o  

Output

std_logic_vector(15 downto 0)

fabric_otp_user_tst_scanout_o

Output

std_logic_vector(4 downto 0)

fabric_otp_user_wlromout_o   

Output

std_logic_vector(9 downto 0)

Mrepair OTP

Ports

Direction

Type

fabric_mrepair_fuse_pdn_i            

Input

std_logic

fabric_mrepair_fuse_bistmode_i       

Input

std_logic

fabric_mrepair_fuse_tm_i             

Input

std_logic

fabric_mrepair_fuse_add_i            

Input

std_logic_vector(6 downto 0)

fabric_mrepair_fuse_din_i            

Input

std_logic_vector(38 downto 0)

fabric_mrepair_fuse_read_i           

Input

std_logic

fabric_mrepair_fuse_prog_i           

Input

std_logic

fabric_mrepair_fuse_rbact1_i         

Input

std_logic

fabric_mrepair_fuse_rbact2_i         

Input

std_logic

fabric_mrepair_fuse_tstscanenable_i  

Input

std_logic

fabric_mrepair_fuse_tst_scanin_i     

Input

std_logic_vector(4 downto 0)

fabric_mrepair_fuse_eccbypass_i      

Input

std_logic

fabric_mrepair_fuse_wordlock_i       

Input

std_logic

fabric_mrepair_fuse_suppadd_i        

Input

std_logic

fabric_mrepair_fuse_redbypass_i      

Input

std_logic

fabric_mrepair_fuse_prgwidth_i       

Input

std_logic_vector(2 downto 0)

fabric_mrepair_fuse_configreg_i      

Input

std_logic_vector(31 downto 0)

fabric_mrepair_fuse_disturbchecked_i 

Input

std_logic

fabric_data_shift_en_i               

Input

std_logic

fabric_mrepair_fuse_disturbed_o                        

Output

std_logic

fabric_mrepair_fuse_wlromout_o                         

Output

std_logic_vector(9 downto 0)

fabric_mrepair_fuse_pwok_o                             

Output

std_logic

fabric_mrepair_fuse_dout_o                             

Output

std_logic_vector(40 downto 0)

fabric_mrepair_fuse_startword_o                        

Output

std_logic_vector(15 downto 0)

fabric_mrepair_fuse_ack_o                              

Output

std_logic

fabric_mrepair_fuse_sec_o                              

Output

std_logic

fabric_mrepair_fuse_ded_o                              

Output

std_logic

fabric_mrepair_fuse_progfail_o                         

Output

std_logic

fabric_mrepair_fuse_locked_o                           

Output

std_logic

fabric_mrepair_fuse_bist1fail_o                        

Output

std_logic_vector(7 downto 0)

fabric_mrepair_fuse_bist2fail_o                        

Output

std_logic_vector(6 downto 0)

fabric_mrepair_fuse_bend1_o                            

Output

std_logic

fabric_mrepair_fuse_bend2_o                            

Output

std_logic

fabric_mrepair_fuse_bbad_o                             

Output

std_logic

fabric_mrepair_fuse_tstscanout_o                       

Output

std_logic_vector(4 downto 0)

fabric_mrepair_fuse_flagstate_o                        

Output

std_logic_vector(3 downto 0)

fabric_mrepair_fuse_calibrated_o                       

Output

std_logic

fabric_fuse_status_o                                   

Output

std_logic_vector(2 downto 0)

fabric_mrepair_fuse_prg_block_space_read_error_flag_q_o

Output

std_logic

fabric_mrepair_fuse_ready_o                            

Output

std_logic

Mrepair

Ports

Direction

Type

fabric_data_to_bist_o             

Output

std_logic_vector(23 downto 0)

fabric_shift_en_to_bist_o         

Output

std_logic_vector(23 downto 0)

fabric_sif_load_en_to_bist_o      

Output

std_logic_vector(23 downto 0)

fabric_sif_update_en_to_bist_o    

Output

std_logic_vector(23 downto 0)

fabric_sif_reg_en_to_bist_o       

Output

std_logic_vector(119 downto 0)

fabric_system_data_from_mem_bist_o

Output

std_logic_vector(23 downto 0)

fabric_data_to_system_o           

Output

std_logic

fabric_chip_status_o              

Output

std_logic_vector(71 downto 0)

fabric_global_chip_status_o       

Output

std_logic_vector(2 downto 0)

fabric_pd_ready_o                 

Output

std_logic_vector(23 downto 0)

fabric_system_dataready_o         

Output

std_logic

fabric_decoder_init_ready_o       

Output

std_logic

fabric_data_from_bist_i         

Input

std_logic_vector(23 downto 0)

fabric_system_data_to_mem_bist_i

Input

std_logic_vector(23 downto 0)

fabric_shift_en_i               

Input

std_logic_vector(23 downto 0)

fabric_sif_load_en_i            

Input

std_logic_vector(23 downto 0)

fabric_sif_update_en_i          

Input

std_logic_vector(23 downto 0)

fabric_sif_reg_en_i             

Input

std_logic_vector(119 downto 0)

fabric_tst_atpg_mrepair_i       

Input

std_logic

fabric_

erom

data_

fpga

from_

cs

system_

niden_i

i       

Input

std_logic

fabric_

erom

end_

fpga_cs_deviceen_i

encoding_i           

Input

std_logic

fabric_

erom

pd_

fpga_cs_rst_n_i

active_i              

Input

std_logic_vector(23 downto 0)

fabric_

erom

mrepair_

fpga_debug_en_i

mode_i                

Input

std_logic_vector(3 downto 0)

I/O elements

NX_IOB

Description

The NX_IOB component describes a bidirectional port of the design. The behavior is:

...

The NX_IOB can be instantiated anywhere in the design hierarchy. It allows to define buried ports (no signal appears in the ports list).

Image RemovedImage Added

Figure 22: IOB diagram

Generics

Note that the generic assigned to this primitive can be overridden by the addPad or addPads methods in the script file.

...

location => IO_B2_D01_P_SWDO”,

locked => ‘1’

Ports

Ports

Direction

Type

Description

I

Input

std_logic

From FPGA fabric

C

Input

std_logic

Tristate control

‘0’: High impedance

‘1’: Enable output

T

Input

std_logic

Termination control

‘0’: No calibration

‘1’: calibration activated

O

output

std_logic

To FPGA fabric

IO

inout

std_logic

External pad

...

-- The pad will take the name of the instance

);

NX_IOB_I

Description

The NX_IOB_I component describes an input port of the design. The behavior is:

...

Anchor
_Ref494790870
_Ref494790870

...

Figure 23: IOB_I diagram

Generics

Note that the generic assigned to this primitive can be overridden by the addPad or addPads methods used in nxpython script file.

...

location => IO_B2_D01_P_SWDO”,

locked => ‘1’

Ports

Ports

Direction

Type

Description

C

Input

Std_logic

Not used. Must be left “open” or unconnected

T

Input

std_logic

Termination control

‘0’ : No termination

‘1’ : Input termination activated

O

output

std_logic

From FPGA fabric

IO

Input

std_logic

External pad

...

Code Block
IOB_0 : NX_IOB_I

generic map(

    location             => “IO_B12_D10_N”,

    standard             => “LVCMOS“,

    drive                => “4mA“,

    turbo                => “True”,

    inputDelayOn         => ‘1’,

    inputDelayLine       => “13”,

    inputSignalSlope     => “8”,

    locked               => ‘1’

   )

port map (

      O =>  toFPGAcore

    , T =>  ’1’

    , IO => open     -- A signal name is not required on the external  

                     -- signal

                     -- The pad will take the name of the instance

   );

NX_IOB_O

Description

The NX_IOB_O component describes an output port of the design. The behavior is:

...

The NX_IOB can be instantiated anywhere in the design hierarchy. It allows to define buried ports (no signal appears in the ports list).

...

...

Figure 24: IOB_O diagram

Generics

Note that the generic assigned to this primitive can be overridden by the addPad or addPads methods in the script file.

...

Figure 30: SER_DES IP Core simplified diagram

NX_DES

Description

The NX_DES is a high performance DESerializer. The complex banks allows to configure the I/Os as DESerializers with deserialization factor from 2 to 5. Higher deserialization factors (6, 7, 8, 9 and 10) can be achieved by combining the two deserializers of a differential IO pair.

...

Figure 31 NX_DES primitive

Generics

data_size

type integer (range 2 to 10)

...

Example :

dpath_dynamic => ‘1’

Ports

Ports

Direction

Type

Description

FCK

In

Std_logic

Fast clock (bit clock)

SCK

In

Std_logic

Slow clock (word clock)

R

In

Std_logic

Active high Reset

IO

In

Std_logic

Input pad

O

Out

Std_logic_vector

(data_size-1 downto 0)

Sampled word to FPGA fabric

DCK

In

Std_logic

Delay lines management registers clock

DRL

In

Std_logic

Delay Registers Load

DIG

In

Std_logic

‘0’ for Multicast write (*)

‘1’ for normal operation

DS

In

Std_logic_vector

(1 downto 0)

Delay Select :

00 => out & tri-state regs

01 => input delay register

10 => DPA delay register

11 => RESERVED

DRA

In

Std_logic_vector

(5 downto 0)

Delay address (0 to 33)

DRI

In

Std_logic_vector

(5 downto 0)

Data input to delay registers

DRO

Out (with tri-state)

Std_logic_vector

(5 downto 0)

Delay value being read

Active when DRA = DID else high impedance

DID

Out

Std_logic_vector

(5 downto 0)

Pad address identification

FZ

In

Std_logic

Active low Flags Reset

FLD

Out (with tri-state)

Std_logic

Early capture flag Active when DRA = DID else high impedance

FLG

Out (with tri-state)

Std_logic

Late capture flag Active when DRA = DID else high impedance

...

DIG must be high for normal operation, particularly for delay calibration.

NX _SER

Description

The NX_SER is a high performance SERializer. The complex banks allows to configure the I/Os as SERializers with serialization factor from 2 to 5. Higher serialization factors (6, 7, 8, 9 and 10) can be achieved by combining the two serializers of a differential IO pair.

...

Figure 32: NX_SER primitive

Generics

data_size

type integer

default value Undefined (no default value)

...

Example :

dpath_dynamic => ‘1’

Ports

Ports

Direction

Type

Description

FCK

In

Std_logic

Fast clock (bit clock)

SCK

In

Std_logic

Slow clock (word clock)

R

In

Std_logic

Active high Reset

IO

Out

Std_logic

Input pad

I

In

Std_logic_vector

(data_size-1 downto 0)

Data to be serialized from fabric

DCK

In

Std_logic

Delay lines management registers clock

DRL

In

Std_logic

Delay Registers Load

DS

In

Std_logic_vector

(1 downto 0)

Delay Select :

00 => out & tri-state regs

01 => input delay register

10 => DPA delay register

11 => RESERVED

DRA

In

Std_logic_vector

(5 downto 0)

Delay address (0 to 33)

DRI

In

Std_logic_vector

(5 downto 0)

Data input to delay registers

DRO

Out (with tri-state)

Std_logic_vector

(5 downto 0)

Delay value being read

Active when DRA = DID, else high-impedance)

DID

Out

Std_logic_vector

(5 downto 0)

Pad address identifier (0 to 33)

NX _SERDES

Description

The NX_SERDES combines functionalities of NX_SER and NX_DES to perform a high performance SERializer/DESerializer component.

Generics

data_size

type integer (range 2 to 10)

...

Example :

dpath_dynamic => ‘1’

Ports

Ports

Direction

Type

Description

FCK

In

Std_logic

Fast clock (bit clock)

SCK

In

Std_logic

Slow clock (word clock)

RTX

In

Std_logic

Active high Reset on TX path

RRX

In

Std_logic

Active high Reset on RX path

CI

In

Std_logic

Configure pad in input mode when set to 1 else pad in output mode

CCK

In

Std_logic

Control clock for the register on the enable path

CL

In

Std_logic

Control load to force use of register on enable path

CR

In

Std_logic

Control Reset used to reset the register on enable path

IO

inout

Std_logic

Inout data pad. Configured as input when CI=1 and output when CI=0

I

In

Std_logic_vector

(data_size-1 downto 0)

Data to be serialized from the fabric

O

Out

Std_logic_vector

(data_size-1 downto 0)

Data to be deserialized and sent to the fabric

DELAY CONTROL

DCK

In

Std_logic

Delay lines management registers clock

DRL

In

Std_logic

Delay Registers Load

DIG

In

Std_logic

‘0’ for Multicast write (*)

‘1’ for normal operation

DS

In

Std_logic_vector

(1 downto 0)

Delay Select :

00 => out & tri-state regs

01 => input delay register

10 => DPA delay register

11 => RESERVED

DRA

In

Std_logic_vector

(5 downto 0)

Delay Register address (0 to 33)

DRI

In

Std_logic_vector

(5 downto 0)

Data input to delay registers

FZ

In

Std_logic

Active low Flags Reset

DRO

Out (with tri-state)

Std_logic_vector

(5 downto 0)

Delay value being read

Active when DRA = DID, else high-impedance)

DID

Out

Std_logic_vector

(5 downto 0)

Pad address identification (0 to 33)

FLD

Out (with tri-state)

Std_logic

Early capture flag Active when DRA = DID else high impedance

FLG

Out (with tri-state)

Std_logic

Late capture flag Active when DRA = DID else high impedance

...