GPIO - david-macmahon/wiki_convert_test GitHub Wiki
Block: GPIO (gpio
)
Block Author: Pierre-Yves Droz
Document Author: Billy Mallard
Summary
The gpio block provides access to GPIO pins on any board that has GPIO headers.
Mask Parameters
Parameter | Variable | Description |
---|---|---|
I/O group | io_group | Selects the board architecture and the GPIO header on that board. |
I/O direction | io_dir | Chooses whether the pin sends data out of or in to the FPGA. |
Data Type | arith_type | Specifies data type of register. |
Data bitwidth | bitwidth | Specifies data bitwidth. |
Data binary point | bin_pt | Specifies the binary point position of data. |
GPIO bit index | bit_index | Specifies the pin on the selected GPIO header. |
Sample period | sample_period | Specifies sample period of interface. |
Use DDR | use_ddr | ??? |
Pack register in the pad | reg_iob | ??? |
Register clock phase | reg_clk_phase | 0 , 90 , 180 , 270 . |
Termination method | termination | None , Pullup , Pulldown . |
Ports
Port | Dir | Data Type | Description |
---|---|---|---|
reg_out | in | inherited | Output from design to GPIO pin. Only in I/O in mode. |
sim_out | out | double | Simulation output of pin value. Only in I/O in mode. |
sim_in | in | double | Simulation input of pin value. Only in I/O out mode. |
reg_in | out | inherited | Input from GPIO pin to design. Only in I/O out mode. |
Description
ROACH Specific Information
Main article: ROACH FPGA Interfaces
Each GPIO header has one direction selector that controls the direction
of all 8 of its pins. You must set a direction. So, in addition to your
normal gpio
block (configured for I/O group ROACH:gpio[ab]
), add
another gpio
block, and set the following parameters:
- I/O group =
ROACH:gpio[ab]_oe_n
- I/O direction =
out
- bitwidth =
1
- bit_index =
0
The direction selector takes a boolean value as its input, so wire it to a Xilinx constant block:
0
- output from ROACH1
- input to ROACH
The two SMA connectors on the back of the board are wired directly to GPIO pins. Specifically, J11 and J10 are wired to pins 6 and 7 on GPIO A.
Notes
The order of the FPGA GPIOs have been changed from "3 2 1 0 7 6 5 4" to now match the order printed on the PCB "0 1 2 3 4 5 6 7". (See image)
Old mapping: 3 2 1 0 7 6 5 4
New mapping: 0 1 2 3 4 5 6 7