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.
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.
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:
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.
Figure 9: 32x18 RF implemented in a TILE of NG-Ultra
...
Figure 12: DSP 24x32 bits unsigned multiplication
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.
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 ( |
18 downto |
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 |
_ |
Input
std_logic
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 |
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
_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_ |
data_ |
from_ |
system_ |
i | Input | std_logic |
fabric_ |
end_ |
encoding_i | Input | std_logic |
fabric_ |
pd_ |
active_i | Input | std_logic_vector(23 downto 0) |
fabric_ |
mrepair_ |
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).
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 | ||||
---|---|---|---|---|
|
...
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 |
...