User Tag List

Страница 8 из 49 ПерваяПервая ... 456789101112 ... ПоследняяПоследняя
Показано с 71 по 80 из 485

Тема: FPGA-реплика ЭВМ ДВК-3 и платы МС1201

  1. #71

    Регистрация
    30.11.2015
    Адрес
    г. Самара
    Сообщений
    7,504
    Спасибо Благодарностей отдано 
    344
    Спасибо Благодарностей получено 
    712
    Поблагодарили
    594 сообщений
    Mentioned
    13 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от forth32 Посмотреть сообщение
    Не все так просто, к сожалению. Проблема тут в определении момента, когда надо загружать очередной байт из видеобуфера.
    Я про SD карту

  2. #72

    Регистрация
    17.04.2011
    Адрес
    Санкт-Петербург
    Сообщений
    328
    Спасибо Благодарностей отдано 
    32
    Спасибо Благодарностей получено 
    209
    Поблагодарили
    50 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от yu.zxpk Посмотреть сообщение
    команды на регистр 0177406
    Вообще-то 177406 - регистр счетчика слов. Командный регистр (CSR) - 177404.
    Цитата Сообщение от yu.zxpk Посмотреть сообщение
    не читает по адресу 0.
    В смысле - содержимое памяти по адресу 0 не меняется? Или меняется, но первым словом не 000240?

    - - - Добавлено - - -

    Цитата Сообщение от Hunta Посмотреть сообщение
    Я про SD карту
    А, ну понятно. Вот так всегда бывает, когда несколько параллельных веток обсуждения идут.
    Насчет SD-карты - действительно, для каждого контроллера надо вычилсять свой start_offset. Наверное, нужно было завести одну отдельную шину для сборки старшей части адреса всех контроллеров. Как-то не подумал...

  3. #73

    Регистрация
    30.11.2015
    Адрес
    г. Самара
    Сообщений
    7,504
    Спасибо Благодарностей отдано 
    344
    Спасибо Благодарностей получено 
    712
    Поблагодарили
    594 сообщений
    Mentioned
    13 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от forth32 Посмотреть сообщение
    действительно, для каждого контроллера надо вычилсять свой start_offset.
    Для master и slave SD контроллеров, я так понимаю, не для PDP-щных контроллеров
    К входному сигналу sdcard_addr в двух местах

  4. #74

    Регистрация
    17.04.2011
    Адрес
    Санкт-Петербург
    Сообщений
    328
    Спасибо Благодарностей отдано 
    32
    Спасибо Благодарностей получено 
    209
    Поблагодарили
    50 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от Hunta Посмотреть сообщение
    К входному сигналу sdcard_addr в двух местах
    Ну, моя идея была в том, что смещение задается через порт start_offset каждого контроллера без модификации самих контроллеров, и уж тем более модулей sdspi.
    Но, конечно, я поленился вынести из sdspi полную шину адреса, хотел сэкономить малость - вынес только 23 бита. Думал, этого вполне достаточно, все-таки 4 гига, куда уж больше.
    Получается, надо выносить все 32 бита. В следующем релизе так и сделаю.

  5. #75

    Регистрация
    17.04.2011
    Адрес
    Санкт-Петербург
    Сообщений
    328
    Спасибо Благодарностей отдано 
    32
    Спасибо Благодарностей получено 
    209
    Поблагодарили
    50 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию Контроллер КГД

    Завершена половинка следующего этапа проекта - графический контроллер КГД.
    Контроллер использует режим SVGA 800*600*75 Гц, и картинка в режиме удвоения пикселей ложится точно пиксель-в-пиксель по горизонтали, и с небольшим верхним темным полем по вертикали. Вот как примерно выглядит результирующее изображение:

    графические часы

    [свернуть]

    игрушка LAND

    [свернуть]

    игрушка PIFPAF

    [свернуть]

    На вышеприведенных картинках немного обрезан левый край, но это следствие некорректной работы устройства видеозахвата - оно плохо дружит с квадратными режимами изображения. На мониторе все выглядит правильно.

    Всю эту красоту портит тот факт, что в игрушки эти поиграть не получится. Слишком быстрая у нас получилась платформа. Например, в игрушке LAND каждая попытка завершается примерно за секунду. Поскольку игрушки - это чуть ли не наиболее частый вариант использования графического контроллера, эта проблема является серьезным ограничением. Как обычно в мире DEC, разработчики проявляют обычное разгильдяйство, и привязывают свои программы не к системному таймеру, а к тактам процессора.
    Надо сделать возможность при необходимости притормозить систему. Сильно понижать тактовую частоту нельзя - начнутся проблемы с SDRAM. Я попробовал задержать обращения к регистрам КГД - добавил в схему задержку ответа REPLY на 32 такта. Стало чуть помедленнее, но все равно очень быстро. Надо думать дальше.

    Создание КГД само по себе еще не является полноценным этапом развития проекта. Надо переделать терминальный модуль на разрешение 800*600, чтобы можно было совмещать текст и графику. Без этого, например, нельзя воспользоваться графическим вариантом бейсика. Точнее можно, но только если разнести текст и графику по разным мониторам. Поэтому я пока не внес КГД в основную ветку репозитория, а создал отдельную ветку graphics, в которую внес все текущие изменения. Если у кого есть желание, можете сами попробовать.

    Эти 2 пользователя(ей) поблагодарили forth32 за это полезное сообщение:

    Vslav(23.01.2021), yu.zxpk(23.01.2021)

  6. #76

    Регистрация
    30.11.2015
    Адрес
    г. Самара
    Сообщений
    7,504
    Спасибо Благодарностей отдано 
    344
    Спасибо Благодарностей получено 
    712
    Поблагодарили
    594 сообщений
    Mentioned
    13 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от forth32 Посмотреть сообщение
    Сильно понижать тактовую частоту нельзя - начнутся проблемы с SDRAM.
    Вот поэтому и сделал индивидуальные тактовые, хотя работа и не доведена до конца.

    Цитата Сообщение от forth32 Посмотреть сообщение
    Как обычно в мире DEC, разработчики проявляют обычное разгильдяйство, и привязывают свои программы не к системному таймеру, а к тактам процессора.
    И эта же проблемы вылезет, если попробовать перенести другие (современные) игрушки.

  7. #76
    С любовью к вам, Yandex.Direct
    Размещение рекламы на форуме способствует его дальнейшему развитию

  8. #77

    Регистрация
    31.03.2013
    Адрес
    г. Киев
    Сообщений
    2,413
    Спасибо Благодарностей отдано 
    132
    Спасибо Благодарностей получено 
    759
    Поблагодарили
    353 сообщений
    Mentioned
    88 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    В моем 1801вм2 проблема снижения частоты полностью решена. Доберусь до компа - расскажу

  9. #78

    Регистрация
    31.03.2013
    Адрес
    г. Киев
    Сообщений
    2,413
    Спасибо Благодарностей отдано 
    132
    Спасибо Благодарностей получено 
    759
    Поблагодарили
    353 сообщений
    Mentioned
    88 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Итак, во все мои модели процессоров встроен "дульный компенсатор" - специальный блок позволяет имитировать работу ядра на низкой частоте, при этом внешняя шина Wishbone продолжает работать на общей (высокой) частоте SoC, позволяя периферии (например, SDRAM) не замедляться.

    Там есть такие сигналы:
    // - vm_clk_p - processor core positive clock, also feeds the wishbone buses
    // - vm_clk_n - processor core negative clock, should be vm_clk_p 180 degree phase shifted
    // - vm_clk_ena - slow clock simulation strobe, enables clock at vm_clk_p
    // - vm_clk_slow - clock mode selector, enables clock slowdown simulation,
    // the external I/O cycles is launched with rate of vm_clk_ena

    vm_clk_p - позитивный клок процессорного ядра, сюда постоянно подается высокая частота (50-100MHz), и на ней работает системная шина (Wishbone)
    vm_clk_n - негативный клок процессорного ядра, для внутренних нужд, просто инвертированный vm_clk_p (я предпочитаю снимать с PLL с фазой 180)
    vm_clk_slow - это селектор режимов, если низкий уровень, то это "turbo", дульный компенсатор отключен, все блоки ничего не ждут, работа на максимальной частоте. Если уровень высокий, то включается специальный блок замедления. Есть специальный двунаправленный счетчик, он считает такты высокой частоты на сложение и низкой частоты (задается входом, описанным ниже) на вычитание, в момент когда ядро хочет выполнить ввод-вывод на шине - оно останавливается и счетчик перестает считать высокую частоты на сложение, работает ТОЛЬКО вычитание. По достижению счетчиком нуля - ядро разблокируется и выполнятся цикл ввода-вывода. Снаружи это выглядит так, как циклы эмитированы процессором, работающим на малой частоте. Сам ввод-вывод выполняется на полной скорости, не внося проблем в работу SoC.
    vm_clk_ena - разрешение такта низкой частоты. Это не клок, это разрешение тактов. Например, мы хотим имитировать ВМ2 на 5МГц внутренней частоты (10 внешней). И основная тактовая SoC у нас 100MHz. На вход vm_clk_ena в течение 19 тактов высокой частоты 100MHz должен подаваться низкий уровень, и один такт высокий, скважность 1/19. Такой подход также позволяет имитировать любые частоты с использованием фазового аккумулятора (можно, например 5.33MHz или 99MHz). В моей репке cpu11 тестовые проекты поддерживают режим замедления, там есть переключатель, все тестировалось и проверялось.
    Последний раз редактировалось Vslav; 23.01.2021 в 17:39.

    Этот пользователь поблагодарил Vslav за это полезное сообщение:

    forth32(23.01.2021)

  10. #79

    Регистрация
    30.11.2015
    Адрес
    г. Самара
    Сообщений
    7,504
    Спасибо Благодарностей отдано 
    344
    Спасибо Благодарностей получено 
    712
    Поблагодарили
    594 сообщений
    Mentioned
    13 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Топ модуль

    Код:
    set_location_assignment PIN_AB30 -to FB_Switches[0]
    set_location_assignment PIN_Y27  -to FB_Switches[1]
    set_location_assignment PIN_AB28 -to FB_Switches[2]
    set_location_assignment PIN_AC30 -to FB_Switches[3]
    set_location_assignment PIN_W25  -to FB_Switches[4]
    set_location_assignment PIN_V25  -to FB_Switches[5]
    set_location_assignment PIN_AC28 -to FB_Switches[6]
    set_location_assignment PIN_AD30 -to FB_Switches[7]
    set_location_assignment PIN_AC29 -to FB_Switches[8]
    set_location_assignment PIN_AA30 -to FB_Switches[9]
    Код:
      constant sw_SlowClockMode    : integer := 2;
    ...
      signal s_SwitchesDeBouncedClocked : std_logic_vector(9 downto 0);
    ...
      signal   s_SlowClockMode    : std_logic := s_SwitchesDeBouncedClocked(sw_SlowClockMode);
    ...
      s_Clk_Cpu                  <= s_Clk_100MHz when (s_SlowClockMode = Low) and (s_ManualClockOn = Low) else
                                    s_Clk_1Hz;
    s_SwitchesDeBouncedClocked - сигналы с подавленным дребезгом, снимаются с FB_Switches - 10 движковых переключателей на плате

  11. #80

    Регистрация
    31.03.2013
    Адрес
    г. Киев
    Сообщений
    2,413
    Спасибо Благодарностей отдано 
    132
    Спасибо Благодарностей получено 
    759
    Поблагодарили
    353 сообщений
    Mentioned
    88 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от Hunta Посмотреть сообщение
    s_SwitchesDeBouncedClocked - сигналы с подавленным дребезгом, снимаются с FB_Switches - 10 движковых переключателей на плате
    Подавление дребезга - это старая и давно решенная проблема, о ней даже неудобно говорить .
    Вот тут есть модуль wbc_button, он с параметром, указывается сколько миллисекунд дребезга подавить.

Страница 8 из 49 ПерваяПервая ... 456789101112 ... ПоследняяПоследняя

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

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

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

Похожие темы

  1. Реплика контроллера НГМД ДВК MY4
    от anasana в разделе ДВК, УКНЦ
    Ответов: 47
    Последнее: 30.06.2023, 19:07
  2. Реплика всего семейства ДВК
    от Daniil Chislov 86 в разделе ДВК, УКНЦ
    Ответов: 21
    Последнее: 13.11.2019, 16:36
  3. Ответов: 6
    Последнее: 30.07.2018, 09:04
  4. Аукцион плат ДВК МС1201.02, НМЛ СМ5300.01 и др.
    от OS в разделе Барахолка (архив)
    Ответов: 45
    Последнее: 19.11.2011, 14:02
  5. Реплика КМД ДВК (MY)
    от KALDYH в разделе ДВК, УКНЦ
    Ответов: 19
    Последнее: 12.11.2009, 15:43

Ваши права

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