Skip to content

Commit

Permalink
Add logo & shuttle ID as chip art
Browse files Browse the repository at this point in the history
  • Loading branch information
htfab committed Jan 18, 2025
1 parent a01a1b6 commit 9129aaa
Show file tree
Hide file tree
Showing 9 changed files with 58 additions and 3 deletions.
2 changes: 2 additions & 0 deletions cfg/sky130.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -106,3 +106,5 @@ tt:
9: 1192120
10: 976120
11: 760120
logo:
size: 100000
4 changes: 3 additions & 1 deletion formal/tt_connectivity.sby
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@ smtbmc

[script]
read -noverific
read -sv tt_formal.v tt_top.v tt_mux.v tt_ctrl.v tt_prim_buf.v tt_prim_dfrbp.v tt_prim_diode.v tt_prim_inv.v tt_prim_mux2.v tt_prim_mux4.v tt_prim_tbuf_pol.v tt_prim_tbuf.v tt_prim_tie.v tt_prim_zbuf.v tt_um_formal.v tt_user_module_connectivity.v
read -sv -noblackbox tt_formal.v tt_top.v tt_mux.v tt_ctrl.v tt_logo_top.v tt_logo_bottom.v tt_prim_buf.v tt_prim_dfrbp.v tt_prim_diode.v tt_prim_inv.v tt_prim_mux2.v tt_prim_mux4.v tt_prim_tbuf_pol.v tt_prim_tbuf.v tt_prim_tie.v tt_prim_zbuf.v tt_um_formal.v tt_user_module_connectivity.v

# convert tribuf to logic
prep -top tt_formal; flatten; tribuf -logic
Expand All @@ -19,6 +19,8 @@ tt_formal.v
../rtl/tt_top.v
../rtl/tt_mux.v
../rtl/tt_ctrl.v
../rtl/tt_logo_top.v
../rtl/tt_logo_bottom.v
../rtl/prim_generic/tt_prim_buf.v
../rtl/prim_generic/tt_prim_dfrbp.v
../rtl/prim_generic/tt_prim_diode.v
Expand Down
4 changes: 3 additions & 1 deletion formal/tt_tristate.sby
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@ depth 10
smtbmc

[script]
read -sv -noblackbox tt_top.v tt_mux.v tt_ctrl.v tt_prim_buf.v tt_prim_dfrbp.v tt_prim_diode.v tt_prim_inv.v tt_prim_mux2.v tt_prim_mux4.v tt_prim_tbuf_pol.v tt_prim_tbuf.v tt_prim_tie.v tt_prim_zbuf.v tt_um_test.v tt_user_module_tristate.v
read -sv -noblackbox tt_top.v tt_mux.v tt_ctrl.v tt_logo_top.v tt_logo_bottom.v tt_prim_buf.v tt_prim_dfrbp.v tt_prim_diode.v tt_prim_inv.v tt_prim_mux2.v tt_prim_mux4.v tt_prim_tbuf_pol.v tt_prim_tbuf.v tt_prim_tie.v tt_prim_zbuf.v tt_um_test.v tt_user_module_tristate.v

prep -top tt_top

Expand All @@ -19,6 +19,8 @@ flatten; tribuf -formal
../rtl/tt_top.v
../rtl/tt_mux.v
../rtl/tt_ctrl.v
../rtl/tt_logo_top.v
../rtl/tt_logo_bottom.v
../rtl/prim_generic/tt_prim_buf.v
../rtl/prim_generic/tt_prim_dfrbp.v
../rtl/prim_generic/tt_prim_diode.v
Expand Down
3 changes: 2 additions & 1 deletion ol2/tt_top/build.py
Original file line number Diff line number Diff line change
Expand Up @@ -129,7 +129,7 @@ class TopFlow(SequentialFlow):
}
if m.mod_name.startswith('tt_um_'):
user_modules.append(m.mod_name)
elif m.mod_name.startswith('tt_pg_') or m.mod_name.startswith('tt_asw_'):
elif m.mod_name.startswith('tt_pg_') or m.mod_name.startswith('tt_asw_') or m.mod_name.startswith('tt_logo_'):
macros[m.mod_name].update({
'nl': f'dir::verilog/{m.mod_name:s}.v',
})
Expand Down Expand Up @@ -229,6 +229,7 @@ class TopFlow(SequentialFlow):
# LVS
"MAGIC_DEF_LABELS" : False,
"MAGIC_EXT_SHORT_RESISTOR" : True, # Fixes LVS failures when more than two pins are connected to the same net
"LVS_FLATTEN_CELLS": ["tt_logo_top", "tt_logo_bottom"],
}

# Update PDN config
Expand Down
21 changes: 21 additions & 0 deletions py/tt/elements.py
Original file line number Diff line number Diff line change
Expand Up @@ -528,6 +528,20 @@ def _render(self, dwg):
))


class Logo(LayoutElement):

def __init__(self, layout, variant):
# Set mod_name
self.mod_name = f'tt_logo_{variant:s}'

# Super
super().__init__(
layout,
layout.glb.logo.width,
layout.glb.logo.height,
)


class Top(LayoutElement):
"""
Top level grid aligned area containing all TT elements
Expand Down Expand Up @@ -592,6 +606,13 @@ def __init__(self, layout, placer):

self.add_child(ctrl, Point(ctrl_x, ctrl_y), 'N', name='ctrl_I')

# Add Logo & Shuttle ID
logo_top = Logo(layout, 'top')
self.add_child(logo_top, Point(layout.glb.logo.pos_x, layout.glb.logo.top_pos_y), 'N', name='logo_top_I')

logo_bottom = Logo(layout, 'bottom')
self.add_child(logo_bottom, Point(layout.glb.logo.pos_x, layout.glb.logo.bottom_pos_y), 'N', name='logo_bottom_I')


class Die(LayoutElement):
"""
Expand Down
9 changes: 9 additions & 0 deletions py/tt/layout.py
Original file line number Diff line number Diff line change
Expand Up @@ -74,6 +74,7 @@ def global_layout(self):
glb.ctrl = ConfigNode()
glb.pg_vdd = ConfigNode()
glb.pg_vaa = ConfigNode()
glb.logo = ConfigNode()

# Size of the various busses
self.vspine = ConfigNode({
Expand Down Expand Up @@ -164,6 +165,14 @@ def global_layout(self):
glb.pg_vaa.width = self.cfg.pdk.pwrgate.vaa.width
glb.pg_vaa.offset = self._align_x(glb.pg_vaa.width, ceil=True) + glb.margin.x

# Logo & Shuttle ID
glb.logo.width = self.cfg.tt.logo.size
glb.logo.height = self.cfg.tt.logo.size
glb.logo.pos_x = (glb.top.width - glb.logo.width) // 2
glb.logo.top_pos_y = glb.top.height - glb.logo.height - glb.margin.y
glb.logo.bottom_pos_y = glb.margin.y


def _ply_len(self, ply):
return sum([x[1] or 1 for x in block_ply])

Expand Down
4 changes: 4 additions & 0 deletions rtl/tt_logo_bottom.v
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
`default_nettype none

module tt_logo_bottom ();
endmodule
4 changes: 4 additions & 0 deletions rtl/tt_logo_top.v
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
`default_nettype none

module tt_logo_top ();
endmodule
10 changes: 10 additions & 0 deletions rtl/tt_top.v
Original file line number Diff line number Diff line change
Expand Up @@ -277,4 +277,14 @@ module tt_top #(
end
end


// Logo & Shuttle ID
// -----------------

(* blackbox, keep *)
tt_logo_top logo_top_I ();

(* blackbox, keep *)
tt_logo_bottom logo_bottom_I ();

endmodule // tt_top

0 comments on commit 9129aaa

Please sign in to comment.