mirror of https://github.com/VLSIDA/OpenRAM.git
Use rx of last pdriver instance after placing instances
This commit is contained in:
parent
614aa54f17
commit
6f32bac1a2
|
|
@ -443,8 +443,9 @@ class control_logic(design.design):
|
||||||
# Connect this at the bottom of the buffer
|
# Connect this at the bottom of the buffer
|
||||||
out_pos = self.clk_buf_inst.get_pin("Z").center()
|
out_pos = self.clk_buf_inst.get_pin("Z").center()
|
||||||
mid1 = vector(out_pos.x,2*self.m2_pitch)
|
mid1 = vector(out_pos.x,2*self.m2_pitch)
|
||||||
bus_pos = vector(self.rail_offsets["clk_buf"].x, mid1.y)
|
mid2 = vector(self.rail_offsets["clk_buf"].x, mid1.y)
|
||||||
self.add_wire(("metal3","via2","metal2"),[out_pos, mid1, bus_pos])
|
bus_pos = self.rail_offsets["clk_buf"]
|
||||||
|
self.add_wire(("metal3","via2","metal2"),[out_pos, mid1, mid2, bus_pos])
|
||||||
# The pin is on M1, so we need another via as well
|
# The pin is on M1, so we need another via as well
|
||||||
self.add_via_center(layers=("metal1","via1","metal2"),
|
self.add_via_center(layers=("metal1","via1","metal2"),
|
||||||
offset=self.clk_buf_inst.get_pin("Z").center())
|
offset=self.clk_buf_inst.get_pin("Z").center())
|
||||||
|
|
|
||||||
|
|
@ -100,13 +100,13 @@ class pdriver(pgate.pgate):
|
||||||
self.create_insts()
|
self.create_insts()
|
||||||
|
|
||||||
def create_layout(self):
|
def create_layout(self):
|
||||||
self.width = self.inv_inst_list[-1].rx()
|
|
||||||
self.height = self.inv_inst_list[0].height
|
|
||||||
|
|
||||||
self.place_modules()
|
self.place_modules()
|
||||||
self.route_wires()
|
self.route_wires()
|
||||||
self.add_layout_pins()
|
self.add_layout_pins()
|
||||||
|
|
||||||
|
self.width = self.inv_inst_list[-1].rx()
|
||||||
|
self.height = self.inv_inst_list[0].height
|
||||||
|
|
||||||
self.DRC_LVS()
|
self.DRC_LVS()
|
||||||
|
|
||||||
def add_pins(self):
|
def add_pins(self):
|
||||||
|
|
@ -153,10 +153,10 @@ class pdriver(pgate.pgate):
|
||||||
|
|
||||||
|
|
||||||
def place_modules(self):
|
def place_modules(self):
|
||||||
# Add INV1 to the left
|
# Add the first inverter at the origin
|
||||||
self.inv_inst_list[0].place(vector(0,0))
|
self.inv_inst_list[0].place(vector(0,0))
|
||||||
|
|
||||||
# Add inverters to the right of INV1
|
# Add inverters to the right of the previous inverter
|
||||||
for x in range(1,len(self.inv_inst_list)):
|
for x in range(1,len(self.inv_inst_list)):
|
||||||
self.inv_inst_list[x].place(vector(self.inv_inst_list[x-1].rx(),0))
|
self.inv_inst_list[x].place(vector(self.inv_inst_list[x-1].rx(),0))
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue