In [1]:
%pylab inline


Populating the interactive namespace from numpy and matplotlib

In [2]:
import re
import pandas as pd

def remove_offset(df):
    offset_tlm = df["time"][0]
    df["time"] = df["time"] - offset_tlm
    return df

benchmark="fir2"

# Import DB
store_lt = pd.HDFStore(benchmark + "/originals/" + benchmark + "_lt.log.h5")
store_at = pd.HDFStore(benchmark + "/originals/" + benchmark + "_at.log.h5")
store_rtl = pd.HDFStore(benchmark + "/originals/" + benchmark + "_rtl.log.h5")

In [3]:
# ICACHE READ ACCESS STATISTIC
icache_read_lt = store_lt.select('log',where=[('TYPE', '==', 'ICACHE_READ')], columns= ['time']).reset_index()
plt.hist(icache_read_lt['time'], bins=100)
plt.xlabel("Zeit in ps")
plt.ylabel("ICACHE Lesezugriffe")
savefig("./" + benchmark + "/" + benchmark + "_icache_read_hist.pdf")



In [4]:
# DCACHE READ ACCESS STATISTIC (from LT)
dcache_read_lt = store_lt.select('log',where=[('TYPE', '==', 'DCACHE_READ')], columns= ['time']).reset_index()
plt.hist(dcache_read_lt['time'], bins=100)
plt.xlabel("Zeit in ps")
plt.ylabel("DCACHE Lesezugriffe")

savefig("./" + benchmark + "/" + benchmark + "_dcache_read_hist.pdf")
del dcache_read_lt



In [5]:
# MMU_CACHE AHB READ STATISTIC (from LT) / DCACHE READ MISSES
ahb_read_lt = store_lt.select('log',where=[('TYPE', '==', 'AHB_READ')], columns= ['time']).reset_index()
plt.hist(ahb_read_lt['time'], bins=100)
plt.xlabel("Zeit in ps")
plt.ylabel("AMBA Lesezugriffe")

savefig("./" + benchmark + "/" + benchmark + "_ahb_read_hist.pdf")
del ahb_read_lt



In [6]:
# MMU_CACHE AHB WRITE STATISTIC (from AT)
ahb_write_lt = store_lt.select('log',where=[('TYPE', '==', 'AHB_WRITE')], columns= ['time']).reset_index()
plt.hist(ahb_write_lt['time'], bins=100)
plt.xlabel("Zeit in ps")
plt.ylabel("AMBA Schreibzugriffe")

savefig("./" + benchmark + "/" + benchmark + "_ahb_write_hist.pdf")
del ahb_write_lt



In [7]:
icache_read_rtl = store_rtl.select('log')
icache_read_at = store_at.select('log',where=[('TYPE', '==', 'ICACHE_READ')], columns= ['time']).reset_index()

plt.plot(icache_read_lt.time, label="LT")
plt.plot(icache_read_at.time, label="AT")
plt.plot(icache_read_rtl.time, label="RTL")
plt.legend(loc='upper left')
plt.xlabel("Verarbeitete Instruktionen")
plt.ylabel("Zeit ps")
plt.grid()
plt.savefig("./" + benchmark + "/" + benchmark + "_timing.pdf")

del icache_read_lt
del icache_read_at
del icache_read_rtl



In [7]: