Changed bitcell exclusion to instead exclude array instances to prevent issues of module exclusion affecting other modules.

This commit is contained in:
Hunter Nichols 2021-06-21 17:20:25 -07:00
parent b408a871f9
commit 470317eaa4
2 changed files with 6 additions and 5 deletions

View File

@ -473,7 +473,6 @@ class simulation():
if not OPTS.use_pex or (OPTS.use_pex and OPTS.pex_exe[0] == "calibre"):
self.graph.get_all_paths('{}{}'.format("clk", port),
'{}{}_{}'.format(self.dout_name, port, self.probe_data))
sen_with_port = self.get_sen_name(self.graph.all_paths)
if sen_with_port.endswith(str(port)):
self.sen_name = sen_with_port[:-len(str(port))]
@ -530,9 +529,10 @@ class simulation():
Creates timing graph to generate the timing paths for the SRAM output.
"""
#Make exclusions dependent on the bit being tested.
self.sram.clear_exclude_bits() # Removes previous bit exclusions
self.sram.graph_exclude_bits(self.wordline_row, self.bitline_column)
port=0 #FIXME, port_data requires a port specification, assuming single port for now
port=self.read_ports[0] #FIXME, port_data requires a port specification, assuming single port for now
if self.words_per_row > 1:
self.sram.graph_clear_column_mux(port)
self.sram.graph_exclude_column_mux(self.bitline_column, port)

View File

@ -296,12 +296,12 @@ class global_bitcell_array(bitcell_base_array.bitcell_base_array):
# We must also translate the global array column number to the local array column number
local_col = targ_col - self.col_offsets[i - 1]
for mod in self.local_mods:
for mod, inst in zip(self.local_mods, self.local_insts):
if mod == local_array:
mod.graph_exclude_bits(targ_row, local_col)
else:
# Otherwise, we exclude ALL of the rows/columns
mod.graph_exclude_bits()
# Otherwise, exclude the local array inst
self.graph_inst_exclude.add(inst)
def graph_exclude_replica_col_bits(self):
"""
@ -338,6 +338,7 @@ class global_bitcell_array(bitcell_base_array.bitcell_base_array):
"""
for mod in self.local_mods:
mod.clear_exclude_bits()
self.init_graph_params()
def graph_exclude_dffs(self):
"""Exclude dffs from graph as they do not represent critical path"""