Table of Content
...
Code Block | ||
---|---|---|
| ||
signal RESET_DELAY : std_logic_vector(7 downto 0); signal INTERNAL_RESET : std_logic; begin process(CLK_generated_by_PLL_and_WFG) begin if rising_edge(CLK_generated_by_PLL_and WFG) then RESET_DELAY <= RESET_DELAY(6 downto 10) & not(RDY); end if; end process; INTERNAL_RESET <= RESET_DELAY(7); |
...
All the 374 die user’s IOs are available
Bank | Type | I/Os | Location | Bank | Type | I/Os |
0 | Simple | 22 | Left | 1 | Simple | 22 |
2 | Complex | 30 | Bottom | 3 | Complex | 30 |
4 | Complex | 30 | Bottom | 5 | Complex | 30 |
6 | Simple | 30 | Right | 7 | Simple | 30 |
8 | Simple | 30 | Right | |||
9 | Complex | 30 | Top | 10 | Complex | 30 |
11 | Complex | 30 | Top | 12 | Complex | 30 |
Anchor | ||||
---|---|---|---|---|
|
...
Only 192 of the 374 die user’s IOs are available
Bank | Type | I/Os | Location | Bank | Type | I/Os |
0 | Simple | 14 | Left | 1 | Simple | 12 |
2 | Complex | 30 | Bottom | 3 | Complex | - |
4 | Complex | - | Bottom | 5 | Complex | 30 |
6 | Simple | 22 | Right | 7 | Simple | - |
8 | Simple | 24 | Right | |||
9 | Complex | 30 | Top | 10 | Complex | - |
11 | Complex | - | Top | 12 | Complex | 30 |
Anchor | ||||
---|---|---|---|---|
|
...
The following table summarizes the main IOs features available into complex and simple IO banks.
Feature | Complex | Simple |
Number of IOs | 30 | 30/22 |
Power supply (Vddio) | 1.8, 2.5 or 3.3v | 1.8, 2.5 or 3.3v |
Supported IO standards | LVCMOS, SSTL, HSTL, LVDS | LVCMOS, SSTL, HSTL, LVDS |
Single DFF (in, out, tri-state) | Yes | Yes |
Differential SSTL/HSTL | Yes | No |
LVDS | Yes | Yes (no internal input termination) |
Resistive input termination | Yes | No |
Programmable input/output delay | Yes | Yes |
CDC (Clock Domain Changer) | Yes | No |
Shift Register | Yes | No |
DDR mode | Yes | No |
SpaceWire | Yes | No |
Anchor | ||||
---|---|---|---|---|
|
...
Simple banks: Electrical standards and supported electrical parameters
Standard | Type | Bank supply | Drive | Speed | Special considerations |
LVCMOS 3.3V | SE (*) | 3.3 V | 2–16 mA | 100Mb/s | In NG-MEDIUM, single ended I/Os have an internal default 10K to 40K PullUp. In addition the user can active a slower value (2K to 6K) optional PullUp Slew rate SLOW/FAST for outputs Turbo mode for inputs (faster inputs at the cost of higher static power) (Those electrical parameters can be set by constraints in a script file) |
LVCMOS 2.5V | SE (*) | 2.5 V | 2–16 mA | 300Mb/s | |
LVCMOS 1.8V | SE (*) | 1.8 V | 2–16 mA | 300Mb/s | |
LVDS 2.5V | DIF(*) | 2.5 V | 3.5mA | 800Mb/s | No internal termination available |
Anchor | ||||
---|---|---|---|---|
|
(*) SE = single ended, DIF = differential |
Complex banks: Electrical standards and supported electrical parameters on:
Standard | Type | Supply | Drive | Speed | Special considerations | Notes |
LVCMOS 3.3V | SE | 3.3 V | 2–16 mA | 100MHz | In NG-MEDIUM, single ended I/Os have an internal default 10K to 40K PullUp. In addition the user can active a slower value (2K to 6K) optional PullUp Slew rate SLOW/MEDIUM/FAST for outputs Turbo mode for inputs (faster inputs at the cost of higher static power) (Those electrical parameters can be set by constraints in a script file) | |
LVCMOS 2.5V | SE | 2.5 V | 2–16 mA | 300MHz | ||
LVCMOS 1.8V | SE | 1.8 V | 2–16 mA | 300MHz | ||
SSTL_2.5V_I | SE(*) | 2.5 V | 8 mA | 600Mb/s | Controlled source impedance SSTL and HSTL standards require using dedicated VTO pins (~VDDIO/2) in respective IO banks SSTL and HSTL support differential mode | DDR SDRAM |
SSTL_2.5V_II | SE(*) | 2.5 V | 13 mA | 600Mb/s | ||
SSTL_1.8V_I | SE(*) | 1.8 V | 8 mA | 600Mb/s | DDR2 SDRAM | |
SSTL_1.8V_II | SE(*) | 1.8 V | 13 mA | 600Mb/s | ||
HSTL_1.8V_I | SE(*) | 1.8 V | 8 mA | 800 Mb/s | DDR2 SDRAM | |
HSTL_1.8V_II | SE(*) | 1.8 V | 16 mA | 800 Mb/s | ||
LVDS 2.5V | DIF(*) | 2.5 V | 3.5mA | 800Mb/s | Embedded optional impedance adaptation |
Anchor | ||||
---|---|---|---|---|
|
...
See the next table for VTO recommended voltage values :
VDDIO | VTO nom (+/- 5%) |
1.8 V | 0.9 V |
2.5 V | 1.25 V |
3.3 V | 1.65 V |
Anchor | ||||
---|---|---|---|---|
|
...
For SSTL_2.5V, SSTL_1.8V and HSTL_1.8V, VDDIO 2.5 V and/or 1.8 V, on-chip termination can be activated for all pads in a given bank.
In the case of SSTL_2.5V (VDDIO 2.5 V), on-chip termination can be activated on maximum 11 pads due to the limitation on VTO power supply rails.
The value of the input impedance adaptation resistors can be adjusted in the “nxpython” script file by assigning an integer 0 to 15 value for the “termination” parameter (see the figure 12 for the required value), or it can be specified with a value on Ohms. See the NanoXplore “nxmap” Python API documentation for syntax details.
The graphs on figure 12 show the expected resistor values in function of the parameters assignments versus VDDIO.
Anchor | ||||
---|---|---|---|---|
|
...
VDDIO / Impedance | 1.8 V | 2.5 V | 3.3 V |
50 Ohms | 5 | 4 | 5 |
75 Ohms | 10 | 9 | 11 |
100 Ohms | 15 | 15 | 15 |
Anchor | ||||
---|---|---|---|---|
|
...
DCK : delay registers clock (can be asynchronous with SCK/FCK). Usually 2 to 20 MHz. Write operations occur on DCK rising edge.
DID(4:0) : address identifier of the considered I/O in the complex bank (0 to 29).
DRA(4:0) : address of the I/O in the considered complex bank (0 to 29). Note that when DRA = DID, the DRO outputs, as well as FLD and FLG flags outputs of the considered I/O go to low impedance (allowing thus to be read by the fabric).
DS(1:0) : allow to select the destination register into the DRA selected I/O. See next table for details.
DS value | Selected delay register |
00 | Output (and tri-state control) delay register |
01 | Input delay register |
10 | DPA delay register |
11 | Reserved |
DRI(5:0) :value to be written into the selected register.
DRL : active high load (write enable)
DIG : active low multicast write. Must remain high for register by register access, and corresponding FLD / FLG activation.
...
Here is a summary of the NX_RAM main features and possible configurations.
Without EDAC: 49152 x 1-bit 24576 x 2-bits 12288 x 4-bits 6144 x 8-bits 4096 x 12-bits 2048 × 24-bits |
With EDAC: 2048 x 18-bits |
Programmable positive / negative clock edge |
Optional pipeline input and output registers |
Memory content can be optionally initialized by bitstream |
Embedded EDAC |
Automatic Read Repair Mode |
The next figure shows a simplified internal diagram of a RAM block.
...
The blue highlighted configurations are directly supported by “nxmap”, just by assigning a generic parameter when instantiating the NX_RAM primitive. However, the user can define any of the following block RAM configurations by instantiating the NX_RAM primitive, and properly assigning all related generic parameters. (See Library_Guide.pdf for more details).
Port0 (A) Port1 (B) | 2Kx24 | 4Kx12 | 6Kx8 | 12Kx4 | 24Kx2 | 48Kx1 | |
2Kx24 | NOECC 2Kx24 | Yes (user’s) | Yes (user’s) | Yes (user’s) | Yes (user’s) | Yes (user’s) | |
4Kx12 | Yes (user’s) | NOECC 4Kx12 | Yes (user’s) | Yes (user’s) | Yes (user’s) | Yes (user’s) | |
6Kx8 | Yes (user’s) | Yes (user’s) | NOECC 6Kx8 | Yes (user’s) | Yes (user’s) | Yes (user’s) | |
12Kx4 | Yes (user’s) | Yes (user’s) | Yes (user’s) | NOECC 12Kx4 | Yes (user’s) | Yes (user’s) | |
24Kx2 | Yes (user’s) | Yes (user’s) | Yes (user’s) | Yes (user’s) | NOECC 24Kx2 | Yes (user’s) | |
48Kx1 | Yes (user’s) | Yes (user’s) | Yes (user’s) | Yes (user’s) | Yes (user’s) | NOECC 48Kx1 |
Data input pins and RAM block configuration:
...
“A” input is 24-bit wide. An input multiplexer allows to select the 24 bits coming from the fabric or 18 bits from the “CAO” output of the previous (left) DSP block. “A” can go to one of the multiplier inputs through 0, 1, 2 or 3 pipeline registers, and/or forward its 18 LSBs to the “CAI” input of the neighboring (right) DSP block by using its CAO cascade output.
“A” input is most often used as an input to the multiplier.
“CAI” input: 18-bit input that can be used when the “A” input must receive the signal from the previous (on the right) DSP block via its “COA” chaining connection (direct routing, 0 ns delay), instead of the fabric.
...
“B” input is 18-bit wide. An input multiplexer allows to select the 18-bit signal coming from the fabric or the18 bits from the “CBO” output of the previous (left) DSP block. “B” can be directed to one of the pre-adder/subtracter, and/or to one of the multiplier inputs through 0, 1, 2 or 3 pipeline registers, and/or forward its 18 to the “CBI” input of the neighboring (right) DSP block by using its CBO cascade output.
“B” input is often used as a second input to the multiplier. It can also be used as operand of the pre-adder/subtracter.
“CBI” input: 18-bit input that can be used when the “B” input must receive the signal from the previous (left) DSP block via its “COB” chaining connection (direct routing, 0 ns delay), instead of the fabric.
“C” input is 36-bit wide. It’s directed to the ALU as a second operand (if required). “C” input can use 0 or 1 level of pipeline.
“C” input is often used as constant value input required for rounding operation.
“D” input is 18-bit wide. It’s directed to the pre-adder/subtracter through 0 or 1 level of pipeline registers.
“D” input is often used as input of the pre-adder/subracter. However for ALU dynamic opcode, the bits D(5:0) are used to dynamically select the operation to be performed.
“CZI” input is 56-bit wide. It comes from the neighboring (left) DSP block. It’s directed to the ALU (usually configured as post-adder/subtractor) through 0 or 1 level of pipeline registers.
“CZI” input is used when various DSP blocks have to be chained, for example in FIR filters and other DSP functions implementation.
Main DSP block outputs:
“CAO” is 18-bit wide. It’s used to forward the “A” input to the next (right) DSP block through 0, 1, 2, or 3 level of pipeline registers.
“CAO” input is used when two or mode DSP blocks have to be chained to forward data.
“CBO” is 18-bit wide. It’s used to forward the “B” input to the next (right) DSP block through 0, 1, 2, or 3 level of pipeline registers.
“COB” input is used when two or mode DSP blocks have to be chained to forward data.
“Z” output is 56-bit wide. It’s the main DSP block output to the fabric via general routing. It can be registered or not. The value available at the “Z” output is feedback to the ALU via the X-MUX (for example to implement an accumulator).
“CZO” output is also 56-bit wide. It allows to forward the registered or un-registered ALU output to the next (right) DSP block, via direct routing (no delay).
“CZO” is particularly useful to chain DSP blocks for FIR filters and other DSP functions requiring more than one DSP block.
DSP block features and operators:
...
All the 374 die user’s IOs are available
Bank | Type | I/Os | Location | Bank | Type | I/Os |
0 | Simple | 22 | Left | 1 | Simple | 22 |
2 | Complex | 30 | Bottom | 3 | Complex | 30 |
4 | Complex | 30 | Bottom | 5 | Complex | 30 |
6 | Simple | 30 | Right | 7 | Simple | 30 |
8 | Simple | 30 | Right | |||
9 | Complex | 30 | Top | 10 | Complex | 30 |
11 | Complex | 30 | Top | 12 | Complex | 30 |
Anchor | ||||
---|---|---|---|---|
|
...
Only 192 of the 374 die user’s IOs are available
Bank | Type | I/Os | Location | Bank | Type | I/Os |
0 | Simple | 14 | Left | 1 | Simple | 12 |
2 | Complex | 30 | Bottom | 3 | Complex | - |
4 | Complex | - | Bottom | 5 | Complex | 30 |
6 | Simple | 22 | Right | 7 | Simple | - |
8 | Simple | 24 | Right | |||
9 | Complex | 30 | Top | 10 | Complex | - |
11 | Complex | - | Top | 12 | Complex | 30 |
Anchor | ||||
---|---|---|---|---|
|
...
The following table summarizes the main IOs features available into complex and simple IO banks.
Feature | Complex | Simple |
Number of IOs | 30 | 30/22 |
Power supply (Vddio) | 1.8, 2.5 or 3.3v | 1.8, 2.5 or 3.3v |
Supported IO standards | LVCMOS, SSTL, HSTL, LVDS | LVCMOS, SSTL, HSTL, LVDS |
Single DFF (in, out, tri-state) | Yes | Yes |
Differential SSTL/HSTL | Yes | No |
LVDS | Yes | Yes (no internal input termination) |
Resistive input termination | Yes | No |
Programmable input/output delay | Yes | Yes |
CDC (Clock Domain Changer) | Yes | No |
Shift Register | Yes | No |
DDR mode | Yes | No |
SpaceWire | Yes | No |
Anchor | ||||
---|---|---|---|---|
|
...
Simple banks: Electrical standards and supported electrical parameters
Standard | Type | Bank supply | Drive | Speed | Special considerations |
LVCMOS 3.3V | SE (*) | 3.3 V | 2–16 mA | 100Mb/s | In NG-MEDIUM, single ended I/Os have an internal default 10K to 40K PullUp. In addition the user can active a slower value (2K to 6K) optional PullUp Slew rate SLOW/FAST for outputs Turbo mode for inputs (faster inputs at the cost of higher static power) (Those electrical parameters can be set by constraints in a script file) |
LVCMOS 2.5V | SE (*) | 2.5 V | 2–16 mA | 300Mb/s | |
LVCMOS 1.8V | SE (*) | 1.8 V | 2–16 mA | 300Mb/s | |
LVDS 2.5V | DIF(*) | 2.5 V | 3.5mA | 800Mb/s | No internal termination available |
Anchor | ||||
---|---|---|---|---|
|
(*) SE = single ended, DIF = differential |
Complex banks: Electrical standards and supported electrical parameters on:
Standard | Type | Supply | Drive | Speed | Special considerations | Notes |
LVCMOS 3.3V | SE | 3.3 V | 2–16 mA | 100MHz | In NG-MEDIUM, single ended I/Os have an internal default 10K to 40K PullUp. In addition the user can active a slower value (2K to 6K) optional PullUp Slew rate SLOW/MEDIUM/FAST for outputs Turbo mode for inputs (faster inputs at the cost of higher static power) (Those electrical parameters can be set by constraints in a script file) | |
LVCMOS 2.5V | SE | 2.5 V | 2–16 mA | 300MHz | ||
LVCMOS 1.8V | SE | 1.8 V | 2–16 mA | 300MHz | ||
SSTL_2.5V_I | SE(*) | 2.5 V | 8 mA | 600Mb/s | Controlled source impedance SSTL and HSTL standards require using dedicated VTO pins (~VDDIO/2) in respective IO banks SSTL and HSTL support differential mode | DDR SDRAM |
SSTL_2.5V_II | SE(*) | 2.5 V | 13 mA | 600Mb/s | ||
SSTL_1.8V_I | SE(*) | 1.8 V | 8 mA | 600Mb/s | DDR2 SDRAM | |
SSTL_1.8V_II | SE(*) | 1.8 V | 13 mA | 600Mb/s | ||
HSTL_1.8V_I | SE(*) | 1.8 V | 8 mA | 800 Mb/s | DDR2 SDRAM | |
HSTL_1.8V_II | SE(*) | 1.8 V | 16 mA | 800 Mb/s | ||
LVDS 2.5V | DIF(*) | 2.5 V | 3.5mA | 800Mb/s | Embedded optional impedance adaptation |
Anchor | ||||
---|---|---|---|---|
|
...
See the next table for VTO recommended voltage values :
VDDIO | VTO nom (+/- 5%) |
1.8 V | 0.9 V |
2.5 V | 1.25 V |
3.3 V | 1.65 V |
Anchor | ||||
---|---|---|---|---|
|
...
For SSTL_2.5V, SSTL_1.8V and HSTL_1.8V, VDDIO 2.5 V and/or 1.8 V, on-chip termination can be activated for all pads in a given bank.
In the case of SSTL_2.5V (VDDIO 2.5 V), on-chip termination can be activated on maximum 11 pads due to the limitation on VTO power supply rails.
The value of the input impedance adaptation resistors can be adjusted in the “nxpython” script file by assigning an integer 0 to 15 value for the “termination” parameter (see the figure 12 for the required value), or it can be specified with a value on Ohms. See the NanoXplore “nxmap” Python API documentation for syntax details.
The graphs on figure 12 show the expected resistor values in function of the parameters assignments versus VDDIO.
Anchor | ||||
---|---|---|---|---|
|
...
VDDIO / Impedance | 1.8 V | 2.5 V | 3.3 V |
50 Ohms | 5 | 4 | 5 |
75 Ohms | 10 | 9 | 11 |
100 Ohms | 15 | 15 | 15 |
Anchor | ||||
---|---|---|---|---|
|
...
DCK : delay registers clock (can be asynchronous with SCK/FCK). Usually 2 to 20 MHz. Write operations occur on DCK rising edge.
DID(4:0) : address identifier of the considered I/O in the complex bank (0 to 29).
DRA(4:0) : address of the I/O in the considered complex bank (0 to 29). Note that when DRA = DID, the DRO outputs, as well as FLD and FLG flags outputs of the considered I/O go to low impedance (allowing thus to be read by the fabric).
DS(1:0) : allow to select the destination register into the DRA selected I/O. See next table for details.
DS value | Selected delay register |
00 | Output (and tri-state control) delay register |
01 | Input delay register |
10 | DPA delay register |
11 | Reserved |
DRI(5:0) :value to be written into the selected register.
DRL : active high load (write enable)
DIG : active low multicast write. Must remain high for register by register access, and corresponding FLD / FLG activation.
...
Here is a summary of the NX_RAM main features and possible configurations.
Without EDAC: 49152 x 1-bit 24576 x 2-bits 12288 x 4-bits 6144 x 8-bits 4096 x 12-bits 2048 × 24-bits |
With EDAC: 2048 x 18-bits |
Programmable positive / negative clock edge |
Optional pipeline input and output registers |
Memory content can be optionally initialized by bitstream |
Embedded EDAC |
Automatic Read Repair Mode |
The next figure shows a simplified internal diagram of a RAM block.
...
The blue highlighted configurations are directly supported by “nxmap”, just by assigning a generic parameter when instantiating the NX_RAM primitive. However, the user can define any of the following block RAM configurations by instantiating the NX_RAM primitive, and properly assigning all related generic parameters. (See Library_Guide.pdf for more details).
Port0 (A) Port1 (B) | 2Kx24 | 4Kx12 | 6Kx8 | 12Kx4 | 24Kx2 | 48Kx1 | |
2Kx24 | NOECC 2Kx24 | Yes (user’s) | Yes (user’s) | Yes (user’s) | Yes (user’s) | Yes (user’s) | |
4Kx12 | Yes (user’s) | NOECC 4Kx12 | Yes (user’s) | Yes (user’s) | Yes (user’s) | Yes (user’s) | |
6Kx8 | Yes (user’s) | Yes (user’s) | NOECC 6Kx8 | Yes (user’s) | Yes (user’s) | Yes (user’s) | |
12Kx4 | Yes (user’s) | Yes (user’s) | Yes (user’s) | NOECC 12Kx4 | Yes (user’s) | Yes (user’s) | |
24Kx2 | Yes (user’s) | Yes (user’s) | Yes (user’s) | Yes (user’s) | NOECC 24Kx2 | Yes (user’s) | |
48Kx1 | Yes (user’s) | Yes (user’s) | Yes (user’s) | Yes (user’s) | Yes (user’s) | NOECC 48Kx1 |
Data input pins and RAM block configuration:
...
“A” input is 24-bit wide. An input multiplexer allows to select the 24 bits coming from the fabric or 18 bits from the “CAO” output of the previous (left) DSP block. “A” can go to one of the multiplier inputs through 0, 1, 2 or 3 pipeline registers, and/or forward its 18 LSBs to the “CAI” input of the neighboring (right) DSP block by using its CAO cascade output.
“A” input is most often used as an input to the multiplier.
“CAI” input: 18-bit input that can be used when the “A” input must receive the signal from the previous (on the right) DSP block via its “COA” chaining connection (direct routing, 0 ns delay), instead of the fabric.
...
“B” input is 18-bit wide. An input multiplexer allows to select the 18-bit signal coming from the fabric or the18 bits from the “CBO” output of the previous (left) DSP block. “B” can be directed to one of the pre-adder/subtracter, and/or to one of the multiplier inputs through 0, 1, 2 or 3 pipeline registers, and/or forward its 18 to the “CBI” input of the neighboring (right) DSP block by using its CBO cascade output.
“B” input is often used as a second input to the multiplier. It can also be used as operand of the pre-adder/subtracter.
“CBI” input: 18-bit input that can be used when the “B” input must receive the signal from the previous (left) DSP block via its “COB” chaining connection (direct routing, 0 ns delay), instead of the fabric.
“C” input is 36-bit wide. It’s directed to the ALU as a second operand (if required). “C” input can use 0 or 1 level of pipeline.
“C” input is often used as constant value input required for rounding operation.
“D” input is 18-bit wide. It’s directed to the pre-adder/subtracter through 0 or 1 level of pipeline registers.
“D” input is often used as input of the pre-adder/subracter. However for ALU dynamic opcode, the bits D(5:0) are used to dynamically select the operation to be performed.
“CZI” input is 56-bit wide. It comes from the neighboring (left) DSP block. It’s directed to the ALU (usually configured as post-adder/subtractor) through 0 or 1 level of pipeline registers.
“CZI” input is used when various DSP blocks have to be chained, for example in FIR filters and other DSP functions implementation.
Main DSP block outputs:
“CAO” is 18-bit wide. It’s used to forward the “A” input to the next (right) DSP block through 0, 1, 2, or 3 level of pipeline registers.
“CAO” input is used when two or mode DSP blocks have to be chained to forward data.
“CBO” is 18-bit wide. It’s used to forward the “B” input to the next (right) DSP block through 0, 1, 2, or 3 level of pipeline registers.
“COB” input is used when two or mode DSP blocks have to be chained to forward data.
“Z” output is 56-bit wide. It’s the main DSP block output to the fabric via general routing. It can be registered or not. The value available at the “Z” output is feedback to the ALU via the X-MUX (for example to implement an accumulator).
“CZO” output is also 56-bit wide. It allows to forward the registered or un-registered ALU output to the next (right) DSP block, via direct routing (no delay).
“CZO” is particularly useful to chain DSP blocks for FIR filters and other DSP functions requiring more than one DSP block.
DSP block features and operators:
...
In all configuration modes, the configuration clock must be provided to the FPGA on the CLK dedicated input pin. Its frequency can range from 20 MHz to 50 MHz, in any case it must be strictly greater than twice the JTAG (TCK) frequency – if used.
MODE[3:0] | Configuration mode |
1000 0x8 | RESERVED |
1001 0x9 | RESERVED |
1010 0Xa | Master Serial SPI |
1011 0xB | Master Serial SPI with Vcc control |
1100 0xC | Slave SpaceWire |
1101 0xD | RESERVED |
1110 0xE | Slave Parallel 8 |
1111 0xF | RESERVED |
Anchor | ||||
---|---|---|---|---|
|
...