mirror of https://github.com/VLSIDA/OpenRAM.git
Added leakage and slew data. Added temporary fix to model output format.
This commit is contained in:
parent
25544c3974
commit
06232dee8f
|
|
@ -61,30 +61,25 @@ class linear_regression(simulation):
|
||||||
max_delay = 0.0
|
max_delay = 0.0
|
||||||
for slew in slews:
|
for slew in slews:
|
||||||
for load in loads:
|
for load in loads:
|
||||||
# Calculate delay based on slew and load
|
|
||||||
debug.info(1,
|
|
||||||
'{}, {}, {}, {}'.format(slew,
|
|
||||||
load,
|
|
||||||
total_delay.delay / 1e3,
|
|
||||||
total_delay.slew / 1e3))
|
|
||||||
|
|
||||||
# Delay is only calculated on a single port and replicated for now.
|
# Delay is only calculated on a single port and replicated for now.
|
||||||
for port in self.all_ports:
|
for port in self.all_ports:
|
||||||
for mname in self.delay_meas_names + self.power_meas_names:
|
for mname in self.delay_meas_names + self.power_meas_names:
|
||||||
#FIXME: fix magic for indexing the data
|
#FIXME: fix magic for indexing the data
|
||||||
|
#FIXME: model output is double list. Simply this
|
||||||
if "power" in mname:
|
if "power" in mname:
|
||||||
port_data[port][mname].append(sram_vals[1])
|
port_data[port][mname].append(sram_vals[1][0][0])
|
||||||
elif "delay" in mname and port in self.read_ports:
|
elif "delay" in mname and port in self.read_ports:
|
||||||
port_data[port][mname].append(sram_vals[0])
|
port_data[port][mname].append(sram_vals[0][0][0])
|
||||||
elif "slew" in mname and port in self.read_ports:
|
elif "slew" in mname and port in self.read_ports:
|
||||||
port_data[port][mname].append(sram_vals[3])
|
port_data[port][mname].append(sram_vals[3][0][0])
|
||||||
else:
|
else:
|
||||||
debug.error("Measurement name not recognized: {}".format(mname), 1)
|
debug.error("Measurement name not recognized: {}".format(mname), 1)
|
||||||
|
|
||||||
# Estimate the period as double the delay with margin
|
# Estimate the period as double the delay with margin
|
||||||
period_margin = 0.1
|
period_margin = 0.1
|
||||||
sram_data = {"min_period": sram_vals[0] * 2,
|
sram_data = {"min_period": sram_vals[0][0][0] * 2,
|
||||||
"leakage_power": sram_vals[2]}
|
"leakage_power": sram_vals[2][0][0]}
|
||||||
|
|
||||||
debug.info(2, "SRAM Data:\n{}".format(sram_data))
|
debug.info(2, "SRAM Data:\n{}".format(sram_data))
|
||||||
debug.info(2, "Port Data:\n{}".format(port_data))
|
debug.info(2, "Port Data:\n{}".format(port_data))
|
||||||
|
|
|
||||||
|
|
@ -0,0 +1,9 @@
|
||||||
|
num_words,word_size,words_per_row,area,leakage_power
|
||||||
|
16,2,1,88873,0.0009381791
|
||||||
|
64,2,4,108116,0.0011511999999999998
|
||||||
|
16,1,1,86004,0.0005252088
|
||||||
|
32,3,2,101618,0.0012168
|
||||||
|
32,2,2,95878,0.000771978
|
||||||
|
16,3,1,93009,0.0009978024
|
||||||
|
64,1,4,95878,0.0006975546000000001
|
||||||
|
32,1,2,90139,0.0006437493
|
||||||
|
|
|
@ -0,0 +1,9 @@
|
||||||
|
num_words,word_size,words_per_row,area,output_slew
|
||||||
|
16,2,1,88873,1.81
|
||||||
|
64,2,4,108116,1.69
|
||||||
|
16,1,1,86004,1.786
|
||||||
|
32,3,2,101618,1.725
|
||||||
|
32,2,2,95878,1.71
|
||||||
|
16,3,1,93009,1.835
|
||||||
|
64,1,4,95878,1.662
|
||||||
|
32,1,2,90139,1.69
|
||||||
|
Loading…
Reference in New Issue