Extension connector
The GECKO5Modular contains an extension connector that provides 32-I/O lines, Voltage selection, and USB-pass-trough. The pin-out of this connector is shown below:
Pin nr.: |
Description: |
Pin nr.: |
Description: |
---|---|---|---|
1 |
3.3V from GECKO5Modular |
2 |
3.3V from GECKO5Modular |
3 |
GPIO pin 18 |
4 |
GPIO pin 19 |
5 |
GPIO pin 17 |
6 |
GPIO pin 20 |
7 |
GPIO pin 16 |
8 |
GPIO pin 21 |
9 |
GPIO pin 15 |
10 |
GPIO pin 22 |
11 |
GPIO pin 14 |
12 |
GPIO pin 23 |
13 |
GPIO pin 13 |
14 |
GPIO pin 24 |
15 |
GPIO pin 12 |
16 |
GPIO pin 25 |
17 |
GPIO pin 11 |
18 |
GPIO pin 26 |
19 |
GPIO pin 10 |
20 |
GPIO pin 27 |
21 |
GPIO pin 9 |
22 |
GPIO pin 28 |
23 |
GPIO pin 8 |
24 |
GPIO pin 29 |
25 |
GPIO pin 7 |
26 |
GPIO pin 30 |
27 |
GPIO pin 6 |
28 |
GPIO pin 31 |
29 |
GPIO pin 5 |
30 |
GPIO pin 32 |
31 |
GPIO pin 4 |
32 |
5V from GECKO5Modular |
33 |
GPIO pin 3 |
34 |
5V to GECKO5Modular |
35 |
GPIO pin 2 |
36 |
UsbD- from GECKO5Modular |
37 |
GPIO pin 1 |
38 |
UsbD+ from GECKO5Modular |
39 |
Bank voltage |
40 |
UsbD selection |
G1 |
Power ground |
G2 |
Power ground |
G3 |
Power ground |
G4 |
Power ground |
Using the extension connector
In this section you find a VHDL
and Verilog
top-level and the corresponding lpf
-file that you can use to use the extention connector.
Important
Although VHDL
is case-insensitive, the lpf
-file is not. Meaning that the port-names in the top-level entity need to be copied exactly in the lpf
-file.
An example for a VHDL
top-level entity is shown below:
library ieee;
use ieee.std_logic_1164.all;
entity toplevel is
port ( gpio : inout std_logic_vector(32 downto 1),
... );
end toplevel;
An example for a Verilog
top-level is shown below:
module toplevel (
inout wire [32:1] gpio,
...);
...
endmodule
Note
The pins above are defined as inout, of course the direction of the pins is dependent on the add-on board that you mount to the GECKO5Modular
The required entries in the lpf-file are:
LOCATE COMP "gpio[1]" SITE "G5";
LOCATE COMP "gpio[2]" SITE "G3";
LOCATE COMP "gpio[3]" SITE "F4";
LOCATE COMP "gpio[4]" SITE "F3";
LOCATE COMP "gpio[5]" SITE "E4";
LOCATE COMP "gpio[6]" SITE "E3";
LOCATE COMP "gpio[7]" SITE "F5";
LOCATE COMP "gpio[8]" SITE "D3";
LOCATE COMP "gpio[9]" SITE "C4";
LOCATE COMP "gpio[10]" SITE "C3";
LOCATE COMP "gpio[11]" SITE "B4";
LOCATE COMP "gpio[12]" SITE "B3";
LOCATE COMP "gpio[13]" SITE "A4";
LOCATE COMP "gpio[14]" SITE "A3";
LOCATE COMP "gpio[15]" SITE "D5";
LOCATE COMP "gpio[16]" SITE "C5";
LOCATE COMP "gpio[17]" SITE "B5";
LOCATE COMP "gpio[18]" SITE "A5";
LOCATE COMP "gpio[19]" SITE "E5";
LOCATE COMP "gpio[20]" SITE "F2";
LOCATE COMP "gpio[21]" SITE "E1";
LOCATE COMP "gpio[22]" SITE "E2";
LOCATE COMP "gpio[23]" SITE "D1";
LOCATE COMP "gpio[24]" SITE "D2";
LOCATE COMP "gpio[25]" SITE "C1";
LOCATE COMP "gpio[26]" SITE "C2";
LOCATE COMP "gpio[27]" SITE "B1";
LOCATE COMP "gpio[28]" SITE "B2";
LOCATE COMP "gpio[29]" SITE "A2";
LOCATE COMP "gpio[30]" SITE "H3";
LOCATE COMP "gpio[31]" SITE "H4";
LOCATE COMP "gpio[32]" SITE "H5";
IOBUF PORT "gpio[1]" PULLMODE=NONE IO_TYPE=LVCMOS12;
IOBUF PORT "gpio[2]" PULLMODE=NONE IO_TYPE=LVCMOS12;
IOBUF PORT "gpio[3]" PULLMODE=NONE IO_TYPE=LVCMOS12;
IOBUF PORT "gpio[4]" PULLMODE=NONE IO_TYPE=LVCMOS12;
IOBUF PORT "gpio[5]" PULLMODE=NONE IO_TYPE=LVCMOS12;
IOBUF PORT "gpio[6]" PULLMODE=NONE IO_TYPE=LVCMOS12;
IOBUF PORT "gpio[7]" PULLMODE=NONE IO_TYPE=LVCMOS12;
IOBUF PORT "gpio[8]" PULLMODE=NONE IO_TYPE=LVCMOS12;
IOBUF PORT "gpio[9]" PULLMODE=NONE IO_TYPE=LVCMOS12;
IOBUF PORT "gpio[10]" PULLMODE=NONE IO_TYPE=LVCMOS12;
IOBUF PORT "gpio[11]" PULLMODE=NONE IO_TYPE=LVCMOS12;
IOBUF PORT "gpio[12]" PULLMODE=NONE IO_TYPE=LVCMOS12;
IOBUF PORT "gpio[13]" PULLMODE=NONE IO_TYPE=LVCMOS12;
IOBUF PORT "gpio[14]" PULLMODE=NONE IO_TYPE=LVCMOS12;
IOBUF PORT "gpio[15]" PULLMODE=NONE IO_TYPE=LVCMOS12;
IOBUF PORT "gpio[16]" PULLMODE=NONE IO_TYPE=LVCMOS12;
IOBUF PORT "gpio[17]" PULLMODE=NONE IO_TYPE=LVCMOS12;
IOBUF PORT "gpio[18]" PULLMODE=NONE IO_TYPE=LVCMOS12;
IOBUF PORT "gpio[19]" PULLMODE=NONE IO_TYPE=LVCMOS12;
IOBUF PORT "gpio[20]" PULLMODE=NONE IO_TYPE=LVCMOS12;
IOBUF PORT "gpio[21]" PULLMODE=NONE IO_TYPE=LVCMOS12;
IOBUF PORT "gpio[22]" PULLMODE=NONE IO_TYPE=LVCMOS12;
IOBUF PORT "gpio[23]" PULLMODE=NONE IO_TYPE=LVCMOS12;
IOBUF PORT "gpio[24]" PULLMODE=NONE IO_TYPE=LVCMOS12;
IOBUF PORT "gpio[25]" PULLMODE=NONE IO_TYPE=LVCMOS12;
IOBUF PORT "gpio[26]" PULLMODE=NONE IO_TYPE=LVCMOS12;
IOBUF PORT "gpio[27]" PULLMODE=NONE IO_TYPE=LVCMOS12;
IOBUF PORT "gpio[28]" PULLMODE=NONE IO_TYPE=LVCMOS12;
IOBUF PORT "gpio[29]" PULLMODE=NONE IO_TYPE=LVCMOS12;
IOBUF PORT "gpio[30]" PULLMODE=NONE IO_TYPE=LVCMOS12;
IOBUF PORT "gpio[31]" PULLMODE=NONE IO_TYPE=LVCMOS12;
IOBUF PORT "gpio[32]" PULLMODE=NONE IO_TYPE=LVCMOS12;
Important
Note the case-sensitivity of the lpf-file.
The tools require exactly one lpf-file, hence all assignments you use need to be in a single lpf-file.
The IO_TYPE is dependent on the bank-voltage and has to be adapted accordingly. See below for the possible values.
Bank voltage selection
By default the GECKO5Modular provides a bank voltage of 1.2 Volt (LVCMOS12). However, the add-on card can change the bank voltage by providing it on pin 39 on the extension connector. The possible bank voltages are:
Bank voltage: |
IO_TYPE: |
Bank voltage: |
IO_TYPE: |
---|---|---|---|
1.2V |
LVCMOS12 |
1.8V |
LVCMOS18 |
2.5V |
LVCMOS25 |
3.3V |
LVCMOS33 |
Designing add-on cards
To facilitate the design of an add-on card, you can find here a template that has the same size of the GECKO5Modular and contains the extension connector and holes at the correct place.
There are basically two ways to design an add-on card, namely:
A GECKO5Modular powered add-on card. This type of add-on cards can be used when your add-on card does not need (a) USB-connection(s).
A self-powered add-on card. This type of add-on cards can be used if your add-on card contains one or more USB-devices.
A GECKO5Modular powered add-on card
In case of the design of a GECKO5Modular powered add-on card, the pins 34, 36, 38, and 40 of the extension connector should be left unconnected. Furthermore:
The add-on card must provide a bank voltage on pin 39 in case it is different from 1.2V.
The GECKO5Modular provides 3.3V on pins 1 and 2.
The GECKO5Modular provides the USB 5V on pin 32.
A self-powered add-on card
In case of a self-powered add-on card, the pins 1, 2, and 32 of the extension connector should be left unconnected. Furthermore:
Pin 40 should be connected to power ground. This will separate the FT2232 from the USB-C connector on the GECKO5Modular and put it on the pins 36 and 38. This has the advantage that only one USB-connection is required (namely the one going to the add-on card).
The add-on card must provide a USB-hub where all USB-devices are connected including the FT2232 from the GECKO5Modular that is connected on the pins 36 and 38.
The add-on card must provide a bank voltage on pin 39 in case it is different from 1.2V.
The add-on card must provide the USB-5V on pin 34.
Summary
Below the table with all required information for the extension connector:
Name: |
FPGA pin: |
Name: |
FPGA pin: |
Name: |
FPGA pin: |
Name: |
FPGA pin: |
---|---|---|---|---|---|---|---|
GPIO pin 1 |
G5 |
GPIO pin 2 |
G3 |
GPIO pin 3 |
F4 |
GPIO pin 4 |
F3 |
GPIO pin 5 |
E4 |
GPIO pin 6 |
E3 |
GPIO pin 7 |
F5 |
GPIO pin 8 |
D3 |
GPIO pin 9 |
C4 |
GPIO pin 10 |
C3 |
GPIO pin 11 |
B4 |
GPIO pin 12 |
B3 |
GPIO pin 13 |
A4 |
GPIO pin 14 |
A3 |
GPIO pin 15 |
D5 |
GPIO pin 16 |
C5 |
GPIO pin 17 |
B5 |
GPIO pin 18 |
A5 |
GPIO pin 19 |
E5 |
GPIO pin 20 |
F2 |
GPIO pin 21 |
E1 |
GPIO pin 22 |
E2 |
GPIO pin 23 |
D1 |
GPIO pin 24 |
D2 |
GPIO pin 25 |
C1 |
GPIO pin 26 |
C2 |
GPIO pin 27 |
B1 |
GPIO pin 28 |
B2 |
GPIO pin 29 |
A2 |
GPIO pin 30 |
H3 |
GPIO pin 31 |
H4 |
GPIO pin 32 |
H5 |