mirror of
https://github.com/VLSIDA/OpenRAM.git
synced 2026-08-30 01:48:33 +02:00
Fixed write_size checks for None
This commit is contained in:
@@ -38,7 +38,7 @@ class write_driver_array(design):
|
||||
else:
|
||||
self.num_spare_cols = num_spare_cols
|
||||
|
||||
if self.write_size:
|
||||
if self.write_size != self.word_size:
|
||||
self.num_wmasks = int(math.ceil(self.word_size / self.write_size))
|
||||
|
||||
self.create_netlist()
|
||||
@@ -82,10 +82,10 @@ class write_driver_array(design):
|
||||
for i in range(self.word_size + self.num_spare_cols):
|
||||
self.add_pin(self.get_bl_name() + "_{0}".format(i), "OUTPUT")
|
||||
self.add_pin(self.get_br_name() + "_{0}".format(i), "OUTPUT")
|
||||
if self.write_size:
|
||||
if self.write_size != self.word_size:
|
||||
for i in range(self.num_wmasks + self.num_spare_cols):
|
||||
self.add_pin(self.en_name + "_{0}".format(i), "INPUT")
|
||||
elif self.num_spare_cols and not self.write_size:
|
||||
elif self.num_spare_cols and self.write_size == self.word_size:
|
||||
for i in range(self.num_spare_cols + 1):
|
||||
self.add_pin(self.en_name + "_{0}".format(i), "INPUT")
|
||||
else:
|
||||
@@ -110,7 +110,7 @@ class write_driver_array(design):
|
||||
self.local_insts.append(self.add_inst(name=name,
|
||||
mod=self.driver))
|
||||
|
||||
if self.write_size:
|
||||
if self.write_size != self.word_size:
|
||||
self.connect_inst([self.data_name + "_{0}".format(index),
|
||||
self.get_bl_name() + "_{0}".format(index),
|
||||
self.get_br_name() + "_{0}".format(index),
|
||||
@@ -121,7 +121,7 @@ class write_driver_array(design):
|
||||
w = 0
|
||||
windex+=1
|
||||
|
||||
elif self.num_spare_cols and not self.write_size:
|
||||
elif self.num_spare_cols and self.write_size == self.word_size:
|
||||
self.connect_inst([self.data_name + "_{0}".format(index),
|
||||
self.get_bl_name() + "_{0}".format(index),
|
||||
self.get_br_name() + "_{0}".format(index),
|
||||
@@ -135,7 +135,7 @@ class write_driver_array(design):
|
||||
|
||||
for i in range(self.num_spare_cols):
|
||||
index = self.word_size + i
|
||||
if self.write_size:
|
||||
if self.write_size != self.word_size:
|
||||
offset = self.num_wmasks
|
||||
else:
|
||||
offset = 1
|
||||
@@ -205,7 +205,7 @@ class write_driver_array(design):
|
||||
width=br_pin.width(),
|
||||
height=br_pin.height())
|
||||
|
||||
if self.write_size:
|
||||
if self.write_size != self.word_size:
|
||||
for bit in range(self.num_wmasks):
|
||||
inst = self.local_insts[bit * self.write_size]
|
||||
en_pin = inst.get_pin(inst.mod.en_name)
|
||||
@@ -229,7 +229,7 @@ class write_driver_array(design):
|
||||
layer="m1",
|
||||
offset=en_pin.lr() + vector(-drc("minwidth_m1"),0))
|
||||
|
||||
elif self.num_spare_cols and not self.write_size:
|
||||
elif self.num_spare_cols and self.write_size == self.word_size:
|
||||
# shorten enable rail to accomodate those for spare write drivers
|
||||
left_inst = self.local_insts[0]
|
||||
left_en_pin = left_inst.get_pin(inst.mod.en_name)
|
||||
|
||||
Reference in New Issue
Block a user