mirror of https://github.com/VLSIDA/OpenRAM.git
Use array ur instead of bank ur to pace row addr dff
This commit is contained in:
parent
7709d5caa7
commit
4630f52de2
|
|
@ -1,6 +1,6 @@
|
|||
# OpenRAM
|
||||
Stable: [](https://github.com/VLSIDA/PrivateRAM/commits/master)
|
||||
Unstable: [](https://github.com/VLSIDA/PrivateRAM/commits/dev)
|
||||
Master: [](https://github.com/VLSIDA/PrivateRAM/commits/master)
|
||||
Dev: [](https://github.com/VLSIDA/PrivateRAM/commits/dev)
|
||||
[](https://github.com/VLSIDA/PrivateRAM/archive/master.zip)
|
||||
[](./LICENSE)
|
||||
|
||||
|
|
|
|||
|
|
@ -65,8 +65,7 @@ class bank(design.design):
|
|||
self.bank_array_ur = self.bitcell_array_inst.ur()
|
||||
|
||||
self.DRC_LVS()
|
||||
|
||||
|
||||
|
||||
def add_pins(self):
|
||||
""" Adding pins for Bank module"""
|
||||
for port in self.read_ports:
|
||||
|
|
|
|||
|
|
@ -73,9 +73,10 @@ class sram_1bank(sram_base):
|
|||
self.control_logic_insts[port].place(control_pos[port])
|
||||
|
||||
# The row address bits are placed above the control logic aligned on the right.
|
||||
# Or just below the top of the bank, whichever is greater.
|
||||
row_addr_pos[port] = vector(self.control_logic_insts[port].rx() - self.row_addr_dff_insts[port].width,
|
||||
max(self.control_logic_insts[port].uy(), self.bank_inst.ul().y - self.row_addr_dff_insts[port].height))
|
||||
x_offset = self.control_logic_insts[port].rx() - self.row_addr_dff_insts[port].width
|
||||
# It is aove the control logic but below the top of the bitcell array
|
||||
y_offset = max(self.control_logic_insts[port].uy(), self.bank.bank_array_ur.y - self.row_addr_dff_insts[port].height)
|
||||
row_addr_pos[port] = vector(x_offset, y_offset)
|
||||
self.row_addr_dff_insts[port].place(row_addr_pos[port])
|
||||
|
||||
# Add the col address flops below the bank to the left of the lower-left of bank array
|
||||
|
|
@ -104,9 +105,10 @@ class sram_1bank(sram_base):
|
|||
self.control_logic_insts[port].place(control_pos[port], mirror="MY")
|
||||
|
||||
# The row address bits are placed above the control logic aligned on the left.
|
||||
# Or just below the top of the bank, whichever is greater.
|
||||
row_addr_pos[port] = vector(control_pos[port].x - self.control_logic_insts[port].width + self.row_addr_dff_insts[port].width,
|
||||
max(self.control_logic_insts[port].uy(), self.bank_inst.ul().y - self.row_addr_dff_insts[port].height))
|
||||
x_offset = control_pos[port].x - self.control_logic_insts[port].width + self.row_addr_dff_insts[port].width
|
||||
# It is above the control logic but below the top of the bitcell array
|
||||
y_offset = max(self.control_logic_insts[port].uy(), self.bank.bank_array_ur.y - self.row_addr_dff_insts[port].height)
|
||||
row_addr_pos[port] = vector(x_offset, y_offset)
|
||||
self.row_addr_dff_insts[port].place(row_addr_pos[port], mirror="MY")
|
||||
|
||||
# Add the col address flops above the bank to the right of the upper-right of bank array
|
||||
|
|
|
|||
Loading…
Reference in New Issue