############################################################################
################ Write input arrays to MIF format files ####################
############################################################################
import sys, os
import math

import numpy as np

def make_mif_fpga(filename,dataTensor,bitwidth):
  # // Internal variables
  Ndepth = np.size(dataTensor);
  dataTensor = np.reshape(dataTensor,(-1,));

  # // Write file
  fileID = open(filename,'w');
  # Dimensions
  fileID.write(f'DEPTH = {Ndepth};\n',);
  fileID.write(f'WIDTH = {bitwidth};\n');
  fileID.write('\n');
  fileID.write('ADDRESS_RADIX = DEC;\n');
  fileID.write('DATA_RADIX = HEX;\n');
  fileID.write('\n');
  fileID.write('CONTENT\n');
  fileID.write('BEGIN\n');
  # Write data
  for i in range(Ndepth):
    fileID.write(f'{i} : {hex(dataTensor[i])};\n');
  fileID.write('END;\n');
  # close document
  fileID.close();