User Tag List

Страница 14 из 17 ПерваяПервая ... 1011121314151617 ПоследняяПоследняя
Показано с 131 по 140 из 163

Тема: Радио-86РК: Реализация компьютера на ПЛИС

  1. #131

    Регистрация
    03.07.2005
    Адрес
    Санкт-Петербург
    Сообщений
    10,168
    Спасибо Благодарностей отдано 
    147
    Спасибо Благодарностей получено 
    84
    Поблагодарили
    55 сообщений
    Mentioned
    1 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от andykarpov Посмотреть сообщение
    А не поделитесь ли кусочком исходников формирования ТВ сигнала?
    Именно для этого РК, где Черт ногу сломит в коде благодаря "чудесному" симулированию ВГ75? Или формирование ТВ-фрейма вообще, без "отягчающих обстоятельств"?

    ---------- Post added at 22:47 ---------- Previous post was at 22:38 ----------

    Кстати, Бейсик от Апогея прекрасно запустился на моей РКшке... Наверное, благодаря тому, что у меня поле памяти не ограничено 32 килобайтами...
    ScorpEvo ZS 1024 turbo+ CF-HDD/FDD/Mouse/SMUC 3.1/ProfROMse/NeoGS/ZC
    Speccy-2007 128/AY/TR-DOS

    Сайт с документацией к "Scorpion ZS 256"

  2. #132

    Регистрация
    19.12.2013
    Адрес
    г. Никополь, Украина
    Сообщений
    1,017
    Спасибо Благодарностей отдано 
    363
    Спасибо Благодарностей получено 
    706
    Поблагодарили
    187 сообщений
    Mentioned
    7 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от Ewgeny7 Посмотреть сообщение
    Именно для этого РК, где Черт ногу сломит в коде благодаря "чудесному" симулированию ВГ75? Или формирование ТВ-фрейма вообще, без "отягчающих обстоятельств"?
    Давайте все, что не жалко, в любом случае - буду очень признателен!

    ---------- Post added at 23:08 ---------- Previous post was at 23:05 ----------

    Цитата Сообщение от b2m Посмотреть сообщение
    Загнул! 2МГц! Сам считай: тактовая РК 1.78МГц, самое быстрое чтение - 8 команд mov m,a подряд, каждая 7 тактов, потом mov a,m. Получится 254КГц.
    Сорри Кстати, у меня завелась SD-карточка!!! Почему-то только одна из 3 micro-SD карточек захотела работать.

    Цитата Сообщение от b2m Посмотреть сообщение
    В архиве есть asm.cmd для примера. Я повесил его на .asm файлы в Far-е, запускает к примеру: asm.cmd dos

    Использую кроссассемблер tasm. Из того архива нужны лишь 2 файла: tasm.exe и tasm85.tab[COLOR="Silver"]
    Спасибо за инфу, будем знать. Пока вроде бы вопрос колупания исходников той части, которая на стороне самого РК - отпадает

    ---------- Post added at 23:21 ---------- Previous post was at 23:08 ----------

    А еще вопрос к автору проекта radio-86RK и знатокам, плз: где курить параметры развертки для VGA, чтобы как-то уменьшить изображение по вертикали? А то на всю высоту в монитор картинка не помещается. Сейчас вижу видеорежим 640x480 x 31.2 kHz x 50Hz.

    Внутри rk_video.v куча регистров, каких-то вшитых десятичных констант, непонятно что к чему:
    assign hr = h_cnt >= 10'd478 && h_cnt < 10'd530 ? 1'b0 : 1'b1;
    assign vr = v_cnt >= 10'd608 && v_cnt < 10'd614 ? 1'b0 : 1'b1;
    assign cce = d_cnt==3'b000 && state==2'b01;
    Тут 478, 530, 608, 614...

    if (state==2'b00) begin
    if (d_cnt==3'b101) begin
    data <= lten ? 6'h3F : vsp ? 6'b0 : fdata[5:0]^{6{rvv}};
    end else
    data <= {data[4:0],1'b0};
    if (h_cnt+1'b1 == 10'd533) begin
    h_cnt <= 0; d_cnt <= 0;
    if (v_cnt+1'b1 == 10'd625 ) begin
    v_cnt <= 0;
    end else begin
    v_cnt <= v_cnt+1'b1;
    end
    end else begin
    h_cnt <= h_cnt+1'b1;
    if (d_cnt+1'b1 == 3'b110) begin
    d_cnt <= 0;
    end else
    d_cnt <= d_cnt+1'b1;
    end
    end
    end
    Тут 533, 625 - что это ?

  3. #133
    HardWareMan
    Гость

    По умолчанию

    Может, это отступления от стандартной развертки?
    http://www.epanorama.net/documents/pc/vga_timing.html

  4. #134

    Регистрация
    19.12.2013
    Адрес
    г. Никополь, Украина
    Сообщений
    1,017
    Спасибо Благодарностей отдано 
    363
    Спасибо Благодарностей получено 
    706
    Поблагодарили
    187 сообщений
    Mentioned
    7 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от HardWareMan Посмотреть сообщение
    Может, это отступления от стандартной развертки?
    http://www.epanorama.net/documents/pc/vga_timing.html
    Это похоже на какие-то хитрые вычисления от того, что отдает нам ВГ75 + формирование вертикальной и горизонтальной синхронизации в привязке к входящей тактовой частоте 50МГц. Но пока очень сложно разобраться, что же эта магия делает в коде rk_video.v

    Я просто вопросы по поводу цифр задаю потому, что реализация несколько отличается от классического формирования HSYNC + VSYNC на fpga:

    Вот пример с fpga4fun, в котором разложено все по полочкам:
    http://www.fpga4fun.com/PongGame.html

    ---------- Post added at 12:20 ---------- Previous post was at 11:54 ----------

    А вот это, я так понимаю, реализация мигающего курсора?
    if (d_cnt==3'b101) begin
    data <= lten ? 6'h3F : vsp ? 6'b0 : fdata[5:0]^{6{rvv}};


    ---------- Post added at 13:32 ---------- Previous post was at 12:20 ----------

    исходя из того, что в РК 64 знакоместа по горизонтали и 25 по вертикали (знакоместо при этом 6х8 + под каждой строкой орисовывается 2 линии растра), получается картинка размером 384х250.
    вот с этого места непонятно, как из нее получается 640х480

  5. #135

    Регистрация
    20.06.2007
    Адрес
    С.-Петербург
    Сообщений
    4,299
    Спасибо Благодарностей отдано 
    1,030
    Спасибо Благодарностей получено 
    813
    Поблагодарили
    484 сообщений
    Mentioned
    26 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    640x480 -- это "логический" размер. VGA-шный сигнал аналоговый и пикселей в нем нет. Если модулировать луч два раза на строку, будет 2 пикселя в строке, если 1000 -- будет 1000.
    Больше игр нет

  6. #136
    HardWareMan
    Гость

    По умолчанию

    Цитата Сообщение от svofski Посмотреть сообщение
    640x480 -- это "логический" размер. VGA-шный сигнал аналоговый и пикселей в нем нет. Если модулировать луч два раза на строку, будет 2 пикселя в строке, если 1000 -- будет 1000.
    Это все справедливо для ЭЛТ моников. Для LCD следует придерживаться некоторых правил. 384х250 отлично вписывается в 800х600 при минимально возможном бордюре. Этот режим используется в эмулях в полноэкранном режиме и в моем МХ2.

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

  8. #137

    Регистрация
    24.01.2008
    Адрес
    Уфа
    Сообщений
    3,926
    Спасибо Благодарностей отдано 
    105
    Спасибо Благодарностей получено 
    291
    Поблагодарили
    217 сообщений
    Mentioned
    10 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от andykarpov Посмотреть сообщение
    где курить параметры развертки для VGA, чтобы как-то уменьшить изображение по вертикали? А то на всю высоту в монитор картинка не помещается. Сейчас вижу видеорежим 640x480 x 31.2 kHz x 50Hz.
    Давно это было. Но режим я вроде 800х600 делал, полярность КСИ/ССИ от него должна быть. Строчная - да 31,5 КГц должна быть.

    Цитата Сообщение от andykarpov Посмотреть сообщение
    Тут 533, 625 - что это ?
    Вобщем считается это так. Для начала прикидываем пиксельклок: РК программирует 78 символов + 8 на ССИ, символ по 6 точек, итого 516 точек. Умножаем на строчную получаем 16,254МГц. Из 50МГц можно получить делением на 3 (я не стал заморачиваться с PLL). После деления на три получим пиксельклок 16,(6)МГц, и разделив на строчную получим полное количество точек в строке 529. В коде стоит однако 533, это я потом напильником дорабатывал, чтобы экран чуть-чуть по горизонтали сплющить, а то буквы слишком близко к краю экрана были. С вертикальной та-же фигня 31500/50=630, после доработки напильником 625

    Цитата Сообщение от andykarpov Посмотреть сообщение
    Внутри rk_video.v куча регистров, каких-то вшитых десятичных констант, непонятно что к чему:

    Тут 478, 530, 608, 614...
    Это начало и конец ССИ и КСИ. Сначала рассчитывал, по аналогии с другими режимами VGA, потом просто доработал напильником под свой монитор

    ---------- Post added at 17:17 ---------- Previous post was at 17:06 ----------

    Понял, почему у тебя 640х480. Вот табличка (по ссылке от HardWareMan-а)
    Код:
    Mode     Horiz Vertical Horiz Vert Horiz HSYNC Vertical VSYNC
             Dots  Lines    KHz   Hz   Sync  Pol   Sync     Pol
    VGA-480  640   480      31.5  60   3.8us -     64us     -
    VGA-400  640   400      31.5  70   3.8us -     64us     +
    SVGA I   800   600      35.2  56   2.0us -     57us     -
    SVGA II  800   600      37.8  60   3.2us +     106us    +
    SVGA III 800   600      48.0  72   2.4us +     125us    +
    XGA      1024  768      48.5  60   2.0us -     124us    -
    Я взял полярность от режима SVGA I, а строчная у меня неправильная. Я почему-то решил тогда, что должно быть 31.5 и точка

    ---------- Post added at 17:33 ---------- Previous post was at 17:17 ----------

    Цитата Сообщение от andykarpov Посмотреть сообщение
    А вот это, я так понимаю, реализация мигающего курсора?
    Нет, это данные для сдвигового регистра. Учитывается подчеркивание (реализовано выходом lten) и инверсия (rvv). Ну и мигание тоже: vsp это одноимённый сигнал ВГ75 video supression. Он используется и во время ССИ/КСИ.
    Последний раз редактировалось b2m; 04.09.2014 в 16:21.

  9. #138

    Регистрация
    19.12.2013
    Адрес
    г. Никополь, Украина
    Сообщений
    1,017
    Спасибо Благодарностей отдано 
    363
    Спасибо Благодарностей получено 
    706
    Поблагодарили
    187 сообщений
    Mentioned
    7 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Спасибо за подробные разъяснения! Теперь картинка начала проясняться

    Итак, я решил немного допилить этот кусок и реализовать SVGA II режим 800x600x60Гц.

    Судя из вышеперечисленных алгоритмов вычисления, для 516 точек в строке и частоты 37.8 кГц нужен пиксельклок 19.5МГц.
    С помощью PLL получилось сделать 19.512МГц.
    В коде поменял полярность ССИ и КСИ на положительную, согласно требованиям видеорежима.
    Также убрал деление на 3 (счетчик state), ибо на вход rk_video подаю 19.5Мгц с PLL.
    После вычислений получилось точное количество точек в строке 516 при количестве строк 630. Посему поправил 533 на 516 и 625 на 630.

    Остался вопрос с началом и концом ССИ и КСИ.
    Согласно табличке, длительность горизонтального синхроимпульса должна составлять 3.2us, и вертикального - 106us. Сколько это в точках линии и количествах строк - непонятно, и непонятно в какой момент этот синхроимпульс должен включаться и отключаться. Просветите, плз!

  10. #139

    Регистрация
    24.01.2008
    Адрес
    Уфа
    Сообщений
    3,926
    Спасибо Благодарностей отдано 
    105
    Спасибо Благодарностей получено 
    291
    Поблагодарили
    217 сообщений
    Mentioned
    10 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от andykarpov Посмотреть сообщение
    Остался вопрос с началом и концом ССИ и КСИ.
    Согласно табличке, длительность горизонтального синхроимпульса должна составлять 3.2us, и вертикального - 106us. Сколько это в точках линии и количествах строк - непонятно, и непонятно в какой момент этот синхроимпульс должен включаться и отключаться. Просветите, плз!
    19.5Мгц*3.2us = 62.4 точки
    37.8кГц*0.106ms = 4.0068 линии

    ---------- Post added at 20:56 ---------- Previous post was at 20:51 ----------

    Цитата Сообщение от andykarpov Посмотреть сообщение
    Судя из вышеперечисленных алгоритмов вычисления, для 516 точек в строке и частоты 37.8 кГц нужен пиксельклок 19.5МГц.
    516 точек это для ТВ развёртки хорошо. Для VGA возможно больше нужно будет, чтобы изображение по горизонтали не вышло за края экрана.

    ---------- Post added at 20:59 ---------- Previous post was at 20:56 ----------

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

    ---------- Post added at 21:00 ---------- Previous post was at 20:59 ----------

    Или вверх/вниз - для КСИ.

  11. #140

    Регистрация
    19.12.2013
    Адрес
    г. Никополь, Украина
    Сообщений
    1,017
    Спасибо Благодарностей отдано 
    363
    Спасибо Благодарностей получено 
    706
    Поблагодарили
    187 сообщений
    Mentioned
    7 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    В общем сделал я 800x600x75Гц, используя пиксельклок 25МГц.
    Монитор показывает правильные времянки, поляризацию и разрешение.
    Но теперь, похоже, ВГ75 не успевает Или у меня руки совсем кривые ))
    В Вашем коде сигнал cce для ВГ75 формируется заранее с запасом (при state==2'b01, после него есть еще state 2'b10).

    Проявляется бага в рандомном скакании надписи РАДИО-86РК по экрану.

Страница 14 из 17 ПерваяПервая ... 1011121314151617 ПоследняяПоследняя

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

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

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

Похожие темы

  1. Радио-86РК: Разное
    от Titus в разделе Радио-86РК
    Ответов: 351
    Последнее: 05.04.2018, 16:19
  2. Ответов: 65
    Последнее: 14.11.2014, 08:05
  3. Ответов: 92
    Последнее: 19.02.2009, 17:33
  4. Радио 86РК
    от Shnurkov в разделе Барахолка (архив)
    Ответов: 1
    Последнее: 02.01.2009, 12:52

Ваши права

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