import os

num = 20

device_class = os.getenv("ICEDEVICE")

if device_class == "8k":
    num_ramb40 = 32
    num_iobanks = 4
    num_dsp = 0

    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
    """.split()

    gpins = "C8 F7 G1 H11 H16 I3 K9 R9".split()

elif device_class == "384":
    num_ramb40 = 0
    num_iobanks = 3
    num_dsp = 0

    pins = """
        A1 A2 A3 A4 A5 A6 A7
        B1 B2 B3 B4
        C1 C2    C4 C5 C6 C7
        D1 D2 D3 D4    D6 D7
           E2          E6 E7
        F1 F2 F3 F4 F5 F6 F7
        G1    G3 G4    G6
    """.split()

    gpins = "B4 C4 D2 D6 D7 E2 F3 F4".split()

elif device_class == "1k":
    num_ramb40 = 16
    num_iobanks = 4
    num_dsp = 0

    pins = """
        1 2 3 4 7 8 9 10 11 12 19 22 23 24 25 26 28 29 31 32 33 34
        37 38 41 42 43 44 45 47 48 52 56 58 60 61 62 63 64
        73 74 75 76 78 79 80 81 87 88 90 91 95 96 97 98 101 102 104 105 106 107
        112 113 114 115 116 117 118 119 120 121 122 134 135 136 137 138 139 141 142 143 144
    """.split()

    gpins = "20 21 49 50 93 94 128 129".split()

elif device_class == "4k":
    num_ramb40 = 20
    num_iobanks = 2
    num_dsp = 0

    # TODO(awygle) add F5 G6 F6 E6 which are constrained to (config) SPI.
    pins = """
        A1 A2 A3 A4 A5 A6 A7
        B1 B2    B4    B6 B7
        C1    C3 C4    C6 C7
        D1 D2 D3       D6 D7
        E1 E2 E3 E4 E5    E7
           F2 F3 F4       F7
              G3
    """.split()

    gpins = "A3 A4 D2 E2 E5 G3".split()

elif device_class == "5k":
    num_ramb40 = 30
    num_iobanks = 2
    num_dsp = 8
    num_spram256ka = 4
    #TODO(tannewt): Add 39, 40, 41 to this list. It causes placement failures for some reason.
    # Also add 14 15 16 17 which are constrained to SPI.
    #TODO(daveshah1): Add back I3C IO 23 which cause placement failures when assigned to
    #an SB_IO clk_in
    pins = """2 3 4 6 9 10 11 12
    13 18 19 20 21
    25 26 27 28 31 32 34 35 36
    37 38 42 43 44 45 46 47 48
    """.split()

    #TODO(tannewt): Add 39, 40, 41 to this list. It causes placement failures for some reason.
    gpins = "20 35 37 44".split()
    led_pins = "39 40 41".split()
def output_makefile(working_dir, fuzzname):
  with open(working_dir + "/Makefile", "w") as f:
      print("all: %s" % " ".join(["%s_%02d.bin" % (fuzzname, i) for i in range(num)]), file=f)
      for i in range(num):
          basename = "%s_%02d" % (fuzzname, i)
          print("%s.bin:" % basename, file=f)
          print("\t-bash ../icecube.sh %s > %s.log 2>&1 && rm -rf %s.tmp || tail %s.log" % (basename, basename, basename, basename), file=f)
          print("\tpython3 ../glbcheck.py %s.asc %s.glb" % (basename, basename), file=f)
