Is the correspondence between the I/O blocks of an iCE40 FPGA and the pins of the package they drive documented somewhere?
The I/O tile documentation of Project IceStorm gives a list of I/O blocks, and for each block where its IE and REN bits are located in the bitstream. A few blocks are missing from this list:
0 16 *
0 15 *
0 7 *
0 1 *
13 3 0
13 5 *
13 10 *
13 16 *
6 17 0
Does that mean that these blocks don't exist?
While lacking a documentation, I was able to deduce the following correspondence for the iCE40-HX1K-TQ144 and the pins used on the iCEstick evaluation board by examining the bitstreams generated by the Yosys/arachne-pnr/Icestorm flow:
0 8 1 -> 21 (PIO3_00 / clock)
4 0 0 -> 44 (PIO2_10 / J3 10)
4 0 1 -> 45 (PIO2_11 / J3 9)
5 0 0 -> 47 (PIO2_12 / J3 8)
5 0 1 -> 48 (PIO2_13 / J3 7)
7 0 1 -> 56 (PIO2_14 / J3 6)
8 0 1 -> 60 (PIO2_15 / J3 5)
9 0 0 -> 61 (PIO2_16 / J3 4)
9 0 1 -> 62 (PIO2_17 / J3 3)
13 3 1 -> 78 (PIO1_02 / Pmod 1)
13 4 0 -> 79 (PIO1_03 / Pmod 2)
13 4 1 -> 80 (PIO1_04 / Pmod 3)
13 6 0 -> 81 (PIO1_05 / Pmod 4)
13 6 1 -> 87 (PIO1_06 / Pmod 7)
13 7 0 -> 88 (PIO1_07 / Pmod 8)
13 7 1 -> 90 (PIO1_08 / Pmod 9)
13 8 0 -> 91 (PIO1_09 / Pmod 10)
13 9 1 -> 95 (PIO1_10 / D5)
13 11 0 -> 96 (PIO1_11 / D4)
13 11 1 -> 97 (PIO1_12 / D3)
13 12 0 -> 98 (PIO1_13 / D2)
13 12 1 -> 99 (PIO1_14 / D1)
13 14 1 -> 105 (PIO1_18 / TXD)
13 15 0 -> 106 (PIO1_19 / RXD)
13 15 1 -> 107 (PIO1_20 / SD)
12 17 0 -> 113 (PIO0_03 / J1 4)
12 17 1 -> 112 (PIO0_02 / J1 3)
11 17 0 -> 115 (PIO0_05 / J1 6)
11 17 1 -> 114 (PIO0_04 / J1 5)
10 17 0 -> 117 (PIO0_07 / J1 8)
10 17 1 -> 116 (PIO0_06 / J1 7)
9 17 0 -> 119 (PIO0_09 / J1 10)
9 17 1 -> 118 (PIO0_08 / J1 9)
However, I'd like to cross-check this information if possible.
Does that mean that these blocks don't exist?
It means those blocks are not connected to actual IO pins. I would assume they still exist on the silicon. But since I've never looked at the actual die, I have no way of knowing.
However, I'd like to cross-check this information if possible.
See the .pins tq144
section of chipdb-1k.txt. For example:
Your list: 0 8 1 -> 21
My list: 21 0 8 1