AMF-Placer  2.0
An Open-Source Timing-driven Analytical Mixed-size FPGA Placer
coordDensityVisualization.py
Go to the documentation of this file.
1 from joblib import Parallel, delayed
2 import multiprocessing
3 from codecs import BOM_UTF8, BOM_UTF16_BE, BOM_UTF16_LE, BOM_UTF32_BE, BOM_UTF32_LE
4 import numpy as np
5 import matplotlib.pyplot as plt
6 from matplotlib import cm
7 from scipy.stats import gaussian_kde
8 import numpy as np
9 import mpl_scatter_density
10 import matplotlib.pyplot as plt
11 import gzip
12 import zlib
13 from bs4 import UnicodeDammit
14 import time
15 
16 
17 def gzdecode(data):
18  return gzip.decompress(data).decode('utf8')
19 
20 
21 BOMS = (
22  (BOM_UTF8, "UTF-8"),
23  (BOM_UTF32_BE, "UTF-32-BE"),
24  (BOM_UTF32_LE, "UTF-32-LE"),
25  (BOM_UTF16_BE, "UTF-16-BE"),
26  (BOM_UTF16_LE, "UTF-16-LE"),
27 )
28 
29 
30 def check_bom(data):
31  return [encoding for bom, encoding in BOMS if data.startswith(bom)]
32 
33 
34 def processInput(i):
35  from scipy.stats import gaussian_kde
36  import numpy as np
37  import mpl_scatter_density
38  import matplotlib.pyplot as plt
39  filename = ("DumpLUTFFCoordTrace-GeneralSpreader-SLICEL_LUT-"+str(i)+".gz")
40  file = gzip.open(filename, 'rb')
41  content = file.read().decode()
42 
43  arrayList = []
44  x = []
45  y = []
46  cnt = 0
47  for line in content.split("\n")[:-1]:
48  eles = line.split(' ')[:2]
49  x.append(float(eles[0]))
50  y.append(float(eles[1]))
51  cnt += 1
52 
53  fig = plt.figure(figsize=(15, 30))
54  ax = fig.add_subplot(1, 1, 1, projection='scatter_density')
55  ax.scatter_density(x, y)
56  ax.set_xlim(-10, 90)
57  ax.set_ylim(-10, 490)
58  # plt.show()
59  fig.savefig("DumpLUTFFCoordTrace-GeneralSpreader-SLICEL_LUT-"+str(i)+'.png')
60  print("saved "+"DumpLUTFFCoordTrace-GeneralSpreader-SLICEL_LUT-"+str(i)+'.png')
61  file.close()
62 
63 
64 num_inputs = int(input())
65 inputs = range(0, num_inputs)
66 num_cores = multiprocessing.cpu_count()
67 
68 results = Parallel(n_jobs=num_cores)(delayed(processInput)(i) for i in inputs)
69 print(results)
coordDensityVisualization.check_bom
def check_bom(data)
Definition: coordDensityVisualization.py:30
coordDensityVisualization.processInput
def processInput(i)
Definition: coordDensityVisualization.py:34
coordDensityVisualization.gzdecode
def gzdecode(data)
Definition: coordDensityVisualization.py:17