From 694b9390fd6c7c32498d028a45ec02988eadaa68 Mon Sep 17 00:00:00 2001 From: Clifford Wolf Date: Fri, 22 Sep 2017 04:52:44 +0200 Subject: Enable a bunch of PicoRV32 features in PicoSoC --- picosoc/performance.py | 100 +++++++++++++++++++++++++++++++++++++++++++------ 1 file changed, 89 insertions(+), 11 deletions(-) (limited to 'picosoc/performance.py') diff --git a/picosoc/performance.py b/picosoc/performance.py index dc1fb52..92c50c5 100644 --- a/picosoc/performance.py +++ b/picosoc/performance.py @@ -3,7 +3,7 @@ import matplotlib.pyplot as plt import numpy as np -text = """ +uncompr_text = """ default : 010f52ef dspi-8 : 008dc82f dspi-7 : 008d6d63 @@ -53,32 +53,110 @@ qspi-ddr-crm-4 : 00244a65 qspi-ddr-crm-3 : 0023ef99 qspi-ddr-crm-2 : 002394cd qspi-ddr-crm-1 : 00233a01 +instns : 0003df2d +""" + +compr_text = """ +default : 00f3d36d +dspi-8 : 008008ad +dspi-7 : 007fade1 +dspi-6 : 007f5315 +dspi-5 : 007ef849 +dspi-4 : 007e9d7d +dspi-3 : 007e42b1 +dspi-2 : 007de7e5 +dspi-1 : 007d8d19 +dspi-crm-8 : 007d324d +dspi-crm-7 : 007cd781 +dspi-crm-6 : 007c7cb5 +dspi-crm-5 : 007c21e9 +dspi-crm-4 : 007bc71d +dspi-crm-3 : 007b6c51 +dspi-crm-2 : 007b1185 +dspi-crm-1 : 007ab6b9 +qspi-8 : 00434ced +qspi-7 : 0042f221 +qspi-6 : 00429755 +qspi-5 : 00423c89 +qspi-4 : 0041e1bd +qspi-3 : 004186f1 +qspi-2 : 00412c25 +qspi-1 : 0040d159 +qspi-crm-8 : 0040768d +qspi-crm-7 : 00401bc1 +qspi-crm-6 : 003fc0f5 +qspi-crm-5 : 003f6629 +qspi-crm-4 : 003f0b5d +qspi-crm-3 : 003eb091 +qspi-crm-2 : 003e55c5 +qspi-crm-1 : 003dfaf9 +qspi-ddr-8 : 00255d87 +qspi-ddr-7 : 002502bb +qspi-ddr-6 : 0024a7ef +qspi-ddr-5 : 00244d23 +qspi-ddr-4 : 0023f257 +qspi-ddr-3 : 0023978b +qspi-ddr-2 : 00233cbf +qspi-ddr-1 : 0022e1f3 +qspi-ddr-crm-8 : 00228727 +qspi-ddr-crm-7 : 00222c5b +qspi-ddr-crm-6 : 0021d18f +qspi-ddr-crm-5 : 002176c3 +qspi-ddr-crm-4 : 00211bf7 +qspi-ddr-crm-3 : 0020c12b +qspi-ddr-crm-2 : 0020665f +qspi-ddr-crm-1 : 00200b93 +instns : 0003df2d """ labels = list() -values = list() +uncompr_values = list() +compr_values = list() + +for line in uncompr_text.split("\n"): + if line != "": + line = line.split() + if line[0] == "instns": + for i in range(len(uncompr_values)): + uncompr_values[i] = int(line[2], 16) / uncompr_values[i] + else: + labels.append(line[0]) + uncompr_values.append(int(line[2], 16)) -for line in text.split("\n"): +for line in compr_text.split("\n"): if line != "": line = line.split() - labels.append(line[0]) - values.append(int(line[2], 16)) + if line[0] == "instns": + for i in range(len(compr_values)): + compr_values[i] = int(line[2], 16) / compr_values[i] + else: + compr_values.append(int(line[2], 16)) + +print(np.array(compr_values) / np.array(uncompr_values)) + +values = list() +for i in range(len(compr_values)): + values.append(uncompr_values[i] / uncompr_values[0]) + # values.append(compr_values[i] / compr_values[0]) + +values = np.array(values) +print(values) plt.figure(figsize=(10, 5)) plt.title("Performance comparison for different PicoSoC SPI flash configurations") -plt.plot(range(len(labels)), values[0] / np.array(values)) +plt.plot(range(len(labels)), values) plt.xticks(range(len(labels)), labels, rotation=80) for color, x1, x2 in [["black", 0, 0], ["red", 1, 8], ["green", 9, 16], ["red", 17, 24], ["green", 25, 32], ["red", 33, 40], ["green", 41, 48]]: for t in plt.axes().xaxis.get_ticklabels()[x1:x2+1]: t.set_color(color) - plt.plot([x1, x1], [0, values[0] / values[x1] - 0.2], color=color) - plt.plot([x2, x2], [0, values[0] / values[x2] - 0.2], color=color) - plt.plot([x1], [values[0] / values[x1]], "k.") - plt.plot([x2], [values[0] / values[x2]], "k.") + plt.plot([x1, x1], [0, values[x1] - 0.2], color=color) + plt.plot([x2, x2], [0, values[x2] - 0.2], color=color) + plt.plot([x1], [values[x1]], "k.") + plt.plot([x2], [values[x2]], "k.") -plt.xlim(-1, len(values)) +plt.xlim(-1, len(labels)) plt.ylim(0, 9) plt.grid() -- cgit