Skip to content

Commit

Permalink
feat(docs): update for tt05 (WiP)
Browse files Browse the repository at this point in the history
  • Loading branch information
urish committed Nov 9, 2023
1 parent 98e7cb2 commit a31ae37
Show file tree
Hide file tree
Showing 5 changed files with 63 additions and 102 deletions.
1 change: 1 addition & 0 deletions configure.py
Original file line number Diff line number Diff line change
Expand Up @@ -353,4 +353,5 @@ def count_items(lst: List[str]):
docs.dump_markdown()

if args.build_hugo_content:
shuttle.configure_mux()
docs.build_hugo_content()
84 changes: 11 additions & 73 deletions docs/hugo_index_template.md
Original file line number Diff line number Diff line change
@@ -1,84 +1,22 @@
---
title: "Tiny Tapeout 03"
weight: 20
description: 249 designs, closed 24th April 2023
title: "Tiny Tapeout 05"
weight: 50
description: 174 designs, closed 4th November 2023
---

{{% toc %}}

# Design details

* [Github repository](https://github.com/TinyTapeout/tinytapeout-03)
* [PDF datasheet](https://github.com/TinyTapeout/tinytapeout-03/raw/main/datasheet.pdf)
* [Verification](https://github.com/TinyTapeout/tinytapeout-03/blob/main/VERIFICATION.md)
* [Efabless MPW submission](https://platform.efabless.com/projects/1971)
* [Github repository](https://github.com/TinyTapeout/tinytapeout-05)
* [PDF datasheet](https://tinytapeout.github.io/tinytapeout-05/datasheet.pdf)
* [Efabless MPW submission](https://repositories.efabless.com/urish/tinytapeout-05)
* [Shuttle index (JSON)](https://tinytapeout.github.io/tinytapeout-05/shuttle_index.json)

# Launch stats

* Launched: 1 March 2023
* Submission closed: 24 April 2023
* Submitted to Efabless 2304C chipIgnite shuttle using Skywater 130nm open source PDK

# Project statistics

* 100 projects submitted, 149 projects added from [TT02](/runs/tt02)
* build time for all projects 22.68 hours
* total cells 79674
* max cells 1287 for [project 072](./072)
* max utilisation 59.95% for [project 044](./044)
* total wire length 4079 mm
* 94 used Wokwi, 135 Verilog, 1 myhdl, 7 Amaranth, spade 1, xls 2, migen 1, systemverilog 3, mixed radix circuit synthesis (mrcs) 1, chisel 1.
* top 10 tags:
- test : 21
- experiment: 6
- cpu : 6
- timer : 5
- risc : 5
- game : 4
- pwm : 4
- music : 4
- counter : 4

# Whole die render

![whole die](images/tinytapeout-03.png)

# Project Showcase

* [12 bit PDP8](./019)
* [Prime detector](./031)
* [Pulse density modulators](./033)
* [Most of the Sky130 cells](./045)
* [Synthesizable Digital Temperature Sensor](./047)
* [Neptune guitar tuner](./052)
* [MSF clock](./066)
* [Ring oscillator temperature sensor](./058)
* [Locked QTCore-A1](./072)

# Testimonials / Endorsements

Awesome! Sent my design to #TinyTapeout ! Emotion! Thanks
@matthewvenn , @marunmagesh and crew, for making it possible!

---

#tinytapeout 3 submission is in! I'm very thankful to be a part of such an amazing project, even if my project is small.

---

Just to take moment, thank you! I didn't think I would ever get to do something like this, especially with so little cost or pressure.
For context, at work, I was testing an ASIC a supplier designed for us, and that was quite the opposite of both of these.

---

Hurray, also made a last minute submission, haven't felt that rush since my last university homework submission deadline... Great that a chip design can be done on a weekend, looking forward to getting all the other designs, and thanks everybody who contributed to the platform, it is really easy to use!

---

I just submitted a last minute project to tt03, wanted to drop by and say kudos for all the resources and the project in general!

I've never done any hardware before (just software), but after reading the updated Code by Petzold earlier in the year and listening to an interview with Jim Keller I had my interest peeked to look at whats going on in the layers I usually take for granted. Really cool to find something like tiny tapeout, nice motivating to actually install some of the tools and give it a try.

---
More on [Twitter](https://twitter.com/search?q=tinytapeout).
* Launched: 11 September 2023
* Submission closed: 4 November 2023
* Submitted to Efabless [2311C chipIgnite](https://efabless.com/shuttle-status) shuttle using Skywater 130nm open source PDK
* Chips expected April 2024, PCBs expected June 2024

26 changes: 13 additions & 13 deletions docs/hugo_template.md
Original file line number Diff line number Diff line change
@@ -1,15 +1,15 @@
---
hidden: true
title: "{index} {title}"
title: "{mux_address} {title}"
weight: {weight}
---

## {index} : {title}
## {mux_address} : {title}

* Author: {author}
* Description: {description}
* [GitHub repository]({git_url})
* [Most recent GDS build]({git_action})
* [GDS submitted]({git_action})
* {project_type} project
* [Extra docs]({doc_link})
* Clock: {clock_hz} Hz
Expand All @@ -27,13 +27,13 @@ weight: {weight}

### IO

| # | Input | Output |
|---|--------------|--------------|
| 0 | {inputs[0]} | {outputs[0]} |
| 1 | {inputs[1]} | {outputs[1]} |
| 2 | {inputs[2]} | {outputs[2]} |
| 3 | {inputs[3]} | {outputs[3]} |
| 4 | {inputs[4]} | {outputs[4]} |
| 5 | {inputs[5]} | {outputs[5]} |
| 6 | {inputs[6]} | {outputs[6]} |
| 7 | {inputs[7]} | {outputs[7]} |
| # | Input | Output | Bidirectional |
|---|--------------|--------------| -------------------|
| 0 | {inputs[0]} | {outputs[0]} | {bidirectional[0]} |
| 1 | {inputs[1]} | {outputs[1]} | {bidirectional[1]} |
| 2 | {inputs[2]} | {outputs[2]} | {bidirectional[2]} |
| 3 | {inputs[3]} | {outputs[3]} | {bidirectional[3]} |
| 4 | {inputs[4]} | {outputs[4]} | {bidirectional[4]} |
| 5 | {inputs[5]} | {outputs[5]} | {bidirectional[5]} |
| 6 | {inputs[6]} | {outputs[6]} | {bidirectional[6]} |
| 7 | {inputs[7]} | {outputs[7]} | {bidirectional[7]} |
44 changes: 30 additions & 14 deletions documentation.py
Original file line number Diff line number Diff line change
Expand Up @@ -155,7 +155,7 @@ def dump_markdown(self):
if p.returncode != 0:
logging.error("pdf command failed")

def build_hugo_content(self):
def build_hugo_content(self) -> None:
hugo_root = self.args.build_hugo_content
hugo_images = os.path.join(hugo_root, "images")
shutil.rmtree(hugo_root)
Expand All @@ -171,46 +171,62 @@ def build_hugo_content(self):
index_template = fh.read()

# copy image
shutil.copyfile(
"pics/tinytapeout_numbered.png",
os.path.join(hugo_images, "tinytapeout-03.png"),
) # TODO fix hardcoded run
# TODO, need to get image from somewhere
# shutil.copyfile(
# "tt/docs/pics/tinytapeout_numbered.png",
# os.path.join(hugo_images, f'tinytapeout-{self.config["id"]}.png'),
# )

# index page
logging.info(
"building pages - can take a minute as fetching latest GDS action URLs for all projects"
)
logging.info("building pages")
with open(os.path.join(hugo_root, "_index.md"), "w") as fh:
fh.write(index_template)
fh.write("# All projects\n")
fh.write("| Index | Title | Author |\n")
fh.write("| ----- | ----- | -------|\n")
self.projects.sort(key=lambda x: x.mux_address)
for project in self.projects:
logging.info(project)
fh.write(project.get_hugo_row())

project_dir = os.path.join(hugo_root, f"{project.get_index() :03}")
project_dir = os.path.join(hugo_root, f"{project.mux_address :03}")
project_image_dir = os.path.join(project_dir, "images")
os.makedirs(project_dir)
os.makedirs(project_image_dir)
yaml_data = project.get_project_doc_yaml()
yaml_data["mux_address"] = project.mux_address
if '""' in yaml_data["title"]:
yaml_data["title"] = yaml_data["title"].replace('""', "")

yaml_data["index"] = project.index
yaml_data["weight"] = project.index + 1
yaml_data["git_action"] = project.get_latest_action_url()
yaml_data["git_action"] = project.get_workflow_url_when_submitted()
for key in "external_hw", "clock_hz":
if key not in yaml_data:
yaml_data[key] = ""

# many people remove unused pins in input / output / bidirectional
for key in ["inputs", "outputs", "bidirectional"]:
yaml_data[key].extend((8 - len(yaml_data[key])) * ["n/a"])

yaml_data["picture_link"] = ""
if yaml_data["picture"]:
picture_name = yaml_data["picture"]
picture_filename = os.path.join(project.local_dir, picture_name)
picture_basename = os.path.basename(picture_filename)
extension = os.path.splitext(yaml_data["picture"])[1]
picture_path = os.path.join(
project.local_dir, f"picture{extension}"
)
picture_basename = os.path.basename(picture_path)
try:
shutil.copyfile(
picture_filename,
picture_path,
os.path.join(project_image_dir, picture_basename),
)
yaml_data[
"picture_link"
] = f"![picture](images/{picture_basename})"
logging.warning(f"picture found {picture_path}")
except FileNotFoundError:
logging.warning(f"picture not found {picture_path}")
yaml_data["picture_link"] = "Image path is broken"
doc = doc_template.format(**yaml_data)
with open(os.path.join(project_dir, "_index.md"), "w") as pfh:
Expand Down
10 changes: 8 additions & 2 deletions project.py
Original file line number Diff line number Diff line change
Expand Up @@ -215,8 +215,8 @@ def get_hdl_source(self):
def get_yaml(self):
return self.yaml

def get_hugo_row(self):
return f'| {self.index} | [{self.yaml["documentation"]["title"]}]({self.index :03}) | {self.yaml["documentation"]["author"]}|\n'
def get_hugo_row(self) -> str:
return f'| {self.mux_address} | [{self.yaml["documentation"]["title"]}]({self.mux_address :03}) | {self.yaml["documentation"]["author"]}|\n'

# docs stuff for index on README.md
def get_index_row(self):
Expand Down Expand Up @@ -275,6 +275,12 @@ def get_tt_tools_version(self):
repo = Repo(os.path.join(self.local_dir, "tt"))
return f"{repo.active_branch.name} {repo.commit().hexsha[:8]}"

def get_workflow_url_when_submitted(self):
json_file = os.path.join(self.local_dir, "commit_id.json")
with open(json_file) as fh:
commit_info = json.load(fh)
return commit_info["workflow_url"]

def get_workflow_url(self):
GITHUB_SERVER_URL = os.getenv("GITHUB_SERVER_URL")
GITHUB_REPOSITORY = os.getenv("GITHUB_REPOSITORY")
Expand Down

0 comments on commit a31ae37

Please sign in to comment.