diff --git a/docs/product/build.py b/docs/product/build.py
index 5402973..fba2230 100644
--- a/docs/product/build.py
+++ b/docs/product/build.py
@@ -111,14 +111,19 @@ def load_config(path: Path) -> dict:
detail = getattr(error, "problem", str(error))
if mark is None:
raise SystemExit(f"{path}: {detail}")
- line = (
- text.splitlines()[mark.line] if mark.line < len(text.splitlines()) else ""
- )
- raise SystemExit(
- f"{path}:{mark.line + 1}: {detail}\n"
- f" {line.strip()}\n"
- ' hint: inside a "quoted" value, HTML quotes must be escaped as \\"'
- )
+ lines = text.splitlines()
+ line = lines[mark.line] if mark.line < len(lines) else ""
+
+ # Only offer a hint that matches the actual failure; a generic one is noise.
+ if "\\t" in detail or line.startswith("\t"):
+ hint = "YAML forbids tabs for indentation — use spaces"
+ elif "expected ',' or ']'" in detail or "'\"'" in detail:
+ hint = 'inside a "quoted" value, HTML quotes must be escaped as \\"'
+ else:
+ hint = None
+
+ report = f"{path}:{mark.line + 1}: {detail}\n {line.strip()}"
+ raise SystemExit(f"{report}\n hint: {hint}" if hint else report)
def walk_strings(node, path: str = ""):
diff --git a/docs/product/datasheet-universities.yaml b/docs/product/datasheet-universities.yaml
index 5df3432..fbd1d0b 100644
--- a/docs/product/datasheet-universities.yaml
+++ b/docs/product/datasheet-universities.yaml
@@ -56,37 +56,36 @@ hero:
photo_caption: ""
features:
- - kicker: 01 · Cohort
+ - kicker: Cohort
title: One board serves many
body: >-
A single demoboard selects any project on the die over USB, so a class
shares hardware instead of buying one board per student.
- - kicker: 02 · IT footprint
- title: Nothing to install
+ - kicker: IT footprint
+ title: No install needed
body: >-
The flow can run in a GitHub Action. Any student laptop with a browser is
enough. A Docker image is available for local development.
- - kicker: 03 · Process
+ - kicker: Process
title: Three PDKs, no NDAs
body: >-
SkyWater SKY130, IHP sg13g2 and GlobalFoundries gf180mcu — 10+ shuttles a
year across the three open-source PDKs.
- - kicker: 04 · I/O
+ - kicker: I/O
title: 26 pins, plus analog
body: >-
Clock, reset, 8 dedicated inputs, 8 dedicated outputs and 8 bidirectional
- pins — plus up to 6 analog pins for mixed signal support.
- - kicker: 05 · Flexibility
+ pins — plus up to 6 analog pins where the process allows.
+ - kicker: Flexibility
title: Use your own EDA tools
body: >-
Any toolchain, commercial or open source, as long as the GDS and LEF can
- be published. Verilog officially supported, VHDL and Chisel by the
- community.
- - kicker: 06 · Curriculum
- title: Teaching material included
+ be published.
+ - kicker: Resources
+ title: Teach it your way
body: >-
- Workshops, a digital design guide, HDL templates and worked testbenches,
- plus open IP to teach from: a RISC-V CPU, an FPGA and an analog FPGA.
+ Bring your own course. Workshops, HDL templates and open IP — a RISC-V
+ CPU, an FPGA and an analog FPGA — are there if you want them.
quotes:
heading: "" # blank keeps the quotes as a band with no heading
@@ -129,8 +128,8 @@ pricing:
footnote: >-
A class of 25, each submitting one design, sharing 5 demoboards for
testing: 25 tiles (€1,750) + 5 boards (€1,500) + postage (5 × €15) = €3,325,
- or €133 a student. Every extra student after that is €70. Orders over
- €10,000 receive 10% off. Price your own cohort at
+ or €133 a student. Every extra student after that is €70. Price your
+ own cohort at
app.tinytapeout.com/calculator,
or email
education@tinytapeout.com
@@ -143,9 +142,9 @@ faq:
- q: How does this fit our academic calendar?
a: >-
Fabrication takes 6–9 months and delivery up to a year, so a design
- submitted in one academic year may return in the next. Universities use it
- to create a bring-up module: students test parts documented by
- their peers, growing lab skills and highlighting the importance of DFT.
+ submitted in one academic year may return in the next. Students can work
+ with the previous year’s submissions in a bring-up module that grows lab
+ skills and demonstrates why documentation matters.
- q: How do we pay?
a: >-
We invoice institutions directly, accept purchase orders and issue
@@ -153,7 +152,7 @@ faq:
available.
- q: Do our students need prior experience?
a: >-
- No. Guides and videos take beginners through creating designs to submission.
+ No. Guides and videos take beginners from first design to submission.
Thousands of past projects are already published to learn from.
- q: Who owns the work?
a: >-