mirror of
https://github.com/VLSIDA/OpenRAM.git
synced 2026-08-30 01:48:33 +02:00
Begin implementing a write mask layout as the port data level.
This commit is contained in:
@@ -95,6 +95,7 @@ class write_driver_array(design.design):
|
||||
"br_{0}".format(index),
|
||||
"en_{0}".format(windex), "vdd", "gnd"])
|
||||
w+=1
|
||||
# when w equals write size, the next en pin can be connected since we are now at the next wmask bit
|
||||
if w == self.write_size:
|
||||
w = 0
|
||||
windex+=1
|
||||
@@ -149,12 +150,19 @@ class write_driver_array(design.design):
|
||||
self.add_layout_pin_rect_center(text=n,
|
||||
layer="metal3",
|
||||
offset=pin_pos)
|
||||
|
||||
self.add_layout_pin(text="en",
|
||||
layer="metal1",
|
||||
offset=self.driver_insts[0].get_pin("en").ll().scale(0,1),
|
||||
width=self.width,
|
||||
height=drc('minwidth_metal1'))
|
||||
if self.write_size is not None:
|
||||
for bit in range(self.num_wmasks):
|
||||
self.add_layout_pin(text="en_{}".format(bit),
|
||||
layer="metal1",
|
||||
offset=self.driver_insts[bit*(self.write_size-1)].get_pin("en").ll().scale(0,1),
|
||||
width=self.width,
|
||||
height=drc('minwidth_metal1'))
|
||||
else:
|
||||
self.add_layout_pin(text="en",
|
||||
layer="metal1",
|
||||
offset=self.driver_insts[0].get_pin("en").ll().scale(0,1),
|
||||
width=self.width,
|
||||
height=drc('minwidth_metal1'))
|
||||
|
||||
|
||||
|
||||
|
||||
Reference in New Issue
Block a user