Fix routing clk connections of dff arrays

This commit is contained in:
Matt Guthaus
2018-07-18 11:38:58 -07:00
parent 0701fceb0b
commit f43d4cc98f
3 changed files with 107 additions and 140 deletions
+9 -11
View File
@@ -132,22 +132,20 @@ class dff_array(design.design):
width=self.m2_width,
height=self.height)
else:
self.add_layout_pin(text="clk",
layer="metal3",
offset=vector(0,self.m3_pitch),
width=self.width,
height=self.m3_width)
self.add_layout_pin_segment_center(text="clk",
layer="metal3",
start=vector(0,self.m3_pitch+self.m3_width),
end=vector(self.width,self.m3_pitch+self.m3_width))
for col in range(self.columns):
clk_pin = self.dff_insts[0,col].get_pin("clk")
# Make a vertical strip for each column
self.add_layout_pin(text="clk",
layer="metal2",
offset=clk_pin.ll().scale(1,0),
width=self.m2_width,
height=self.height)
self.add_rect(layer="metal2",
offset=clk_pin.ll().scale(1,0),
width=self.m2_width,
height=self.height)
# Drop a via to the M3 pin
self.add_via_center(layers=("metal2","via2","metal3"),
offset=clk_pin.center().scale(1,0))
offset=vector(clk_pin.cx(),self.m3_pitch+self.m3_width))