Я бы тоже хотел воспользоваться HD - давно утверждены состав и назначение битов регистров, есть готовый драйвер... Но HD работает мгновенно - ему дали команду, и на следующий такт виртуального процессора данные появились в памяти. В реале такое не выйдет. Если добавить в HD возможность ожидания - пусть в эмуляторе она и не будет использоваться, поскольку данные появились мгновенно, но, если они не появились... Впрочем, скорее всего, не выйдет. HD ведь не предусматривает отключения всех регистров на время ожидания? И прерываний у него нет.
То есть, вариант (2). Именно так я и представляю себе конструкцию на ЛА19, нескольких инверторах, мощной 8-ножке и, может быть, паре-тройке простых ЛЭ - детально я ее не продумывал. Причем отдать один бит в МПИ почти ничего не стоит - та самая 8-ножка содержит два ЛЭ, один отдаст СИП, второй свободен, цена вопроса - лишняя пара проводков на макетке или дорожек на боевой плате. Ладно, буду думать...
Все хуже. Попробовал в эмуляторе 134-ю, она вообще на букву L не реагирует, так, что перфоленточный загрузчик отменяется.
173000/165000 отпадают однозначно - кроме ДВК есть еще и Э-60 (М6, М8), а кое у кого и 11/83-84, конфликтовать с их ПЗУ загрузчиков не хочется. К тому же в МПСиС был опубликован замечательный прием, позволяющий разместить ПЗУ загрузчика на одном адресе. Адрес внутри ПЗУ перебирается отдельным аппаратным счетчиком, после каждого считывания к нему прибавляется единица, адресация внутри пословная. Первой командой в ПЗУ располагают команду MOV -(R7),R0, затем адрес загрузки, затем MOV -(R7),(R0)+, затем первую команду загружаемой программы, затем снова MOV -(R7),(R0)+, следующую команду программы и т.д. В конце ставят каким-то образом переход на загрузчик, например MOV -(R7),R0, <адрес перехода>, JMP @R0. Команда MOV -(R7),<регистр или косвенно-регистровый адрес>, первым делом скорректирует адрес следующей команды, схемы ЦП прибавят к немк двойку, а автодекремент ее отнимет, в результате адрес останется тем же. А адресный счетчик ПЗУ подставит на этот адрес следующее слово данных (нечетное обращение, считая с нуля) или следующую команду (четное обращение). Цена вопроса - дополнительный аппаратный счетчик и двойной расход объема ПЗУ. В нашем же случае - несколько лишних строк кода, а ПЗУ у нас большое. Хотя бесплатные кейловские 32К я занял уже на 45%. Впрочем, "таблетки от жадности" никто не отменял...
Да не то, чтобы так. В моем варианте реализации DMA - это лишние 6 шинных драйверов для A16-21, второй комплект шинных драйверов для управляющих сигналов (СИА, СИП, ВВОД, ВЫВОД и т.д.). Если делать без ДМА, то на прием с МПИ хватит 1/6-й простого 1533ЛН1, на передачу - половины 155ЛА18 или похожей мощной восьминожки с другой логической функцией. А для ДМА их придется ставить двусторонними, или ставить второй комплект с обратной функцией. Да, увеличивается количество рассыпухи, причем заметно.
Для точной эмуляции, боюсь, опять понадобится много рассыпухи. А неточная смысла не имеет. Впрочем, погляжу.
Зачем? Я планирую, по-простому, эмулировать несколько абонентов МПИ на ножках GPIO контроллера. Обычной синхронной зацикленной программой. Ожидаю пассивного СИА. Жду фронт СИА: снял себе в переменную состояние ДА15-00, проверил СИА. Неактивен? Назад, на метку "Жду фронт СИА". Иначе по МПИ только что передан адрес. Сравниваю его со своими. Не мой? назад на ожидание пассивного СИА. Иначе разбираюсь, что мне там предлагают сделать... 72-МГц процессор сделает все это не напрягаясь, ЦП и не заподозрит, что там не аппаратные регистры, а программная эмуляция. Таким образом, без ДМА, всего оборудования будет: БИС микроконтроллера, 4 шинных драйвера для К ДА00-15 Н, пара 1533ЛН1 для приема управляюших сигналов МПИ и одна-две мощных восьминожки для передачи К СИП Н, К ТПР Н, может еще что понадобится... Ну, и заглушка "Думаю, прошу не мешать", которую мы обсуждаем с Патроном. И никаких ВП1-ххх, ВМ1 и прочих.
- - - Добавлено - - -
Можно и такое, есть у меня такая платка. Единственный недостаток, если дело дойдет до мелкой серии, на Али они вдвое дороже. 103VET6 попадаются по $23 за десяток, а 407VET6 не менее $43 за тот же десяток. Впрочем, эта разница, думаю, потеряется на фоне цены платы - все-таки, "половинка" ДВК/Э-60 - более 3 кв. дм!
А так - замечательный МК. На борту и SDIO, и USB OTG, и 100-Мбит Ethernet, и еще много чего, включая 168 МГц и 192К оперативки.







Ответить с цитированием