| #!/bin/bash | 
 |  | 
 | set -ex | 
 |  | 
 | mkdir -p colbuf_io_8k.work | 
 | cd colbuf_io_8k.work | 
 |  | 
 | glb_pins="C8 F7 G1 H11 H16 J3 K9 R9" | 
 |  | 
 | pins=" | 
 | 	A1  A2          A5  A6  A7      A9  A10 A11             A15 A16 | 
 | 	B1  B2  B3  B4  B5  B6  B7  B8  B9  B10 B11 B12 B13 B14 B15 B16 | 
 | 	C1  C2  C3  C4  C5  C6  C7  C8  C9  C10 C11 C12 C13 C14     C16 | 
 | 	D1  D2  D3  D4  D5  D6  D7  D8  D9  D10 D11     D13 D14 D15 D16 | 
 | 	    E2  E3  E4  E5  E6          E9  E10 E11     E13 E14     E16 | 
 | 	F1  F2  F3  F4  F5      F7      F9      F11 F12 F13 F14 F15 F16 | 
 | 	G1  G2  G3  G4  G5                  G10 G11 G12 G13 G14 G15 G16 | 
 | 	H1  H2  H3  H4  H5  H6                  H11 H12 H13 H14     H16 | 
 | 	J1  J2  J3  J4  J5                  J10 J11 J12 J13 J14 J15 J16 | 
 | 	K1      K3  K4  K5              K9      K11 K12 K13 K14 K15 K16 | 
 | 	L1      L3  L4  L5  L6  L7      L9  L10 L11 L12 L13 L14     L16 | 
 | 	M1  M2  M3  M4  M5  M6  M7  M8  M9      M11 M12 M13 M14 M15 M16 | 
 | 	    N2  N3  N4  N5  N6  N7      N9  N10     N12             N16 | 
 | 	P1  P2      P4  P5  P6  P7  P8  P9  P10 P11 P12 P13 P14 P15 P16 | 
 | 	R1  R2  R3  R4  R5  R6          R9  R10 R11 R12     R14 R15 R16 | 
 | 	T1  T2  T3      T5  T6  T7  T8  T9  T10 T11     T13 T14 T15 T16 | 
 | " | 
 | pins="$( echo $pins )" | 
 |  | 
 | for pin in $pins; do | 
 | 	pf="colbuf_io_8k_$pin" | 
 | 	gpin=$( echo $glb_pins | tr ' ' '\n' | grep -v $pin | sort -R | head -n1; ) | 
 | 	cat > ${pf}.v <<- EOT | 
 | 		module top (input clk, data, output pin); | 
 | 			SB_IO #( | 
 | 				.PIN_TYPE(6'b 0101_00) | 
 | 			) pin_obuf ( | 
 | 				.PACKAGE_PIN(pin), | 
 | 				.OUTPUT_CLK(clk), | 
 | 				.D_OUT_0(data) | 
 | 			); | 
 | 		endmodule | 
 | 	EOT | 
 | 	echo "set_io pin $pin" > ${pf}.pcf | 
 | 	echo "set_io clk $gpin" >> ${pf}.pcf | 
 | 	ICEDEV=hx8k-ct256 bash ../../icecube.sh ${pf}.v > ${pf}.log 2>&1 | 
 | 	../../../icebox/icebox_explain.py ${pf}.asc > ${pf}.exp | 
 | 	rm -rf ${pf}.tmp | 
 | done | 
 |  |