Я сделал тебе готовый старт‑пак - оформили всё по шагам - мемристивная ячейка

Admin Admin 5 Октября 2025

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

Критерии успеха.

  1. На мониторе виден стабильный 640×480@60 Гц узор, переключаемый DIP.

  2. На аудио‑выходе слышна смена тона при изменении ui_in[7:3].

  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

Шаги:

  1. Распакуй архив → tinytapeout_vga_audio/.

  2. Симуляция локально:

     make sim
     # открой build/waves.vcd в GTKWave
  3. (Опционально) PnR локально через OpenLane2:

     make pnr
     make view_gds
  4. На железе: подключи 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_projectmake setup → интеграция → make user_project/make user_project_wrapper. Официальный квикстарт и команды «verify/precheck» описаны здесь. caravel-user-project.readthedocs.io


6) Полезные ссылки (официальные)


7) Что делать прямо сейчас

  1. Скачать архивtinytapeout_vga_audio/make sim (проверяем, что всё собирается и есть VCD).

  2. Поставить OpenLane 2 (Nix/Docker по оф. гайду) и open_pdks (если хочешь локальный PnR):

    • старт гайд (Nix — рекомендовано): Installation Overview / Nix‑based Installation. openlane2.readthedocs.io+1
  3. Под «реальный» сабмит в TT — создай репозиторий из ttsky‑verilog‑template и перенеси туда RTL из tinytapeout_vga_audio/rtl/ + тесты. Это включит официальный CI (GDS‑action) и структуру метаданных проекта. tinytapeout.com

  4. Если нужен маршрут B (MPW): клонируй caravel_user_project, выполни make setup, запусти мой inject_user_block.sh из caravel_bootstrap/ и пройди по оф. Quickstart. caravel-user-project.readthedocs.io

Для ответа вы можете авторизоваться