| #!/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 |
| |