-#########################################
-pinmux=''' '''
-pinmap_file=open("./pinmap.txt","r")
-for lineno,line in enumerate(pinmap_file):
- line1=line.split()
- if(lineno>0):
- if(lineno>N_IO):
- print"ERROR: Parameter N_IO("+str(N_IO)+") is less than the pin number in line: "+str(lineno)+" of pinmap.txt"
- exit(1)
- ######## Mux each generic IO cell with the mapping######
- # provided in the pinmap file
- pinmux=pinmux+" cell"+str(line1[0])+"_out="
- i=0
- while(i<len(line1)-1):
- pinmux=pinmux+"wrmux"+str(line1[0])+"=="+str(i)+"?"+line1[i+1]+"_io:"
- if(i+2==len(line1)-1):
- pinmux=pinmux+line1[i+2]+"_io"
- i=i+2
- else:
- i=i+1
- pinmux=pinmux+";\n"
- ########################################################
+# ============================================================
+pinmux = ''' '''
+pinmap_file = open("./pinmap.txt", "r")
+dedicated = False
+for lineno, line in enumerate(pinmap_file):
+ line1 = line.split()
+ if("muxed" in line):
+ dedicated = False
+ elif("dedicated" in line):
+ dedicated = True
+ # ==== Logic for muxed pins ==== #
+ if(len(line1) > 1 and not(dedicated)):
+ if(lineno > N_IO):
+ print(
+ "ERROR: Parameter N_IO(" +
+ str(N_IO) +
+ ") is less than the pin number in line: " +
+ str(lineno) +
+ " of pinmap.txt")
+ exit(1)
+ # ==== Mux each generic IO cell with the mapping ===== #
+ # provided in the pinmap file
+ pinmux = pinmux + " cell" + str(line1[0]) + "_out="
+ i = 0
+ while(i < len(line1) - 1):
+ pinmux = pinmux + "wrmux" + \
+ str(line1[0]) + "==" + str(i) + "?" + line1[i + 1] + "_io:"
+ if(i + 2 == len(line1) - 1):
+ pinmux = pinmux + line1[i + 2] + "_io"
+ i = i + 2
+ else:
+ i = i + 1
+ pinmux = pinmux + ";\n"
+ # ======================================================== #