![]() |
fan, последняя ссылка не действует - нет файла, выложи если у тебя сохранено.
|
1 Attachment(s)
Ну в общем думал-думал и решил:
надо делать и то, и другое.... от IDE отказываться неохота а в то-же время SD/MMC тоже потенциал для развития имеет. В ПЛИС места более чем предостаточно а вот с ногами проблемы... И пришла ко мне идейка одна... а что, если я отделю шины проца A и D от остальной части спека... т.е. отключил буфера и делай с ОЗУ и ПЗУ что хочешь... (в пределах например полутакта проца....). AY и ZX-BUS останутся с процом. Таким образом около 20 ног на ПЛИС освобождается... Но это только в теории.... Что думают по этому поводу железячники??? Будет работать??? |
А почему было не сделать как на UFO-2 fan'a? А то буфера у тебя всёж мягко говоря непродумано поставлены. :) Да и топология у него более компактная получается.. Попроси готовую разводку, да подрихтуй под свою ПЛИС, всё равно вручную делаешь.
|
Quote:
Если я правильно понимаю ты имееш в виду отделить только видеопамять??? Дело в том что мне нужен доступ КО ВСЕЙ ПАМЯТИ ВКЛЮЧАЯ ПЗУ! И так... чтобы сигналы на адресной шине проца не мешали... |
Quote:
Quote:
|
Quote:
Короче мне нужен доступ к памяти по всем адресам (со стороны ПЛИС разумеется) |
Quote:
|
Quote:
Да и 1 чип экономится (тот что в ReSpecT для видеопамяти). Да и вообще... может ПЛИС в будущем снапшоты напрямую в ОЗУ кидать будет... В общем нужно мне это! |
Quote:
Quote:
:v2_devil: Это моё 666 сообщение :v2_devil: на этом форуме :) |
Quote:
А то БК тебя раскатает по концепциям :v2_thumb: |
Quote:
|
Quote:
А то не очень понятно чего творится с процом когда его отрубили от шин (тормозится клоком ?). И не понятно как на данный момент работает видео система , и будет ли отдельный видео мозг . Вместо схемы лучше нарисовать блок схему со всем что на данный момент планируется . ================================================== ======= http://www.worldofspectrum.org/ZXSpectrum128+3Manual/ http://www.worldofspectrum.org/ZXSpe...pter8pt24.html |
Quote:
И ещё вопрос ко всем - насколько грамотно писались программы, работавшие с верхней памятью в скорпах и каях на предмет не будут ли они гадить в D0-2 #1FFD? |
Quote:
|
Quote:
Попробую описать словами. Итак: В принципе ничего особо нового пока не планируется. Вся логика будет, конечно же, в ПЛИС. Там же (в ПЛИС) будут: 1. видеоконтроллер 2. контроллер IDE и SD/MMC 3. контроллер PS/2 клавиатуры и мыша 4. 2 СОМ-порта 5. контроллер 1 (или 2х) джойстиков 6. Часики 7. Covox и SounDrive Теперь обо всем поподробнее: Вообще считаю правильным В ОБЯЗАТЕЛьНОМ ПОРЯДКЕ поддержку совместимости с существуюшими популярными клонами. Реализовать планирую следующим образом: При включении спека (сразу или после нажатия какой нибудь кнопки) вход в SETUP, где и будет конфигурироваться весь спек. Например Дата и Время для часов, стандарт (пентагон, кай, атм....), контроллер IDE и т.д. Текущая конфигурация будет сохранятья. Включение и отключение ТУРБО, кнопками на клаве. Также будет вход на джойстик. Кнопкой на клаве можно будет переключать: кемпстон/синклер 1,2/курсор джойстик. Короче вход для джойстика будет один, а тип будет выбираться. Все изменения конфигурации по кнопкам на клаве (такие как турбо, тип джойстика) будут в течении 1-3 сек. отображаться в нижнем правом углу экрана. Для этого мне и нужен полный доступ к ПЗУ со стороны ПЛИС. В ПЗУ как раз и будут храниться эти строчки (Turbo: on/off, Joystick: Sinclair/КKempston). По 1 пункту: Поповоду видеоконтроллера пока ничего конкретного сказать немогу так как я еще никаких видеорежимов, кроме стандартного, не делал. Если хватит ног на ПЛИС, то сделаю, как посоветовал fan, 4 бит на цвет. Потом походу можно будет заняться разными видеорежимами. Планировал подключение к VGA (с частотой 75Гц). 2. Планируется поддержка DivIDE, NemoIDE, SD/MMC-Card... Но тут, вроде, особенностей никаких нет. 3. Контроллер PS/2 клавы реализуется на ПЛИС без тормоза проца. С мышкой еще не думал, но думаю Кемпстон хватит. 4. 2 СОМ порта потому что МАХ232 для 2х как раз хватит. По какому стандарту, пока не решил. Но наверное всетаки как у caro. 5. Про джойстики вроде понятно описал сверху :) 6. Часы.... просто прикручу. Походу видно будет. 7. Covox и SounDrive будут работать через PWM. Порты тоже переключать кнопками на клаве. Миксироваться будут программно в ПЛИС (Пока понятия не имею как это решается, но то что это возможно знаю :) ) Вот так! Процессор и AY будут реальные. 1 мег ОЗУ. 512К ПЗУ. Поначалу прицеплял ПЗУ и ОЗУ отдельно от проца напрямую к ПЛИС, но за нехваткой ног надо как-то их совмещать. Поэтому и думал о том варианте с буферами между процом и памятью. Если, например, видеоконтроллеру надо читать из ОЗУ проц тормозить не хочу. Думал (на частоте 14МГц) отключать буферами проц от памяти, читать байт и снова включать. Для этого должно хватить 1/4 такта проца. Поэтому, думаю, должно будет работать. Память на 55мс потянет без проблем (уже запускал проц своего первого спека на 14МГц :) летает.... Кстати проц был Z84C0006... за 2 минуты работы проблем не заметил, даже проц почему-то не грелся). то fan... поделись исходниками ПЛИС от ReSpecT128.... Очень нужно :) (dr_dmitrij[sobaka]web[to4ka]de) |
Quote:
Я делал аналогичный девайс на МК+ПЛИС. Просто на ПЛИС такое делать неоптимально. И как часики будут сделаны в ПЛИС? Она что от батарейки будет питаться, когда комп выключен? И насколько хватит? А мышь в только в ПЛИС по-человечески не сделать, т.к. нужно еще предусматривать настройку масштабирования и, возможно, целесообразно сделать интерполяцию координат, хотя я так не делал. Немного экспериментировал с линейной интерполяцией, но заметного улучшения не обнаружил. |
Quote:
Поставлю, как в ZX Multi Card - PCF8583 На ПЛИС PS/2 клава занимает, точно не помню, около 125 ячеек (только опрос, спек в клаву ничего не посылает. Да и зачем?) Так что проблем я невижу... На счет мыша пока ничего сказать не могу, т.к. пока не делал... |
Quote:
Quote:
Quote:
Quote:
Quote:
Quote:
|
Quote:
Quote:
Quote:
к ним подмешаю BEEPер... итого через PWM 2 ноги (стерео) вместо 1. ДЛЯ ЭТОГО МНЕ 1 НОГИ НЕ ЖАЛКО DivIDE например отбирает ВСЕГО 5 ПИНОВ. Зато сколько лишних корпусов и заморочек экономится!!! Quote:
|
Quote:
|
Quote:
Quote:
Quote:
Quote:
Может что то конкретное интересует ? Навсякий случий (если завтра запаздаю) - порт накручивал от балды - -- Порт #EFF7 - Графические режимы. PORT_EFF7[].clk=nIORQ or nWR or VA_CPU[12] or VA_CPU[3] or NOT(VA_CPU[15] and VA_CPU[14] and VA_CPU[13]); PORT_EFF7[].clrn=nRESET; PORT_EFF7[0].d=D[0]; -- =PORT_EFF7[0].q; bit0 - 4BIT Per Pixel OK PORT_EFF7[1].d=D[1]; -- =PORT_EFF7[1].q; bit1 - 512x192 -- PORT_EFF7[2].d=D[2]; -- =PORT_EFF7[2].q; bit2 - disable memory above 128k -- PORT_EFF7[3].d=D[3]; -- =PORT_EFF7[3].q; bit3 - read/only cache -- PORT_EFF7[4].d=D[4]; -- =PORT_EFF7[4].q; bit4 - 256x224-\__320x200 (GIGASCREEN)OK 0-\__256x192 PORT_EFF7[5].d=D[5]; -- =PORT_EFF7[5].q; bit5 - 256x256-/ (SB)OK 0-/ PORT_EFF7[6].d=D[6]; -- =PORT_EFF7[6].q; bit6 - TURBO 7MHz (384x304)OK PORT_EFF7[7].d=D[7]; -- =PORT_EFF7[7].q; bit7 - CMOS -- Придатков от +3 не внедрял . Цвет на току вклинивал как по описанию (у меня) , в сырке выглядит страшновато , на блоксхеме веселей . Смена разрешений - просто смена констант начала и конца бордюров , гашений , синхр . Вот типа пример - -- SYNC -- -- HORIZONTAL SYNC -- CASE PORT_EFF7[5..4].q IS -- Выбираем позицию синхры по горизонтали bit5 bit4 WHEN 0 => H_SYNC_START[]=320; H_SYNC_END[]=353; -- 0 0 - 192 WHEN 1 => H_SYNC_START[]=320; H_SYNC_END[]=353; -- 0 1 - 224 WHEN 2 => H_SYNC_START[]=320; H_SYNC_END[]=353; -- 1 0 - 256 WHEN 3 => H_SYNC_START[]=352; H_SYNC_END[]=385; -- 1 1 - 320x200 ONLY!!! END CASE ; ....... ....... ....... -- VERTICAL SYNC -- Длительность - одна строка (кто хочет больше - флаг в руки). CASE PORT_EFF7[5..4].q IS -- bit5 bit4 | Выбираем позицию синхры по вертикали. WHEN 0 => V_SYNC_START[]=249; V_SYNC_END[]=249+1; -- 0 0 - 192 WHEN 1 => V_SYNC_START[]=265; V_SYNC_END[]=265+1; -- 0 1 - 224 WHEN 2 => V_SYNC_START[]=281; V_SYNC_END[]=281+1; -- 1 0 - 256 WHEN 3 => V_SYNC_START[]=249; V_SYNC_END[]=249+1; -- 1 1 - 320x200 ONLY!!! Остальные разрешени отрубаются . END CASE ; Добавлено через 19 минут Quote:
|
Quote:
Я чтото подобное планирую Да и вообще - теория теорией, а где спек этот???? Ну который на концепциях твоих построен (хоть десятая доля того что ты придумал :D)??? Кстати..... размести это все в плис с 64 I/O ногами :v2_lol: Или плата получится как 4 АТМа..... А скорее всего этого спека..... ну в общем никогда никому в реале не видеть... Добавлено через 3 минуты Quote:
Quote:
А еще проще в часиках (PCF8583), там 240 байт.... Хватит с лихвой. |
Это принцип. При том на примере преобразователя ZX to VGA, но по этому же принципу можно и формирование видеовыхода в видеопроцессоре сделать. Для видеопроцессора всё проще - преобразования не нужно - бери сразу из видеопамяти, и только последовательность кадров формируй по указанному алгоритму:
- для стандартного режима -> 1й кадр, усреднённый кадр, 2й кадр; - для Gigascreen+ -> усреднённый кадр, усреднённый кадр, усреднённый кадр. Quote:
|
Quote:
Понимаешь, я хочу чтобы плата получилась ну вроде как универсальной. Т.е. менять что-либо в железе чтобы минимум. А все самое интересное будет в ПЛИС! Вот потом можно пробовать что душе угодно. Поэтому и вешаю все на одну плату... Хотя план действий уже почти готов ;) Скоро отпуск! Это значит что первый экземпляр уже не за горами! Ну и вернусь к своему вопросу о разделении буферами проца и памяти... Реально ли ждать от этого решения работоспособности???? Добавлено через 7 минут Quote:
И арифметика типа этой: RGBI=(R1+R2)/2; (G1+G2)/2; (B1+B2)/2; (I1+I2)/2 потребует как минимум еще несколько ног! Потому что придется палитру глубже, чем 4 бита делать. |
Quote:
Quote:
|
Quote:
Поэтому, если время позволит, надо будет тоже мегу16 прикрутить! Авось чем помочь смогу. Но основное внимание пока сосредоточено на новой плате! Добавлено через 3 минуты Quote:
Мне нужен доступ к ROM без участия проца :v2_blush:... Добавлено через 6 минут Quote:
|
Quote:
|
Quote:
Нафига например часики??? Просто кому-то хотелось!!! Ну чтобы просто были! А зачем??? Какой реально от них толк??? Вот-вот :confused: Так-же и мне! Ну хочется чтобы надписи эти были и все тут!!! |
Тоды прицепи ПЗУ знакогенератора и/или ОЗУ ещё под это отведи, тоды и текстовый режим можно реализовать на раз.. ..боже, что я говорю.. :) Но лучше всёж знакогенератор на старте грузить в ОЗУ, (ПЗУ тормозное для видеопроцессора) ну не 32к видео ОЗУ поставишь, а 64к - какая разница.. на 1 специальную ножку больше..
Кстати, этот текстовый режим можно будет использовать в работе монитора-конфигуратора при старте компьютера, т.е. ещё до старта Спековского ПЗУ. Заодно и текстовый режим в 80 колонок автоматом прикручивается :v2_devil:. |
Quote:
|
Quote:
С.м. диграмму там где про цвет на точку (я её ща малость подправил чтоб было видно как в респекте фурычит). Если проц ломится в VRAM во время работы ВК то его клок отрубается (на бордюре не отрубается). Зато в RAM всегда летает как не разгоняй . Quote:
Писать в часы не одабрям (необоснованные испуги пугают отсутствием оных часов в гредущем). Quote:
И всеравно считаю что так называемая совместимость - лесом... (ниже объясню). Ибо раскладка порта EFF7 менялась раза три (если не больше), про другие порты и говорить страшно (особенно мозговые). Quote:
Quote:
Quote:
Сделать тупоё вписывание номера порта(портов) и бита(битов) , ну ещё указать если нужно по каким битам порт дешифруется , для программёра делающего серьёзные вещи - как два байта переслать . Ну на худой конец можно оснастить прогу какимнить бинарником в котором дедовским способом будут вписываться номера портов и биты . И кстати , ALL . Восемь бит , это не восемь устройств/режимов , а немного побольше ;) К чему я это ??? Наверное к сетатапу :D |
Quote:
Quote:
Quote:
Quote:
Quote:
|
Вот я, например, планировал проблему совместимости
с существующими клонами решить следущим образом: Никаких портов для выбора конфигурации использоваться не будет! Изменить конфигурацию можно будет либо в SETUP, либо online через клаву! Выбрал нужную конфигурацию - она сохранилась например в SerialFLASH. ПЛИС читает инфу оттуда и рулит портами как надо. И соответствующие банки с различными прошивками в ПЗУ подключает. С точки зрения совместимости с уже существующим софтом проблем быть недолжно, т.к. для программ это абсолютно прозрачный процесс. Добавлено через 5 минут Quote:
Просто пин с WAIT на ПЛИС не нашел! Как я понял тормоз включается отрубанием CLOCK??? Может и мне так сделать??? Ногу для WAIT сэкономить мона! А вообще охота совсем без тормозов :v2_walkm: |
Quote:
Quote:
Quote:
Один раз выбрать и сохранить "некомфортно" ? :v2_eek: А выбирать управление для игры то же "некомфортно" ? Quote:
А такой подход с BIOS( = лес широкий и ветвистуй в одном пучке :D ) только развратит программистов , они не только сетапы не будут приделывать , но и писать под такую извраную консоль (существующую в BIOS) , что ни на каком другом реале не запустися . (шутка юмора) ================================================== ======= Собсно чего сейчайс творится ? - Есть туева хуча портов с попсовой дешифрацией , не требующей никаких немо-бас . То что и десяти процентов этого лома не используется подавляющим большинством юзверов - к годалке не ходи . Но как только кто-то что-то хочет захавать сразу протесты . И спрашивается нафига мне резервировать порты под девайсы которые никогда у меня не будут торчать , если эти порты можно пустить на что угодно . Как пример - есть некий видео чип (или не важно что , хоть ящик шаговиков), который претендует на роль стандартного девайса , вместо того чтоб устраивать консилиум по выбору портов , нужно лишь "заставить" программёров прикрутить сэтап к проге . Я уже не говорю про выбор раскладки для мозговых портов , уж с десяток лет очевидно что нужно прикручивать сетуп ко всему что юзает больше 128к мозгов . Добавлено через 23 минуты Quote:
Quote:
Quote:
|
Quote:
Добавлено через 18 часов 44 минуты Вчера ради интереса повыпаивал ВСЕ ДО ЕДИНОГО блокировочные конденсаторысо своего спека (того, что на CPLD XC95144XL). Он запустился нормально и я не обнаружил никаких проблем со стабильностю. Все дорожки 0.4мм и питание идет не со стороны YA и проца а наоборот - с другого конца. Может быть он остался работоспособным потому, что плата маленьких размеров (160мм х 100мм, AY проводами подпаян)???? ----------------------------------------------------------------------- Долго думал как ноги на ПЛИС сэкономитъ. Может сделать видео на отдельной ПЛИС (XC9572)??? Тогда можно будет и глубину цвета до 4 бит на цвет увеличить! будет 4096 цветов. Только вот как между собой нормально соеденить процессорную часть с видео??? Я имею в виду передачу каких сигналов (проц <=> видео, кроме шин А и D) надо огранизовать и как ??? Думал сделать как в SpeccyBob т.е. передавать в видеоадаптер 3 сигнала: 1. Увеличить значение экранного счетчика на 1 2. Читать байт пикселов 3. Читать байт аттрибутов Из видео в процессор только 1 сигнал: INT Может у кого нибудь есть другие идеи на этот счет??? |
Quote:
Quote:
И я сомневаюсь что в XC9572 влезит необходимая куча регистров + мелоч , ибо - [ 3 канала * 4бит(на канал) * 16оттенков = мозг в 192 бит ] . А вот в основной матрице такая фигня запросто уместится . Кстати думаю стоит выдрать накрутчик из сырков V9938 (всё есть у меня на сайте в самом низу страницы). Принцип действия простой - выбираем девайс , швыряем ему по два байта на один цвет в палитре (RGB) , после этого двайс сам переключается на приём следующей пары байт и т.д. пока все 16 цветов не загрузятся . По два байта нужно швырять потому что - в первом байте биты красного и синего - 0 R2 R1 R0 0 B2 B1 B0 , во втором только зелёного - 0 0 0 0 0 G2 G1 G0 . Во блин , там 3бита на канал (я чёто думал что четыре , ещё удивлялся чего это в TurboGrafX16 по 3 сделали :v2_lol: ) . Короче можно и три сделать , хотя палитра получается страшноватая (но полюбому лучше чем при 2бита на канал). Но зато существует крутейшая конвертилка какртинок под такую палитру ! http://www5d.biglobe.ne.jp/~hra/soft...omsx/index.htm Она кстати супортит режим похожий на Hardware Multicolor (Атрибут на байт (два цвета на каждые восемь точек по горизонтали)) , только с произвольной палитрой , картинки получаются просто супер . Останется лишь сами байты/биты перетосавать под спековый экран . З.Ы. В TurboGrafX16 юзается несколько палитр , но там свой резон - каждый тайл может захавать любую палитру . В спеке впринципе можно почикать экран на области действия каждой палитры , тоже не хило будет . Quote:
И насколько я понял - если раньше спокойно умещалось два бита на цветовой канал , то остаётся освободить всего три пина (для трёх бит на канал),т.е. выкинуть какойнить COM порт ;) . З.Ы. Делай сайт !!! И накидай там всяких описаний чего и как будет фурычит , а так же блок схемы того что будет в матрице и самого компа . |
Quote:
Со воими рекомендациями и соображениями идем СЮДА |
Quote:
У меня код на чистом асме для КР1878ВЕ1, который делает все описанное, занимает около 700 байтов + буфер ОЗУ ~32 байта. Если речь шла о Verilog-коде ps2, который лежит на opencores, то, боюсь, на Спектруме от него без серьезной переработки толку мало будет. |
Quote:
Вот доделаю плату, потом разберемся: возможно или нет? :D p.s. В данный момент собираю DivIDE (XC9572 + RAM + ROM) Как только обкатаю :v2_cool:, буду доделывать плату..... |
Quote:
|
| All times are GMT +4. The time now is 18:10. |
Powered by vBulletin® Version 3.8.3
Copyright ©2000 - 2014, Jelsoft Enterprises Ltd.