Дела текущие: Vector06c-Neo
Ковыряю понемногу реинкарнацию. Проблем пока две.
1. Сильно хочется уйти от x32 организации памяти к x8, на худой конец к x16. Но при x8 стандартный 60-70ns DRAM в принципе не лезет в тайминги, отведенные для доступа видеоадаптера. У "средних" РУ6 задержка от спада /CAS до данных в паспорте 120ns, поэтому 4 обращения в x8 DRAM точно не влезут. С x16 можно повоевать. Поэтому пока двинулся в другом направлении - использовать емкую, но небыструю SRAM 512Kx8 с 55ns с прицелом в ней же и кваз разместить. Впритык в окно доступа видеоадаптера 4 обращения влезают, пока в симуляции в ModelSim. Обращения будут сопровождаться 4мя latch сигналами, разнесенными во времени, почти также как защелкиваются сейчас все 4 ИР13, но не одновременно. Для выравнивания, 3 из 4х байт будут временно защелкиваться в промежуточных регистрах, как пример - защелкивание атрибута знакоместа в спектрум-совместимых, только тут ждать надо меньше - до окончания выборки всех 32 бит. Данные четвертой страницы сохранять не надо, по четвертому стробу все будет писаться в выходные сдвиговые, но уже не ИР13, а 74HC165PW. Пока, в теории, схема выглядит правдоподобной. Отвечаю, зачем такие извращения:
- планирую уместиться в EPM7128S, что ограничивает меня и по ячейкам и по пинам, регистры в синтезе особенно дороги. Посему, все регистрово-простое, что можно вынести в отдельные корпуса, я вынесу. И даже не буду в синтез вносить, как например пиксельные сдвиговые, они изначально планировались на отдельных чипах, отдавать >=32 ячеек из 128 за такое я не готов.
- x8 занимает меньше места и отпадает необходимость в выходном демультиплексоре на КП2 до CPU.
Где есть резервы:
- мастер клок у меня 48МГц, чтобы иметь возможность уплотниться где надо или подвинуть сигналы (а 3 RC цепочки в стандартной схеме есть - на CPU клоке, на сбросе PSW и на 512 точках растра).
- не пытаться впихнуть кота в коробку, забить на кваз и поставить любые Cache SRAM x8 с доступом 10-25ns. Необходимости в защелках перед пиксельным сдвигом это не отменяет, но с таймингами становится проще.
2. Переход от DRAM к SRAM помогает во временной области, за RAS/CAS можно спокойно 2 обращения сделать, а с учетом меньшего времени доступа SRAM чипов, то и все 4. Но грабли начинаются в другом - во входном адресном мультиплексоре. Если его делать в CPLD, то туда надо завести 16 линий адреса CPU + 8 линий начала экрана ВВ55 на входы счетчиков скроллинга и вывести 8 бит мультиплексированной шины адреса памяти. Итого 32 бита и 32 пина CPLD из 84х. Это с учетом того, что все видеосчетчики внутри CPLD, как и задумывалось. Для SRAM выводить обратно надо все 16 бит адреса и ноги CPLD становятся узким местом. Да можно сэкономить 2-3 пина, поскольку убираются /CAS0-CAS3 + /CASE, но для адресации кваза добавляются еще 3 бита адреса, формируемых между основной памятью и страницами кваза. Пока промежуточное решение - вытащить входной адресный мультиплексор в логику (SN74CBT16233DGVR), а резерв в CPLD придержать, еще не делались дешифраторы IO, логика кваза и всякое остальное.
* SN74CBT16233DGVR под вопросом, он конечно прикольный и все-в-одном, но по разводке будет проще 4шт КП11 в TSSOP-16 применить (да, я знаю, что родных КП11 в TSSOP нет, но мы все же поняли, да?).
Напоминашки:
- не надо спрашивать "зачем" и искать коммерческую или иную целесообразность. Все, что я делаю - это just for fun. Вектор-06Ц был моим первым компом.
- хоть и паяльник я держать умею с детства, но на жизнь зарабатываю я написанием кода. Посему и тут и там могу быть некомпетентен. ;)
- цель проекта сделать современную реплику Вектора. Не программную эмуляцию (с этим коллеги преуспели), не синтез всего в FPGA (привет первопроходцу @svofsky), а просто милый маленький девайс. Типа iMac. В цельной алюминиевой коробке. ;) :D
PS: Невзначай появилось имя проекта. Неоригинальное, но на силксринах уже отпечатанное: Vector06c-Neo.
PS2: Коллеги, у кого нибудь есть в читаемом виде сканы наших даташитов на РУ6/РУ5/РУ7 с диаграммами и таблицами таймингов? Все что находится либо пережато и нечитаемо, либо новодел pdfный из 2х страничек к которому доверия никакого. Заранее, спасибо!
- - - Добавлено - - -
Цитата:
Сообщение от
Improver
CY7C131-15JC. Данные там на 8 бит, значит одного чипа хватит, быстродействие превосходное, и корпус можно выбрать компактный, типа plcc или pqfp...
Все, конечно, здорово... но! У меня есть CY7C131E-55JXI в PLCC52. Да, прикольно. Да SRAM и двухпортово. Но на этой площади 2x 155РУ2 точно уместятся, толкаться не будут и доп. согласования не попросят.
Не, чипы прикольные, я не спорю, но они не про то.
;) А вот на них сделать non-wait шлюз с "программным арбитражем и семафорами" ("с блек-джеком и дамами с пониженной социальной ответственностью" (c) Bender@Futurama) - это интересно.
А с другой стороны подвесить можно всякое. GPU например на FT812, как коллега TSLabs сделал с ZX-Evo.