User Tag List

Страница 11 из 49 ПерваяПервая ... 789101112131415 ... ПоследняяПоследняя
Показано с 101 по 110 из 485

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

  1. #101

    Регистрация
    26.03.2019
    Адрес
    г. Киев, Украина
    Сообщений
    98
    Спасибо Благодарностей отдано 
    133
    Спасибо Благодарностей получено 
    51
    Поблагодарили
    26 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию



    KSM (на DE0) смотрится на Viewsonic в 800x600 хорошо, без лишней коррекции

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

    На Lenovo ThinkVision (FullHD) смотрится с урезанным левым краем:

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

    Elias(27.01.2021), forth32(27.01.2021), Hunta(26.01.2021), Vslav(27.01.2021)

  2. #102

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

    По умолчанию

    Цитата Сообщение от yu.zxpk Посмотреть сообщение
    Если честно, смотрится на Github очень херово.
    Оно неважно где смотрится. Если нет единого соглашения о табуляциях (вот как Торвальдс сказал что будет 8 - и вешайтесь), то при выкладке по внешний мир надо все приводить к пробелам), у меня в репке есть clean.bat - он убивает все временные файлы и еще там такая строчка есть:

    for /r "./%~1/hdl" %%9 in (*.v) do atxt32 %%9 %%9 -s3 -f

    Это запуск моей утилиты конверсии для всех .v файлов, -s3 значит табуляции выравнены на 3, как в Квартусе. Ну и потом оно и в FAR и на гитхабе смотрится OK.

  3. #103

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

    По умолчанию

    yu.zxpk,
    На vievsonic картинка стала нормальной, зато на другом мониторе съехала влево. Что интересно, на моем устройстве видеозахвата картинка съезжает в точности так же.
    Возможно, конечно, что дело опять в погрешности пиксельной частоты - я использую 50 Мгц вместо 49.5. Но, скорее, дело вообще в принципиально кривой поддержке квадратных режимов современными мониторами. Я пробовал смотреть картинку на Iyama x2483, каком-то древнем 24-дюймовом асере и на современном 4K самсунге. И везеде картинка попадала точно в экран, но на асере сработал auto adjust для подстройки картинки.
    Можно было бы попробовать синтезировать точно 49.5 Мгц с помощью PLL, но не вижу особого смысла. Кроме того, двухпортовая видеопамять будет работать в двух разных некратных тактовых доменах, и неизвестно к чему это может привести.

    Цитата Сообщение от Vslav Посмотреть сообщение
    то при выкладке по внешний мир надо все приводить к пробелам
    Вот уж не задумывался даже, что это имеет какое-то значение. Для меня этот вопрос решается простенькой командой
    Код:
    sed -i 's/\t/   /g' *.v
    Ладно, буду релизить видеоконтроллеры - пройдусь этой командой по всему дереву проекта.

  4. #104

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

    По умолчанию

    Цитата Сообщение от forth32 Посмотреть сообщение
    Код:
    sed -i 's/\t/   /g' *.v
    А оно разве выполнит выравнивание? Не разрушит отступы?
    Моя утилита по умному заменяет табуляции на разное количество пробелов (и жмет в обратную сторону тоже верно)

  5. #105

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

    По умолчанию

    Цитата Сообщение от Vslav Посмотреть сообщение
    А оно разве выполнит выравнивание? Не разрушит отступы?
    Да нет, оно тупо заменяет таб на три пробела. Ну, тогда я, видимо, не совсем понимаю, чего именно мы добиваемся. Мне казалось, что проблема у нас в том, что текст, отлично смотрящийся в редакторе квартуса, в просмотрщике гитхаба превращается в мусор, из-за разного размера табуляций. Вот, например, кусок кода с гитхаба:
    Код:
       case (interrupt_state)
     		         // нет активного прерывания
                  i_idle :
                            begin
    			//  Если поднят флаг - переходим в состояние активного прерывания
                               if ((ide == 1'b1) & (interrupt_trigger == 1'b1))  begin
                                  interrupt_state <= i_req ; 
                                  irq <= 1'b1 ;    // запрос на прерывание
                               end 
    									else	irq <= 1'b0 ;    // снимаем запрос на прерывания
    
                            end
    					// Формирование запроса на прерывание			
                   i_req :			  if (ide == 1'b0) 	interrupt_state <= i_idle ; 	
                                    else if (iack == 1'b1) begin
                                        // если получено подтверждение прерывания от процессора
                                        irq <= 1'b0 ;               // снимаем запрос
    												interrupt_trigger <= 1'b0;
                                        interrupt_state <= i_wait ; // переходим к ожиданию окончания обработки
                                    end 
    					// Ожидание окончания обработки прерывания			
                   i_wait :
                               if (iack == 1'b0)  interrupt_state <= i_idle ; 
        endcase
    Если его пропустить через sed по приведенному выше правилу, то на том же гитхабе он становится таким:
    Код:
    case (interrupt_state)
                    // нет активного прерывания
                  i_idle :
                            begin
                         //  Если поднят флаг - переходим в состояние активного прерывания
                               if ((ide == 1'b1) & (interrupt_trigger == 1'b1))  begin
                                  interrupt_state <= i_req ; 
                                  irq <= 1'b1 ;    // запрос на прерывание
                               end 
                               else   irq <= 1'b0 ;    // снимаем запрос на прерывания
    
                            end
                   // Формирование запроса на прерывание         
                   i_req :          if (ide == 1'b0)    interrupt_state <= i_idle ;    
                                    else if (iack == 1'b1) begin
                                        // если получено подтверждение прерывания от процессора
                                        irq <= 1'b0 ;               // снимаем запрос
                                        interrupt_trigger <= 1'b0;
                                        interrupt_state <= i_wait ; // переходим к ожиданию окончания обработки
                                    end 
                   // Ожидание окончания обработки прерывания         
                   i_wait :
                               if (iack == 1'b0)  interrupt_state <= i_idle ; 
        endcase
    Вроде все отлично, все отступы встали на свои места, ничего не разрушено.

  6. #106

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

    По умолчанию

    Цитата Сообщение от forth32 Посмотреть сообщение
    Вроде все отлично, все отступы встали на свои места, ничего не разрушено.
    Да, для этого верилога отлично. Просто моя утилита писалась изначально для ассемблера, она умеет в локальные метки и еще всякое. Вот в ассемблере где табуляции бывают после имен меток, мнемоник и операндов разной длины умная табуляция нужна. Для верилога нужна чтобы выравнивать строчные комментарии после кода:
    Код:
    module am2901
    (
       input          cp,         // clock positive
       input    [8:0] i,          // operation code
       input    [3:0] a,          // port A address (readonly)
       input    [3:0] b,          // port B address (read/write)
       input    [3:0] d,          // direct data input
       output   [3:0] y,          // data output (3-state)
                                  //
       input          oe_n,       // Y output enable
       inout          q0,         // shift line Q-register LSB
       inout          q3,         // shift line Q-register MSB
       inout          ram0,       // shift line register stack LSB
       inout          ram3,       // shift line register stack MSB
       input          cin,        // carry input
                                  //
       output         cout,       // carry output
       output         ovr,        // arithmetic overflow
       output         f3,         // MSB of ALU output
       output         zf,         // (F[3:0] == 0) flag output (OC)
       output         g_n,        // carry generate output
       output         p_n         // carry propagate output
    );

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

  8. #107

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

    По умолчанию КСМ+КГД - теперь ДВК стала полноценной

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

    Скрытый текст

    [свернуть]

    Теперь, как и в оригинале, возможен вывод накладывающихся друг на друга текстовых и графических слоев:

    Скрытый текст

    [свернуть]

    Как и раньше, для КСМ я использовал шрифт 8х12, как более четко выглядящий на современных мониторах. Для сравнение в дереве проекта лежит также и оригинальных шрифт КСМ, который можно загрузить в ПЗУ знакогенератора и посмотреть, как текст выглядел 30 лет назад:

    Скрытый текст

    [свернуть]


    Кроме КГД+КСМ, я внес в проект еще несколько важных дополнений.

    В корне проекта появился файл конфигурации conifg.v. С его помощью можно легко убирать из схемы ненужные модули:
    Код:
    `define KSM_module        // текстовый контроллер КСМ
    `define KGD_module        // графический контроллер КГД
    `define IRPS2_module      // второй последовательный порт ИРПС
    `define IRPR_module       // параллельный порт ИРПР
    `define RK_module         // диск RK-11/RK05
    `define DW_module         // жесткий диск DW
    `define DX_module         // гибкий диск RX01
    `define MY_module         // гибкий диск двойной плотности MY
    Достаточно закомментировать строку - и соответствующий модуль будет заменен набором заглушек, подтягивающих некоторые выходные сигналы модуля к нужному уровню. Больше не надо для этого ковыряться в потрохах схемы. Ведущий и ведомый модули sdspi теперь объединены в один, и больше не нужно заботится о назначении ведущего контроллера - все будет сделано автоматически.

    В схему добавлена возможность снижения тактовой частоты до 4.5 Мгц, спасибо VSLAV, предусмотревшего такую возможность в своем процессоре. Режим пониженной тактовой частоты включается переключателем sw[3]. Без этого режима поиграть в игрушки не получится. Некоторый набор игрушек я собрал на диск MY0, входящий в стартовый комплект initdisk.img.

    Документация серьезно переработана, по модулям КГД и КСМ написана отдельная дока. Ну и выявлена и исправлена кучка мелких, но досадных багов, как обычно.

    Вот, вроде бы, и все. Теперь ЭВМ ДВК-3 полностью закончена и готова к эксплуатации. Больше тут доделывать вроде как и нечего.

    На всякий случай напоминаю, что проект лежит в репозитории https://github.com/forth32/mc1201-02.
    Последний раз редактировалось IgorR76; 31.01.2021 в 18:46.

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

    Alex_K(31.01.2021), Elias(31.01.2021), hobot(31.01.2021), Hunta(31.01.2021), Radon17(31.01.2021), Vslav(31.01.2021), xolod(31.01.2021), yu.zxpk(01.02.2021), zebest(31.01.2021)

  9. #108

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

    По умолчанию

    Круть

  10. #109

    Регистрация
    30.08.2011
    Адрес
    Зеленоград
    Сообщений
    7,161
    Спасибо Благодарностей отдано 
    2,979
    Спасибо Благодарностей получено 
    373
    Поблагодарили
    310 сообщений
    Mentioned
    13 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    forth32, проделанную вами работу трудно переоценить!
    Предлагаю (на усмотрение модераторов) закрепить эту тему как важную в разделе.


    forth32, можно уточнение от вас организационное? Я помню, что вы делали проект для своих конкретных целей и задач, но, если пользователь вроде меня (не программист и не электронщик) захотел бы дома для личного пользования иметь такую ДВК-3, что это в деньгах и как это внешне? Неужели снова голая плата с макарошками на столе, тебе надо ты и прошивай, иди лесом дядя Ваня? Или есть вариант или планируется вариант хоть как-то оформленный в плане корпуса и полностью готовый к эксплуатации? Вопрос прошу не считать "наездом" или "реальным запросом" - просто нужно чётко и этот момент осветить. Ведь далеко не все могут самостоятельно поднять такую железячину? Для тех кто не может, но хотел бы иметь "без проблемную" ДВК-3 как хобби, дома - нужен вариант plug&play из коробки, как с этим?
    Архив программ для УК-НЦ, ДВК и БК.

    Ищу игру "СТРАНА МОНСТРОВ" [monstr.sav] для ДВК.

  11. #110

    Регистрация
    26.03.2019
    Адрес
    г. Киев, Украина
    Сообщений
    98
    Спасибо Благодарностей отдано 
    133
    Спасибо Благодарностей получено 
    51
    Поблагодарили
    26 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Наиболее близко выглядит китайская плата QMTECH Cyclone IV Starter Kit
    https://www.aliexpress.com/item/33007471265.html

    но к ней надо докупать или доделывать PS/2 адаптер и SD-card reader в формате Digilent PMOD:

    https://store.digilentinc.com/pmod-p...use-connector/
    https://store.digilentinc.com/pmod-m...osd-card-slot/

    или купить б/у борду Terasic DE0, что малость дороже. Но ничего соединять не надо
    https://www.terasic.com.tw/cgi-bin/p...o=364&PartNo=1

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

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

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

Эту тему просматривают: 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

Ваши права

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