KestrelComputer / kestrel

The Kestrel is a family of home-made computers, built as much as possible on open-source technology, and supporting as much as possible the open-source philosophy.
http://kestrelcomputer.github.io/kestrel
Mozilla Public License 2.0
185 stars 10 forks source link

GPIA pinout needs normalization to better support generic PMOD interfaces. #254

Closed sam-falvo closed 7 years ago

sam-falvo commented 7 years ago

This is also a breaking change. At this point, we need to support a GPIA-2 core.

e Emulator Changes (phase 1)

eForth Changes

e Emulator Changes (phase 2)

Documentation Changes

PMOD 0/1 pin assignments.

The table below lists the pinouts and the corresponding GPIA I/O register bit assignments. Neither of these pinouts conform to established PMOD interface types. However, SPI-mode is closest to type-2 but with some modifications. Thus, I'll declare SPI-mode type 2C. However, SD/MMC-mode is unique, and should be given its own type, which I'll declare arbitrarily as type 7, since the highest official specification is type 6.

Port Bit PMOD Pin Direction (SPI) Role (SPI) Direction (SD) Role (SD)
0 1 Out SDSS I/O SDDAT3
1 2 Out SDMOSI Out SDCMD
2 3 In SDMISO I/O SDDAT0
3 4 Out SDCLK Out SDCLK
5 GND GND
6 3V3 3V3
4 7 Out not used I/O SDDAT1
5 8 Out not used I/O SDDAT2
6 9 In SDCD In SDCD
7 10 In SDWP In SDWP
11 GND GND
12 3V3 3V3

More generically, the I/O port bit to 1x6 PMOD assignments are as follows:

63:60 59:56 55:52 51:48 47:44 43:40 39:36 35:32 31:28 27:24 23:20 19:16 15:12 11:8 7:4 3:0
15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0

Not all FPGA development boards support all PMODs. Some drivers may elect to use pairs of adjacent 1x6 PMODs to drive a 2x6 PMOD interface. Unless documented otherwise, and unless there's a good reason, 2x6 PMODs must start on an even-numbered slot.

sam-falvo commented 7 years ago

No longer relevant; new computer based on icoBoard Gamma does not have any need for parallel I/O at the present time.