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
|
# OpenRAM
|
||||||
Stable: [](https://github.com/VLSIDA/PrivateRAM/commits/master)
|
Master: [](https://github.com/VLSIDA/PrivateRAM/commits/master)
|
||||||
Unstable: [](https://github.com/VLSIDA/PrivateRAM/commits/dev)
|
Dev: [](https://github.com/VLSIDA/PrivateRAM/commits/dev)
|
||||||
[](https://github.com/VLSIDA/PrivateRAM/archive/master.zip)
|
[](https://github.com/VLSIDA/PrivateRAM/archive/master.zip)
|
||||||
[](./LICENSE)
|
[](./LICENSE)
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -66,7 +66,6 @@ class bank(design.design):
|
||||||
|
|
||||||
self.DRC_LVS()
|
self.DRC_LVS()
|
||||||
|
|
||||||
|
|
||||||
def add_pins(self):
|
def add_pins(self):
|
||||||
""" Adding pins for Bank module"""
|
""" Adding pins for Bank module"""
|
||||||
for port in self.read_ports:
|
for port in self.read_ports:
|
||||||
|
|
|
||||||
|
|
@ -73,9 +73,10 @@ class sram_1bank(sram_base):
|
||||||
self.control_logic_insts[port].place(control_pos[port])
|
self.control_logic_insts[port].place(control_pos[port])
|
||||||
|
|
||||||
# The row address bits are placed above the control logic aligned on the right.
|
# 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.
|
x_offset = self.control_logic_insts[port].rx() - self.row_addr_dff_insts[port].width
|
||||||
row_addr_pos[port] = vector(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
|
||||||
max(self.control_logic_insts[port].uy(), self.bank_inst.ul().y - self.row_addr_dff_insts[port].height))
|
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])
|
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
|
# 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")
|
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.
|
# 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.
|
x_offset = control_pos[port].x - self.control_logic_insts[port].width + self.row_addr_dff_insts[port].width
|
||||||
row_addr_pos[port] = vector(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
|
||||||
max(self.control_logic_insts[port].uy(), self.bank_inst.ul().y - self.row_addr_dff_insts[port].height))
|
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")
|
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
|
# Add the col address flops above the bank to the right of the upper-right of bank array
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue