Я сделал тебе готовый старт‑пак - оформили всё по шагам - мемристивная ячейка
MVP на 1 страницу, выбор трека, установка тулчей, и «железный» демо‑кейс (VGA+Audio) под TinyTapeout. В архиве — минимальный RTL, тестбенч, Makefile‑цели и заготовка под Caravel.
Внутри два каталога:
-
tinytapeout_vga_audio/— готовый проект с VGA 640×480@60 Гц (PMOD TinyVGA) + моно‑аудио (Audio PMOD), тестбенч, Makefile и пример конфига для OpenLane 2. -
caravel_bootstrap/— скрипт и файлы, чтобы быстро завести шаблонcaravel_user_projectи вставить простой «юзер‑блок» (счётчик+PWM) для MPW на SKY130/GF180.
1) Мини‑MVP (1 страница)
Цель прототипа. Показать «видимое» поведение собственного кремния на демоплате TT: VGA‑картинка (паттерны) и звук (тон), управляемые DIP‑переключателями (ui_in).
Внешнее поведение.
-
VGA 640×480@60 Гц: цветовые полосы/шахматка/градиент/рамка (выбор по
ui_in[2:0]). -
Моно‑аудио: частота из DDS → PWM на
uio_out[7](шаг поui_in[7:3]). -
При
ena=0— все выходы сброшены (совместимо с мультиплексором TT). Портовая карта и названия соответствуют стандарту TT:
clk, rst_n, ui_in[7:0], uo_out[7:0], uio_in/out/oe[7:0], ena. tinytapeout.com
Интерфейсы/пины (совместимые Pinouts TT).
-
VGA (TinyVGA PMOD):
uo_out[0]=R1, 1=G1, 2=B1, 3=VS, 4=R0, 5=G0, 6=B0, 7=HS. tinytapeout.com -
Audio PMOD:
uio_out[7](стерео: 6=L, 7=R). tinytapeout.com -
Клок/лимиты I/O: клок на
clkот RP2040 демоплаты, 1 Гц…66,5 МГц; макс. частота ввода ~66 МГц, вывода ~33 МГц. tinytapeout.com+1
Критерии успеха.
-
На мониторе виден стабильный 640×480@60 Гц узор, переключаемый DIP.
-
На аудио‑выходе слышна смена тона при изменении
ui_in[7:3]. -
Локальный RTL‑сим и (опц.) OpenLane2 RTL→GDS завершаются без ошибок тайминга/DRC на базовых настройках.
Тест‑процедура.
-
Подключить TinyVGA PMOD и Audio PMOD к демоплате TT; клок из RP2040 выставить ~25 МГц (через Commander App). Tiny Tapeout+1
-
Наблюдать картинку; двигать DIP; слушать тон; при необходимости проверить штатный «factory test» для проверки I/O. tinytapeout.github.io
2) Выбор трека
Рекомендую начать с Трека A — TinyTapeout (быстрый «видимый» успех, готовая демоплата, хороший набор PMOD’ов, стабильная документация и общая пин‑конвенция). tinytapeout.com+1
Параллельно я положил Caravel‑bootstrap (Трек B) — пригодится, если пойдём к более «серьёзному» MPW на SKY130/GF180 с обвязкой, логическим анализатором и пр. Гайды по caravel_user_project и Makefile‑целям прилагаются в README; оф. квикстарт и «make setup» здесь. caravel-user-project.readthedocs.io
3) Окружение OpenLane 2 + PDK
Документация (официально):
-
OpenLane 2: обзор установки; рекомендуют Nix (macOS/Linux) как основной путь; есть и Docker. openlane2.readthedocs.io
-
Пошагово «Newcomers»: как создать
config.jsonи запускатьopenlane config.json, просмотр финального GDS через--flow openinklayout. openlane2.readthedocs.io -
open_pdks(SKY130/GF180) — исходники и install‑гайд. GitHub+1
Что уже готово в архиве.
-
В
tinytapeout_vga_audio/openlane/config.jsonзадано:DESIGN_NAME,VERILOG_FILES,CLOCK_PORT=clk,CLOCK_PERIOD=40нс (≈25 МГц). -
Makefile‑цели:
sim(Icarus Verilog),pnr(OpenLane2),view_gds.
Примечание: официальный CI TinyTapeout (GitHub Actions с tt‑gds‑action и шаблоны репозиториев) удобнее для сабмита — для «локального» PnR здесь только ориентировочная проверка. Используй официальный ttsky‑verilog‑template при подготовке репозитория к шаттлу. tinytapeout.com+1
4) «Железный» демо‑кейс (VGA/Audio) — как запустить
Аппаратные компоненты:
-
Демоплата TinyTapeout (TT04+). Быстрый старт и состав платы описаны в гиде: DIP, 7‑segment, PMOD‑хедеры, RP2040. tinytapeout.com
-
TinyVGA PMOD для VGA, совместим с TT04+; доступен в магазине TT. Tiny Tapeout
-
TT Audio PMOD (или совместимый) — вынос аудио‑ЦАП/PWM. Пиновка и рекомендации — на «Pinouts». tinytapeout.com
Шаги:
-
Распакуй архив →
tinytapeout_vga_audio/. -
Симуляция локально:
make sim # открой build/waves.vcd в GTKWave -
(Опционально) PnR локально через OpenLane2:
make pnr make view_gds -
На железе: подключи PMOD’ы как в «Pinouts», в Commander App задай частоту ~25 МГц, активируй проект — появится картинка; звук на Audio PMOD. tinytapeout.com
Примеры готовых VGA/Audio проектов на TT (для вдохновения/референса): «SQUARE‑1» (VGA+Audio), VGA Playground. tinytapeout.com+1
5) Что именно я положил в старт‑пак
TinyTapeout (каталог tinytapeout_vga_audio/)
-
rtl/tt_um_vga_audio.v— top под TT с портамиclk, rst_n, ena, ui_in, uo_out, uio_*и картой пинов под TinyVGA/Audio PMOD. (Порты и карта соответствуют рекомендациям и ограничениям TT.) tinytapeout.com+1 -
rtl/vga_timing.v— тайминги 640×480@60 (25,175 МГц номинал; работает и на 25 МГц). -
rtl/dds_pwm.v— 8‑бит DDS → 8‑бит PWM для моно‑аудио. -
sim/tb_tt_um_vga_audio.sv— простой тестбенч, клок 25 МГц, переключение режимов. -
openlane/config.json— минимальная конфигурация OpenLane 2 (см. «Newcomers» в оф. доке). openlane2.readthedocs.io -
Makefile— целиsim,pnr,view_gds. -
docs/openlane.md— краткая памятка.
Caravel (каталог caravel_bootstrap/)
-
scripts/inject_user_block.sh— добавляет пример макро (user_block_example.v) в клон официальногоcaravel_user_project+ кладёт конфиг OpenLane для макро. -
rtl_caravel/user_block_example.v— счётчик+PWM (легко завести вuser_project_wrapper). -
openlane_caravel/user_block_example_config.json— базовые поляDESIGN_NAME/VERILOG_FILES/CLOCK_*. -
README.md— краткий сценарий:git clone caravel_user_project→make setup→ интеграция →make user_project/make user_project_wrapper. Официальный квикстарт и команды «verify/precheck» описаны здесь. caravel-user-project.readthedocs.io
6) Полезные ссылки (официальные)
-
OpenLane 2 — обзор установки, Nix/Docker, гайды и «Newcomers»: openlane2.readthedocs.io+2openlane2.readthedocs.io+2
-
open_pdks (SKY130/GF180) — репозиторий и install‑инструкции: GitHub+1
-
TinyTapeout — главная/документация, Pinouts, Clock, демоплата: tinytapeout.com+3tinytapeout.com+3tinytapeout.com+3
-
Шаблоны TT (SKY) — ttsky‑verilog‑template (для сабмита/CI): tinytapeout.com
-
VGA PMOD (магазин TT) и примеры проектов с VGA/Audio: Tiny Tapeout+1
-
Caravel user project — quickstart/команды: caravel-user-project.readthedocs.io
7) Что делать прямо сейчас
-
Скачать архив →
tinytapeout_vga_audio/→make sim(проверяем, что всё собирается и есть VCD). -
Поставить OpenLane 2 (Nix/Docker по оф. гайду) и open_pdks (если хочешь локальный PnR):
- старт гайд (Nix — рекомендовано): Installation Overview / Nix‑based Installation. openlane2.readthedocs.io+1
-
Под «реальный» сабмит в TT — создай репозиторий из
ttsky‑verilog‑templateи перенеси туда RTL изtinytapeout_vga_audio/rtl/+ тесты. Это включит официальный CI (GDS‑action) и структуру метаданных проекта. tinytapeout.com -
Если нужен маршрут B (MPW): клонируй
caravel_user_project, выполниmake setup, запусти мойinject_user_block.shизcaravel_bootstrap/и пройди по оф. Quickstart. caravel-user-project.readthedocs.io