Важная информация

User Tag List

Страница 60 из 143 ПерваяПервая ... 565758596061626364 ... ПоследняяПоследняя
Показано с 591 по 600 из 1430

Тема: Цифровая археология: 1801 и все-все-все

  1. #591
    Veteran
    Регистрация
    30.08.2005
    Адрес
    Питер
    Сообщений
    1,010
    Благодарностей: 169
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    О, Микро-7
    Собираю в коллекцию советские калькуляторы и компьютеры.
    Мой сайт: http://www.leningrad.su/museum/

  2. #592
    Veteran Аватар для Vslav
    Регистрация
    31.03.2013
    Адрес
    г. Киев
    Сообщений
    1,411
    Благодарностей: 1900
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Матрица приоритетного шифратора прерываний в ВМ1Г тоже очень заметно переработана, работу этого блока придется изучать заново по полной. И как бы там не начало работать прерывание от таймера - линия запроса от него уже явно обрабатывается в матрице. Насколько я понимаю, таймер в ВМ1Г заявлен официально, так что вполне может быть.

  3. Эти 4 пользователя(ей) поблагодарили Vslav за это полезное сообщение:
    MaTocoB (12.05.2015), NovaStorm (10.05.2015), perestoronin (17.05.2015), Titus (10.05.2015)

  4. #593
    Veteran Аватар для Vslav
    Регистрация
    31.03.2013
    Адрес
    г. Киев
    Сообщений
    1,411
    Благодарностей: 1900
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Получена микропрограмма 1801ВМ1Г. Модель ВМ1Г прошла тесты 791401 и 791404 (без проверки исключений по недопустимым командам).
    Команда MUL работает, микропрограммно и о-о-о-чень долго - примерно ~270 тактов. При частоте 5МГц - почти 60 мкс, печалька и привет прерываниям. Сам алгорим умножения точно пока не разобрал - он там классический на сдвигах, но какой-то инваринт. Счетчика циклов нет, поэтому есть вероятность что время исполнения умножения зависит от умножаемых данных (например, умножаем пока не досдвигаем аргумент до нуля). Эмуляторщикам ахтунг

    Модель, версия 1.2k
    Схема 1801ВМ1А
    Схема 1801ВМ1Г
    Итого 1801ВМ1Г содержит 16646 транзисторов.

    Прерывание от таймера точно поддерживается, пока не тестировал, приоритет - ниже чем у IRQ1/HALT, и выше чем IRQ2/IRQ3/VIRQ.
    Последний раз редактировалось Vslav; 16.05.2015 в 20:55.

  5. Эти 13 пользователя(ей) поблагодарили Vslav за это полезное сообщение:
    anasana (17.05.2015), bigral (17.05.2015), CodeMaster (16.05.2015), gid (18.05.2015), hobot (22.05.2015), MaTocoB (17.05.2015), MM (17.05.2015), nzeemin (22.05.2015), perestoronin (17.05.2015), Raydac (16.05.2015), TheGWBV (17.05.2015), Titus (16.05.2015), Vamos (16.05.2015)

  6. #594
    Moderator Аватар для MM
    Регистрация
    20.04.2013
    Адрес
    г. Павловский Посад
    Сообщений
    1,949
    Благодарностей: 851
    Mentioned
    4 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от Vslav Посмотреть сообщение
    Получена микропрограмма 1801ВМ1Г....

    Прерывание от таймера точно поддерживается, пока не тестировал, приоритет - ниже чем у IRQ1/HALT, и выше чем IRQ2/IRQ3/VIRQ.
    Самое главное .
    Особенно - вектор и обстоятельства прерывания.

    * * *

    Припоминаю, что ( предположительно ! ) кристаллы ВМ1Г могли поставлять вместо ВМ1А без уведомления потребителя - году так в 1991 выпустили извещение на Э.
    И еще там нажимали на частотную градацию - т.к. ВМ1Г вовсе не 100% шли на 6.0-6.5 мгц при 25 градусах ( цеховые ворота, быт и военка ).
    Коллекционирование радиодеталей : http://collectingrd.kxk.ru/

  7. #595
    Member
    Регистрация
    19.04.2013
    Адрес
    г. Чебоксары
    Сообщений
    155
    Благодарностей: 110
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Vslav, я тут между попытками освоения multisima скармливал verilator'у модель, чтобы посмотреть, что он выдаст, и верилатор предлагал в vm1_plm.v в функции cmp вместо casex использовать casez, якобы это более эффективно. Как я понимаю, такая замена на уровне логического описания, а так же программирования абсолютно идентична? Ну т.е. если соответственно и в аргументах 'x' заменить на '?'.
    Ещё в Qsync\vm1_qbus.v в строке 1567
    Код:
    assign flag[2] = (~plr[18] | (alu[15:0] == 8'o000)) & (alu[7:0] == 8'o000); // Z
    16 разрядов сравнивается с 8ю разрядами. Верилатор говорит по этому поводу warning. В принципе такая конструкция полностью работоспособна и выдаёт ожидаемый результат, но наверное изначально планировалось сравнивать только старший байт? Вот так:
    Код:
    assign flag[2] = (~plr[18] | (alu[15:8] == 8'o000)) & (alu[7:0] == 8'o000); // Z
    Или сперва слово сравнивать с 0 и для надёжности ещё и его мл.байт с нулём? Вот так:
    Код:
    assign flag[2] = (~plr[18] | (alu[15:0] == 16'o000)) & (alu[7:0] == 8'o000); // Z
    И ещё, есть множество alwaysов с одинаковым условием, состоящих всего из одного назначения каждый. Если их объединить в один блок always, это будет просто эквивалентная запись или есть какие-то принципиальные предпосылки так не делать?

    ---------- Post added at 13:35 ---------- Previous post was at 13:12 ----------

    Бегло сравнил модели Qsync и Wsync, на первый взгляд разница только в том, что в Wsync исчезли ноги, отвечающие за ПДП: DMR, SACK, DMGI, DMGO и соответствующая логика, всё остальное - не принципиально. Они действительно настолько не нужны?

  8. #596
    Veteran Аватар для Vslav
    Регистрация
    31.03.2013
    Адрес
    г. Киев
    Сообщений
    1,411
    Благодарностей: 1900
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от gid Посмотреть сообщение
    casex использовать casez
    В нашем случае абсолютно без разницы. casex более широкий случай, рассматривает 'x' и 'z' как не влияющие на результат сравнения, а casez - только 'z'. У меня там вообще были проблемы чтобы получить максимально совместимый синтезируемый (а не только для модели) код для сравнения переменных с 'x', поэтому лучше ничего не трогать.

    В приложении - кусочек кода на Си, который я использую для анализа микрокода. Он совершенно "наколенный", но там есть функция вычисления матрицы plm (пока только для ВМ1А), надеюсь, поможет с реализацией.

    Цитата Сообщение от gid Посмотреть сообщение
    Ещё в Qsync\vm1_qbus.v в строке 1567
    Код:
    assign flag[2] = (~plr[18] | (alu[15:0] == 8'o000)) & (alu[7:0] == 8'o000); // Z
    16 разрядов сравнивается с 8ю разрядами.
    Да, это опечатка. В данном случае к ошибке не приводит - 8 разрядов автоматически расширяются до 16 и получается эквивалент alu[15:0] == 16'o000000. Лучше исправить на alu[15:8] == 8'o000, хотя для получаемого после оптимизации результата разницы никакой не будет.

    Цитата Сообщение от gid Посмотреть сообщение
    И ещё, есть множество alwaysов с одинаковым условием, состоящих всего из одного назначения каждый. Если их объединить в один блок
    always, это будет просто эквивалентная запись или есть какие-то принципиальные предпосылки так не делать?
    Если все назначения неблокирующие - со значком '<=', то разницы никакой не будет, можно объединить. В принципе, я старался чтобы все присваивания были или непрерывными (через assign) или неблокирующие (через <=). Блокирующие (через =) не планировались и могли проскочить только случайно, как опечатка. В блоке always они часто будут работать точно как неблокирующие (зависит от уравнений в блоке).
    Цитата Сообщение от gid Посмотреть сообщение
    в Wsync исчезли ноги, отвечающие за ПДП: DMR, SACK, DMGI, DMGO и соответствующая логика, всё остальное - не принципиально. Они действительно настолько не нужны?
    Угу, Wsync - это последняя актуальная модель, в итоге будет использовать шину Wishbone, там вопрос арбитража доступа к шине решается внешним компонентом, поэтому все эти подробности из этой модели потихоньку удаляются. Wsync - это потактовая копия, предназначенная для синтеза в реальные проекты на FPGA.

    В Qsync будет вносится минимум - микропрограмма для ВМ1Г, переход на общую систему конфигурации проекта, и исправление опечаток. Хотя Qsync тоже синтезируемая, но ее реальное использование в FPGA не предполагается, основное ее назначение - моделирование на промежуточном этапе разработки. Скажем так - это "приличная" модель, очень близкая к оригиналу и позволяющая комфортно моделировать.

    Async - это еще более точная модель, максимально близкая, но из-за асинхронных особенностей есть некоторые проблемы с моделированием, а надежный синтез практически невозможен. Модифицироваться никак не будет (только грубые опечатки), оставлена в пакете как демка для поборников "расовой чистоты"

    PS. Впишу-ка я этот текст в readme, а то народ в почту возмущается что Async кучу варнингов при синтезе дает
    PPS. А приложение-то я и позабыл, исправляюсь
    Вложения Вложения
    • Тип файла: rar mcode.rar (8.4 Кб, Просмотров: 69)
    Последний раз редактировалось Vslav; 18.05.2015 в 16:47.

  9. Эти 4 пользователя(ей) поблагодарили Vslav за это полезное сообщение:
    MaTocoB (18.05.2015), nzeemin (17.08.2015), perestoronin (18.05.2015), Titus (18.05.2015)

  10. #597
    Moderator Аватар для MM
    Регистрация
    20.04.2013
    Адрес
    г. Павловский Посад
    Сообщений
    1,949
    Благодарностей: 851
    Mentioned
    4 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Нашел в закромах БК11 с экситоновским КР1801ВМ1Г - но вот есть сомнения в его 3 точках. Не будет ли возможным как-нибуть разузнать вектор от встроенного в процессор таймера ?
    *
    Кстати, сам экз. процессора - Г. конкретное, с Большой буквы. Т.к. его проверяли на запуск БК0010 - но вот отработкой тестов из ТМОС явно не озадачивались. Не сменил его в машинке исключительно из интереса к таймеру и его вектору.
    Коллекционирование радиодеталей : http://collectingrd.kxk.ru/

  11. #598
    Veteran Аватар для Vslav
    Регистрация
    31.03.2013
    Адрес
    г. Киев
    Сообщений
    1,411
    Благодарностей: 1900
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от MM Посмотреть сообщение
    Нашел в закромах БК11 с экситоновским КР1801ВМ1Г - но вот есть сомнения в его 3 точках.
    А разве три точки это ВМ1Г? Вот подробное исследование со сканами ТУ и изменениями, получается что ВМ1Г это две точки или четыре, но никак не три. Тем не менее, дописал модель в части прерываний (модуль таймера не имел выходного прерывания и его сброса по подтверждению) и запустил небольшой тестик - прерывается по 270 вектору, сохраняет PC/PSW в текущем стеке.

  12. Эти 2 пользователя(ей) поблагодарили Vslav за это полезное сообщение:
    hobot (26.05.2015), MM (26.05.2015)

  13. #599
    Moderator Аватар для MM
    Регистрация
    20.04.2013
    Адрес
    г. Павловский Посад
    Сообщений
    1,949
    Благодарностей: 851
    Mentioned
    4 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Действительно, сейчас попробовал на машинке команду 070027 000001 - трапанула по 10 вектору.
    MUL R0, #1

    *

    И такой тоже трапует по 10-му вектору :
    Последний раз редактировалось MM; 26.05.2015 в 18:07.
    Коллекционирование радиодеталей : http://collectingrd.kxk.ru/

  14. #600
    Member
    Регистрация
    19.04.2013
    Адрес
    г. Чебоксары
    Сообщений
    155
    Благодарностей: 110
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от Vslav Посмотреть сообщение
    прерывается по 270 вектору
    А тогда у IRQ3 какой вектор? Вроде бы у него было как раз 270.
    И если вектора одинаковые, как теперь узнать, откуда пришло прерывание? Может где-то флаги дополнительные введены?

Страница 60 из 143 ПерваяПервая ... 565758596061626364 ... ПоследняяПоследняя

Информация о теме

Пользователи, просматривающие эту тему

Эту тему просматривают: 1 (пользователей: 0 , гостей: 1)

Похожие темы

  1. Ответов: 7
    Последнее: 28.06.2014, 15:50
  2. Микросхемы МПК 580,1801,1810 и другие...
    от Alex_Vac в разделе Барахолка (архив)
    Ответов: 44
    Последнее: 07.04.2012, 06:03
  3. ЦИФРОВАЯ МУЗЫКА НА ZX
    от AAA в разделе Музыка
    Ответов: 98
    Последнее: 18.09.2011, 20:33
  4. Учебный стенд УМПК-1801
    от dk_spb в разделе ДВК, УКНЦ
    Ответов: 2
    Последнее: 12.05.2010, 14:52
  5. Цифровая музыка от Вадима Ермеева
    от zxmike в разделе Музыка
    Ответов: 2
    Последнее: 06.08.2007, 21:13

Метки этой темы

Ваши права

  • Вы не можете создавать новые темы
  • Вы не можете отвечать в темах
  • Вы не можете прикреплять вложения
  • Вы не можете редактировать свои сообщения
  •