Загрузка...

Потактовый эмулятор на основе ПЛИС ритм-машины Лель DR-8 (Lel DR8)

В 1993 году московское КБ электромузыкальных инструментов Лель при заводе Счётно-Аналитических Машин (САМ) начало выпуск восьмиканальной ритм машины Лель DR-8. Я принимал участие в этом проекте как разработчик программного обеспечения и сопутствующей "математики" для платформы DR-8. С целью сохранить архитектуру и программное обеспечение, 32 года спустя функционально ритм-машина воссоздана в аппаратном потактовом эмуляторе на основе ПЛИС Xilinx Spartan6. Оригинальная архитектура включает в себя управляющий компьютер на основе микропроцессора 1821ВМ85 с 2К ОЗУ и 8К ПЗУ, а также 8 канального ромплера с 64К восьмибитных сэмплов, воспроизводимых под управлением 32х битного секционного сигнального процессора, построенного на 3х микропроцессорных СБИС 588вс2. Внутри каждой 588ВС2 - регистровый файл из 16 независимых 16ти разрядных регистров, 16 разрядное АЛУ, декодер 12 битных микрокоманд, 4 бита флагов. 588ВС2 можно каскадировать и получать вычислитель любой разрядности, кратной 16. В Лелях вычислители 32 разрядные. Это сделано для точности настройки выходной частоты воспроизводимого сэмпла. Используется принцип схожий с DDS (Direct Digital Synthesis), где частота сэмплирования фиксированная, а "шаг" по сэмплерной памяти меняется в зависимости от требуемого выходного тона. При этом для обеспечения точности настройки, дробная часть фазы 16 битная (в принципе 8 битной фазы достаточно). Целая часть фазы используется как текущий адрес сэмплерной памяти. На каждой итерации происходит приращение аккумулятора фазы на фазовый инкремент. Так как фазовый инкремент 32х битный, то сэмпл может проигрываться как с большей, так и с меньшей скоростью (от этого частота основного тона сэмпла либо выше, либо ниже). Для останова при достижении конца сэмпла или зацикливания в случае сэмплерной петли используется 16 битный конечный адрес. Все сэмплы 8 битные. Все каналы вычисляют фазовые значения поочерёдно используя составное АЛУ в двух секциях (каскадируются через флаг переноса). Микрокод вырабатывается налету логикой. Поэтому поток команд и данных разделены - Гарвардская архитектура. Итак, для каждого канала необходимы: - 32х битный аккумулятор фазы (старшие 16бит - адрес ПЗУ, младшие - дробная часть фазы) - 32х битный инкремент фазы - 16 битный адрес останова - 16 битная громкость + стерео панорама Т.е. шесть 16ти разрядных регистров на канал. Так как ромплерная секция обслуживает 8 каналов одновременно, то 6*8=48 16ти разрядных регистров на все 8 каналов. В каждой ВС2 регистровый файл содержит 16 регистров =﹥ 48/16 = 3 микросхемы. Т.е. ТРИ 588вс2 нужно для построения 8 канального ромплера. Кст 588 комплект - это платформа НЦ (Зеленоград). Уже после роспуска группы и передачи в Минск её притянули к эмуляции PDP11. Для сравнния вот оригинал с картинками: https://youtu.be/6Gm1IrPeloc?si=SWSpvSoSLvRk04Z_ А вот мой оригинальный софт с моим демо треком (его потом зачем-то заменили на моделях с 1994 года): https://youtu.be/cehFO-mjigE?si=Cs5poP4vYznYFvDg И ещё, управляющий компьютер на 1821вм85а (i80c85), что у Лель DR8, что у Лель 28. Те же 580ви53 и 580вв51. Только объёмом ПЗУ и ОЗУ отличаются. ВИ53 - два таймера. Один - составной для темпа, составленный из двух каналов. Другой - одноканальный для динамической регенерации и опроса кнопок и клавиш. ВВ51 - МИДИ интерфейс. Благодаря удачному встроенному контроллеру векторных прерываний в 1821вм85, удалось сократить время реакции на внешнее событие (получилось компактнее и немного быстрее, чем в z80). Страничка на краткое описание в музее отечественных синтезаторов здесь: http://www.ruskeys.net/base/leldr8.php

Видео Потактовый эмулятор на основе ПЛИС ритм-машины Лель DR-8 (Lel DR8) автора MaximVlasov
Страницу в закладки Мои закладки
Все заметки Новая заметка Страницу в заметки