mirror of https://github.com/VLSIDA/OpenRAM.git
Fix metal4 rules in FreePDK45. Multiport still needs updating.
This commit is contained in:
parent
3f2b7b837d
commit
823cb04b80
|
|
@ -109,7 +109,7 @@ class multibank(design.design):
|
|||
if self.num_banks > 1:
|
||||
self.route_bank_select()
|
||||
|
||||
self.route_vdd_gnd()
|
||||
self.route_supplies()
|
||||
|
||||
def add_modules(self):
|
||||
""" Add modules. The order should not matter! """
|
||||
|
|
@ -440,33 +440,11 @@ class multibank(design.design):
|
|||
temp.extend(["vdd", "gnd"])
|
||||
self.connect_inst(temp)
|
||||
|
||||
def route_vdd_gnd(self):
|
||||
def route_supplies(self):
|
||||
""" Propagate all vdd/gnd pins up to this level for all modules """
|
||||
|
||||
# These are the instances that every bank has
|
||||
top_instances = [self.bitcell_array_inst,
|
||||
self.precharge_array_inst,
|
||||
self.sense_amp_array_inst,
|
||||
self.write_driver_array_inst,
|
||||
# self.tri_gate_array_inst,
|
||||
self.row_decoder_inst,
|
||||
self.wordline_driver_inst]
|
||||
# Add these if we use the part...
|
||||
if self.col_addr_size > 0:
|
||||
top_instances.append(self.col_decoder_inst)
|
||||
top_instances.append(self.col_mux_array_inst)
|
||||
|
||||
if self.num_banks > 1:
|
||||
top_instances.append(self.bank_select_inst)
|
||||
|
||||
|
||||
for inst in top_instances:
|
||||
# Column mux has no vdd
|
||||
if self.col_addr_size==0 or (self.col_addr_size>0 and inst != self.col_mux_array_inst):
|
||||
self.copy_layout_pin(inst, "vdd")
|
||||
# Precharge has no gnd
|
||||
if inst != self.precharge_array_inst:
|
||||
self.copy_layout_pin(inst, "gnd")
|
||||
for inst in self.insts:
|
||||
self.copy_power_pins(inst,"vdd")
|
||||
self.copy_power_pins(inst,"gnd")
|
||||
|
||||
def route_bank_select(self):
|
||||
""" Route the bank select logic. """
|
||||
|
|
|
|||
|
|
@ -209,22 +209,18 @@ drc["metal3_enclosure_via3"] = 0
|
|||
drc["minarea_metal3"] = 0
|
||||
|
||||
# VIA2-3.1 Minimum width of Via[2-3]
|
||||
drc["minwidth_via3"] = 0.065
|
||||
drc["minwidth_via3"] = 0.07
|
||||
# VIA2-3.2 Minimum spacing of Via[2-3]
|
||||
drc["via3_to_via3"] = 0.07
|
||||
drc["via3_to_via3"] = 0.085
|
||||
|
||||
# METALSMG.1 Minimum width of semi-global metal
|
||||
drc["minwidth_metal4"] = 0.14
|
||||
# METALSMG.2 Minimum spacing of semi-global metal
|
||||
drc["metal4_to_metal4"] = 0.14
|
||||
# METALSMG.3 Minimum enclosure around via[3-6] on two opposite sides
|
||||
drc["metal4_extend_via3"] = 0.07
|
||||
drc["metal4_extend_via3"] = 0.0025
|
||||
# Reserved for asymmetric enclosure
|
||||
drc["metal4_enclosure_via3"] = 0
|
||||
# METALSMG.3 Minimum enclosure around via[3-6] on two opposite sides
|
||||
drc["metal4_extend_via4"] = 0.07
|
||||
# Reserved for asymmetric enclosure
|
||||
drc["metal4_enclosure_via4"] = 0
|
||||
drc["metal4_enclosure_via3"] = 0.0025
|
||||
# Not a rule
|
||||
drc["minarea_metal4"] = 0
|
||||
|
||||
|
|
|
|||
Loading…
Reference in New Issue