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

  1. Note the case-sensitivity of the lpf-file.

  2. The tools require exactly one lpf-file, hence all assignments you use need to be in a single lpf-file.

  3. 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:

  1. 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).

  2. 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:

  1. The add-on card must provide a bank voltage on pin 39 in case it is different from 1.2V.

  2. The GECKO5Modular provides 3.3V on pins 1 and 2.

  3. 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:

  1. 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).

  2. 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.

  3. The add-on card must provide a bank voltage on pin 39 in case it is different from 1.2V.

  4. 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