Что общего между популярным у хоббистов компьютером Синклер ZX Spectrum и космической станцией Juno, которая сейчас вращается вокруг Юпитера? И на одном, и на другом стоит процессор с архитектурой Zilog. На Синклере просто Z80, а на Juno - радиационно стойкий Y180-S. Y180-S спроектировал Монте Далримпл (Monte J. Dalrymple), выпускник Беркли, который проработал 16 лет в Zilog, после чего сделал собственный бизнес, компанию под названием Systemide.

Мы связались с Монте и он согласился выступить перед российскими слушателями, рассказать о всяких занятных ситуациях при проектировании процессоров.

Вы можете послушать Монте в эту субботу, во время занятия Сколковской Школы Проектирования Цифровых Схем в 12 часов. Одна из причин, почему мы пригласили Монте - он недавно спроектировал учебный процессор с архитектурой RISC-V - (книга, исходники), а мы как раз собираемся поупражняться на FPGA плате с синтезом еще более учебного процессора под названием schoolRISCV .

schoolRISCV - это минималистический процессор, его структуру может понять любой способный школьник олимпиадного типа. schoolRISCV спроектировал Станислав Жельнио, который вообще-то работает в компании Syntacore, где Станислав проектирует ядра на три порядка большего размера (по числу строк на языке описания аппаратуры), чем schoolRISCV.

RISC-V ядро от Монте находится посередине между schoolRISCV и high-end ядрами от Syntacore. С одной стороны, ядро от Монте поддерживает спецификацию RISC-V до уровня практического использования, в отличие от schoolRISCV, которое поддерживает только очень небольшое подмножество.

С другой стороны, ядро от Монте - это ядро микроконтроллерного класса, без кэшей, без виртуальной памяти и без внеочередного выполнения инструкций. При этом в ядре Монте есть статический конвейер с шестью стадиями и байпасами. Оно также поддерживает компрессированную (16/32) систему команд переменной длины (такая система команд входит в спецификацию RISC-V как расширение). И атомарные операции - они полезны для параллельного программирования.

Вот schoolRISCV:

Теперь как подготовиться к занятию в субботу 18 декабря 2021. Занятие будет называться:

Микроархитектура однотактового процессора

В него будет входить:

  1. Лекция по устройству однотактового процессорного ядра schoolRISCV, его взаимодействию с программами и вводом / выводом.

  2. Демонстрация симуляции процессора schoolRISCV в среде Siemens EDA / Mentor: ModelSim Starter Edition и Questa Advanced Simulator. Использование средств просмотра сигналов (waveform viewer) для отладки.

  3. Демонстрация синтеза процессора и запуск его на платах.

  4. Упражнение по добавлению в процессор инструкции и верификации этого изменения с помощью программного теста. Измерение максимальной тактовой частоты получившегося варианта процессора.

  5. Рассказ ветерана компании Zilog Монте Далримпла (Monte J. Dalrymple) о его работе над различными вариантами Z80, процессорами Rabbit, варианта 8051, реализации RISC-V, блоков контроллеров памяти, последовательных портов, контроллеров телевизоров и кэша в жестком диске, и т.д. и т.п. Монте работал и как рядовой инженер, и как менеджер проекта, и как консультант, и как основатель собственной компании Systemide. Монте менеджировал группу из 25 инженеров и в частности руководил проектом Z380 - 16/32 битного процессора, который позиционировался как следущий Zilog, таким же образом как Intel 80x86 вырос из Intel 8080.

Ведущие:

Александр Михайлович Силантьев, преподаватель Национального исследовательского университета «Московский институт электронной техники» (МИЭТ).
Михаил Коробков, fpga-systems.ru.
Монте Далримпл (Monte J. Dalrymple), основатель Systemyde International Corporation и ветеран компании Zilog.

Чтобы посетить занятие в Сколково или получить инструкции как участвовать в занятии удаленно, просьба послать емейл Александру Биленко info@chipexpo.ru.

Что желательно сделать перед занятием:

  1. Сначала нужно скачать пакет упражнений:

    ChipEXPO 2021 Digital Design School package v2.5
    https://bit.ly/chipexpo2021dds25
    Прямая ссылка

  2. Упражнения работают и под Linux, и под Windows, но для Windows вам нужно скачать Git и GNU Make. Это связано с тем, что упражнения используют мейкфайлы (для этого нужен GNU Make) и некоторые команды, которые есть внутри дистрибутива Git, который включает в себя MINGW64, который содержит команды типа rm, которые использует make (не волнуйтесь, там нет rm -rf /). Вам не нужно входить в bash, чтобы запустить make, все работает и в обычном Windows cmd.

    Git для Windows https://gitforwindows.org/
    GNU Make for Windows http://gnuwin32.sourceforge.net/downlinks/make.php

    Все это хозяйство нужно поставить в PATH:

    C:\Program Files\Git\cmd
    C:\Program Files\Git\mingw64\bin
    C:\Program Files\Git\usr\bin
    C:\Program Files (x86)\GnuWin32\bin - сюда я поставил make

  3. Вам также нужно установить IntelFPGA Quartus Prime Lite Edition v21.1 . Обратите внимание, что скачивать и ставить нужно именно Lite версию, а не Pro и не Standard, кроме того случая, если вы хотите подарить пять тысяч долларов Интелу.

    Если Quartus под Линуксом не будет прошивать платы, вы можете попробовать взять файл 100-altera.rules и скопировать его в директорию /etc/udev/rules.d с помощью sudo cp:

    sudo cp 100-altera.rules /etc/udev/rules.d

    а потом перезагрузится или перезапустить udev (спросите у линуксного админа как). Это часто решает проблему.

  4. Еще желательно скачать и установить Icarus Verilog и GTK Wave - см. как .

  5. Можно просмотреть слайды для следущего занятия, они находятся в пакете:

    ce2020labs/day_3/doc/schoolRISCV_slides_ru.pdf ce2020labs/day_3/doc/schoolRISCV_steps_ru.pdf

  6. Само занятие будет 18 декабря в Технопарке Сколково, Капсула № 2 с 12:00 до 15:00. Как добираться в Сколково (платформа «Инновационный Центр»):

  • Проще всего по МЦД-1 (с Белорусского вокзала обычные электрички каждые 5-10 минут(в пути 25 минут), экспресс каждые пол-часа (в пути 17 минут);

  • Пересадка на МЦД-1 на станциях метро Беговая, Славянский бульвар, Кунцево. Далее пешком 10 минут до БЦ "Амальтея", пройти через БЦ до входа в Технопарк).

Если вам понравится конструировать простейший процессор, вы можете углубить и расширить - вплоть до суперскаляра, многоядерных кластеров, гетерогенных систем на кристалле с GPU, нейроускорителей итд. Для начала этого пути вот-вот выходит совершенно незаменимая книжка Харрисов, которые сделали вариант своего учебника для архитектуры RISC-V. Предзаказ и PDF оглавления и предисловия :

В файлах книжки есть очень класная шпаргалка по системе команд RISC-V, она пригодится во время занятия:

Кстати, космический процессор Монте вы тоже можете запустить на FPGA плате. Вот его мануал и книжка по его дизайну. Так как он совместим с Z80, вы можете использовать его для своего варианта Синклера на FPGA. А если вы задизайните на FPGA видеоконтроллер TMS9918 компании Texas Instruments, то вы можете скомбинировать его с Z80 от Монте и сделать аналог компьютера MSX Yamaha, которые завозили в СССР при Горбачеве. И даже запустить на нем ямаховские игры. Вот как выглядела моя любимая игра Knightmare в 1987 году:

Комментарии (6)


  1. KeisN13
    16.12.2021 19:41

    Не хватает пары переменных, вот полный список в PATH (в системной переменной)

    C:\Program Files\Git\cmd
    C:\Program Files\Git\mingw64\bin
    C:\Program Files\Git\usr\bin
    C:\Program Files (x86)\GnuWin32\bin
    C:\iverilog\bin
    C:\iverilog\gtkwave\bin


    1. YuriPanchul Автор
      16.12.2021 21:17

      Да, спасибо


  1. forthuser
    16.12.2021 21:37

    Оставлю это здесь.
    Какие компьютеры были в 80-х годах на Z80, 6502… и какое для них создавали ПО и Демо.

    Tiny Emulators (Эмулирование разного 8-ми битного ретро Z-80, 6502… комп. железа и запуск и в браузере подборки некоторых демо, игр и другого софта можно и отладчик запустить)

    https://floooh.github.io/tiny8bit/
    (перейдя по ссылке можно даже и «попрограммировать» в некоторых представленных образах программ) ????


    1. YuriPanchul Автор
      16.12.2021 22:41

      вау! Это круто. CP/M. Я запустил ее в лесу под Новосибирском в 1986 году


  1. axe_chita
    17.12.2021 05:04
    +2

    А если вы задизайните на FPGA видеоконтроллер TMS9918 компании Texas Instruments

    Уже запилили:)
    Creating the F18A – An FPGA-based TMS9918A VDP
    и вот тут
    tms9918.vhd


    1. YuriPanchul Автор
      17.12.2021 05:37

      Класс!