Важная информация

User Tag List

Страница 13 из 67 ПерваяПервая ... 91011121314151617 ... ПоследняяПоследняя
Показано с 121 по 130 из 661

Тема: Еще один Орион на ПЛИС

  1. #121
    Master Аватар для andreil
    Регистрация
    20.06.2005
    Адрес
    Светлогорск
    Сообщений
    885
    Спасибо Благодарностей отдано 
    9
    Спасибо Благодарностей получено 
    23
    Поблагодарили
    20 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от LeoN65816 Посмотреть сообщение
    andreil, тебе уже HardWareMan говорил про синхронность. Все выходные сигналы управления внешними модулями/блоками, включая и сигнала такта проца и nCAS для DRAM, должны быть регистровыми, и должны быть синхронными от одного клока (заведомо большей частоты), и никаких латчей, только флипфлопы! Синхронность - залог устойчивой работы логики на больших частотах. У тебя же все на комбинаторике, это ох!"№;%:?*ые задержки и иголки/глитчи. Даже F[0..3] на 7490 у тебя каскадирован...
    По F[0..3] - схема из ДШ, счётчик до 10-и, стандартней некуда.
    По синхронности - та схема уже переделана очень сильно, асинхронные только синхронизация и тактирование (в котором единовременно отрабатывает только одна ветвь).
    И где Вы увидели латчи? только если на участке RAM-VIDEO по данным, где это вообще параллельно А все сигналы вообще-то на флип-флопах идут, смотрите схему.
    по nCAS - у меня он используется для других целей. У меня всё на статике и это единственное использование этого сигнала.

    И не надо так агриться - я же писал, что учусь подобной разработке, а не являюсь гуру. И просил давать советы, а не ругать в духе "ты плохой, не делай так".

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

    Цитата Сообщение от barsik Посмотреть сообщение
    Как видите деталей совсем немного и смакетировать это можно за пару вечеров. А текстовый режим, даже такой несуразный, что занимает 16 кб, намного быстрее, чем графический. Проблема только в том, что я не уверен, что ОЗУ будет регенерироваться. Кто-нибудь может высказаться на этот счет?
    Проблема в том, что я моделирую с целью создать "на рассыпухе".
    И пока что делаю минимальный вариант, по-сути. Как будет стабильно работать в виде схемы, так и начну дальше "допиливать".
    Последний раз редактировалось andreil; 14.02.2018 в 21:37.
    "Байт-48"

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

  3. #122
    Moderator
    Регистрация
    14.08.2006
    Адрес
    Владимир
    Сообщений
    4,577
    Спасибо Благодарностей отдано 
    61
    Спасибо Благодарностей получено 
    106
    Поблагодарили
    92 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от barsik Посмотреть сообщение
    Я в середине 90-тых собирался сделать лично для себя такой синхронный текстовый режим в ОРИОНЕ. Он прост в реализации. Но увы, руки до этого так и не дошли, потому что я не был уверен, что этот режим не нарушит регенерацию ОЗУ.
    Да, тут я пас, трудно сказать как в классике поведет себя регенерация. Разве что попробовать.
    А вот в случае проекта andreil, где ОЗУ на SRAM, должно прокатить.
    Лучше сделать и жалеть, чем не сделать и жалеть.

    Некоторые из моих поделок тут: https://github.com/serge-404

  4. #123
    Master Аватар для andreil
    Регистрация
    20.06.2005
    Адрес
    Светлогорск
    Сообщений
    885
    Спасибо Благодарностей отдано 
    9
    Спасибо Благодарностей получено 
    23
    Поблагодарили
    20 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от Error404 Посмотреть сообщение
    Да, тут я пас, трудно сказать как в классике поведет себя регенерация. Разве что попробовать.
    А вот в случае проекта andreil, где ОЗУ на SRAM, должно прокатить.
    В самой реализации ничего сложного не вижу. И не обязательно знакогенератор в виде ПЗУ, можно и ОЗУ, что бы "на лету" менять начертание, например, через системный порт или ещё как-либо.

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

    В первом приближении текущая реализация работает, явных проблем не наблюдается. Тест-256 проходит идеально на всех частотах, корректно отображает все видеорежимы.
    Участок с памятью - времянка, скоро переделаю на нормальную двунаправленную шину, как прикручу SDRAM.
    Узел формирования RGB - 1:1 с оригинального Ориона, только защёлки другие поставил, в данном случае не принципиально.
    Узел формирования тактирования процессора и CAS позже будет перенесён в модуль CPU. А пока что посижу над оптимизацией их формирования - сейчас там схема по принципу "ну, вроде бы так должно быть", без оптимизаций и прочего.
    "Байт-48"

  5. #124
    Master
    Регистрация
    20.06.2014
    Адрес
    г. Орск, Оренбургская обл.
    Сообщений
    777
    Спасибо Благодарностей отдано 
    25
    Спасибо Благодарностей получено 
    61
    Поблагодарили
    47 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от andreil Посмотреть сообщение
    По F[0..3] - схема из ДШ, счётчик до 10-и, стандартней некуда.
    Сравни с 74168, разницу чувствуешь? Если нет, то вот подсказка - синхронность!

    Цитата Сообщение от andreil Посмотреть сообщение
    И где Вы увидели латчи?
    А ты сам повнимательнее-то посмотри на свою же схему, неужели не видишь? Еще подсказка - асинхронные сброс/установка - это тоже латчи.

    Цитата Сообщение от andreil Посмотреть сообщение
    И не надо так агриться - я же писал, что учусь подобной разработке, а не являюсь гуру.
    Что значит "агриться"? Никогда не слышал такое слово... Открою большой секрет - я сам только-только начал учиться создавать правильные (читай - синхронные) дизайны (проектов) и далеко-о-о-о не гуру...
    Цитата Сообщение от andreil Посмотреть сообщение
    И просил давать советы,
    Именно советы ты и получил, ...
    Цитата Сообщение от andreil Посмотреть сообщение
    а не ругать в духе "ты плохой, не делай так".
    ... и нафантазировал...
    Турбо АГАТ-9/16 (ЦП 65C802, 5 Махов, dual-port SRAM).

  6. #125
    Banned
    Регистрация
    05.10.2016
    Адрес
    г. Санкт-Петербург
    Сообщений
    1,080
    Спасибо Благодарностей отдано 
    0
    Спасибо Благодарностей получено 
    5
    Поблагодарили
    5 сообщений
    Mentioned
    1 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от barsik
    не уверен, что ОЗУ будет регенерироваться. Кто-нибудь может высказаться на этот счет?
    Ожидал, что сразу кто-то скажет, что ОЗУ точно не будет регенерироваться и предложит простейшее решение проблемы. Но, по-видимому, среди фанатов ОРИОНА грамотных аппаратчиков совсем не осталось.

    Ожидал также, что введение быстрого текстового режима небольшим по объёму труда способом заинтересует любителей ОРИОНА и СПЕЦИАЛИСТА. И, т.к сам я плохо дружу с паяльником и МГТФ-ом, надеялся, что кто-то захочет отмакетировать это в железе, а затем организует производство плат простой текстовой приставки к ОРИОНУ и СПЕЦИАЛИСТУ. Это вполне реально и несложно, а ниже я покажу как решить проблему регенерации ОЗУ.

    Текстовый адаптер в ОРИОНЕ простым способом


    Итак, почему ОЗУ не будет регенерироваться и как эту проблему решить?

    В ОРИОНЕ и СПЕЦИАЛИСТЕ регенерация динамического ОЗУ происходит за счёт работы видеогенератора. С этой целью все самые высокочастотные сигналы (веса) с выходов счётчиков сгруппированы в мультиплексоре так, что выдаются на РУ5-тые по /RAS (т.к именно по /RAS в РУ5-тых происходит регенерация).

    При этом, т.к в РУ5-тых, как и в РУ3-тьих вектор регенерации не 8-ми битовый, а семибитовый, достаточно, чтобы за интервал в 2000 МКСЕК на 7-ми входах из 8-ми пробегали все 128 адресов. При этом сигнал на 8-мом мультиплексируемом входе A7 (9 нога) не участвует в регенерации.

    В ОРИОНЕ веса счётчиков (и соответствующие им адреса CPU) подаются на мультиплексор совершенно логично. Вот какие сигналы мультиплексируются на выходы КП12-ых при /RAS=1 и защелкиваются в ОЗУ по заднему фронту /RAS.

    H0 (A8) -- DD23 --> на A0 РУ5-тых
    H1 (A9) -- DD23 --> на A1 РУ5-тых
    H2 (A10) - DD24 --> на A2 РУ5-тых
    H3 (A11) - DD24 --> на A3 РУ5-тых
    H4 (A12) - DD25 --> на A4 РУ5-тых
    H5 (A13) - DD25 --> на A5 РУ5-тых
    V0 (A0) -- DD26 --> на A6 РУ5-тых
    V1 (A1) -- DD26 --> на A7 РУ5-тых

    В скобках указаны адреса CPU соответствующие весам счётчиков. Видим, что веса расположены в порядке возрастания частот и вполне логично. Как отмечено выше, для регенерации то, что подаётся на A7 не важно. В текстовом режиме с 16-ю строками веса V0...V3 обнуляются, что приводит к тому, что сигнал на адресе A6 ОЗУ при /RAS не меняется (т.к V0=0), отчего ровно половина ОЗУ не регенерируется.

    Исправить это легко. Достаточно взять вес V4, который в текстовом режиме не обнуляется и заменить им вес V0 на входе мультиплексора. Вес V4 изменяется через очередные 16 линий и таким образом за время вывода 32-х строк растра всё ОЗУ будет полностью отрегенерировано. Длительность одной строки 64 МКСЕК, а значит 32 строки длятся 2048 МКСЕК, что на 48 МКСЕК больше требований РТМ для РУ5-тых.

    Для не совсем полудохлых РУ5-тых это сработает, а для полудохлых РУ5-тых, в которых от времени увеличились токи утечки в накопительных конденсаторах и период регенерации упал ниже 2 МСЕК - регенерации не будет. Если же делать текстовый режим в 32 строки, то сгодятся и полудохые РУ5-тые, т.к период регенерации будет 1024 МКСЕК, что вдвое ниже максимально допустимого.

    В данном случае замена РУ5-тых на РУ7-мые (имеющие вдвое больший период регенерации) не поможет, т.к у РУ7-мых не 7-ми битовый, а 9-ти битовый вектор регенерации и для них период регенерации получится уже 8 МСЕК, что вдвое больше их нормы в 4 МСЕК и значит РУ7-мые точно работать не смогут.

    При замене весов, надо одновременно переставлять вес счётчика и соответствующий ему адрес CPU (иначе изменится архитектура экрана), значит перекидывать придётся 2 цепи, т.е надо 4 куска проволоки. Итак, меняем местами на входе мультиплексора V4 и A4 на V0 и A0. Т.е цепи на входах DD24/6 и DD24/4 меняются с DD26/5 и DD26/3 соответственно.

    В оригинальном ОРИОНЕ период регенерации РУ5-тых равен всего 128 МКСЕК, отчего прекрасно работают даже полудохлые РУ5-тые. После такой переделки период регенерации ОЗУ в ОРИОНЕ возрастёт до 2048 МКСЕК, что возможно потребует отбраковки полудохлых РУ5-тых, что не тянут стандартный период регенерации. Заметим, что период регенерации РУ7-мых в ОРИОНЕ - 512 МКСЕК, но как указано выше, РУ7-мые для получения синхронного текстового адаптера непригодны.

    Сигнал загрузки ИР9 (нога 1) формируется CRR-цепочкой из сигнала 96 (ёмкость 180 пф, резисторы 1 кОм и 3 кОм, так это в моём текстовом адаптере). Таким образом вся доработка до текстового режима состоит всего из 4-х микросхем, 3 из которых (2732, ИР9 и КП11) на доп.платке и одна КП11 монтируется на основной плате ОРИОНА (вторым этажом над одной из КП12). В качестве формирователя программируемого упр.сигнала для включения текстового режима удобно использовать 4-тый D-триггер в DD30, что в базовой схеме формирует сигнал НП (начальный пуск). НП проще формировать на RS-триггере из двух вентилей - по /RESET взводится, а по /WR КР580 сбрасывается. Так получается готовый управляющий бит, причём прямо в нужном порту режима. Я так делал в 1991 году для программного включения режима 768*256.

    В СПЕЦИАЛИСТЕ и РК86 вектор регенерации не 8-ми битовый как в ОРИОНЕ, а 7-ми битовый (т.к изначально там стояли РУ3, а при установке РУ5 на СПЕЦИАЛИСТ-М и ЭКСПРЕСС адреса на входах мультиплексоров не сдвигали). Из-за этого при организации регенерации в текстовом режиме для СПЕЦИАЛИСТА понадобится перекидывать не 2, а 4 цепи, т.е понадобятся целых 8 кусков проволоки. Кстати, есть некоторые импортные аналоги РУ5 имеющие не 7-ми битовый вектор регенерации, а 8-ми битовый. Такие ОЗУ прекрасно работают в ОРИОНЕ, но не в СПЕЦИАЛИСТЕ или РК86.
    [свернуть]
    Последний раз редактировалось barsik; 15.02.2018 в 08:22.

  7. #126
    Master Аватар для andreil
    Регистрация
    20.06.2005
    Адрес
    Светлогорск
    Сообщений
    885
    Спасибо Благодарностей отдано 
    9
    Спасибо Благодарностей получено 
    23
    Поблагодарили
    20 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от LeoN65816 Посмотреть сообщение
    Сравни с 74168, разницу чувствуешь? Если нет, то вот подсказка - синхронность!
    7490 работает БЕЗ сброса, поэтому он полностью синхроннен.
    А ты сам повнимательнее-то посмотри на свою же схему, неужели не видишь? Еще подсказка - асинхронные сброс/установка - это тоже латчи.
    Вообще-то у 74163 сброс полностью синхроннен - происходит по положительному фронту. А начало импульса сброса идёт в предыдущем такте. Смотрим ДШ - и видим "FULLU SYNCHRONOUS COUNTERS".
    ... и нафантазировал...
    Единственное, что я увидел, высказывание "у тебя не синхронная схема, бла-бла, а надо синхронная". А как это исправить, даже ни намёка...

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

    Цитата Сообщение от barsik Посмотреть сообщение
    Ожидал, что сразу кто-то скажет, что ОЗУ точно не будет регенерироваться и предложит простейшее решение проблемы. Но, по-видимому, среди фанатов ОРИОНА грамотных аппаратчиков совсем не осталось.
    Повторюсь ещё раз - память SRAM, регенерации не требует! На каждой странице точно 1 упоминание об этом было...

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

    Итак, сейчас думаю к FPGA подключить реальную память для организации адекватных буферов и прочего.
    Присмотрел в "шаговой доступности" микросхему AS7C4098A-12JIN - 256K×16, что позволяет получить сразу 512Кб одним корпусом. С видео будет работать на полную ширину, а с процессором - по половинкам, есть входы разрешений для младшего/старшего байтов.
    Думаю заодно заказать и недостающие корпуса мелкой логики для реализации макетки...
    Последний раз редактировалось andreil; 15.02.2018 в 08:16.
    "Байт-48"

  8. #127
    Master
    Регистрация
    20.06.2014
    Адрес
    г. Орск, Оренбургская обл.
    Сообщений
    777
    Спасибо Благодарностей отдано 
    25
    Спасибо Благодарностей получено 
    61
    Поблагодарили
    47 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от andreil Посмотреть сообщение
    7490 работает БЕЗ сброса, поэтому он полностью синхроннен.
    Мда-а-а... "Красный" (сброс) и "прямоугольный" (синхронность) - это разные вещи.
    7490 - это делитель-на-2 и асинхронный делитель-на-5. Ты по типовой схеме асинхронно каскадируешь делитель-на-2 к асинхронному делителю-на-5 и получаешь (как бы дважды) асинхронный делитель-на-10.

    Цитата Сообщение от andreil Посмотреть сообщение
    Вообще-то у 74163 сброс полностью синхроннен
    Причем тут 74163, если я тебе о 74168 говорил?

    Цитата Сообщение от andreil Посмотреть сообщение
    Единственное, что я увидел, высказывание "у тебя не синхронная схема, бла-бла, а надо синхронная". А как это исправить, даже ни намёка...
    Дык, не просто намёк, а конкретный совет про использование 74168 вместо 7490 тебе был дан. И это только малая часть асинхронности твоего проекта.

    Слышащий - да услышит!
    Турбо АГАТ-9/16 (ЦП 65C802, 5 Махов, dual-port SRAM).

  9. #128
    Master Аватар для andreil
    Регистрация
    20.06.2005
    Адрес
    Светлогорск
    Сообщений
    885
    Спасибо Благодарностей отдано 
    9
    Спасибо Благодарностей получено 
    23
    Поблагодарили
    20 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Сделал некоторые упрощения в формировании горизонтального синхроимпульса, из-за чего изображение расположено не совсем по центру. Но зато схема очень сильно упростилась в этом месте.
    Так же в этом варианте вместо 480х256 уже готово 512х256
    "Байт-48"

  10. #129
    Master
    Регистрация
    24.05.2005
    Адрес
    г. Запорожье, Украина
    Сообщений
    992
    Спасибо Благодарностей отдано 
    571
    Спасибо Благодарностей получено 
    364
    Поблагодарили
    239 сообщений
    Mentioned
    2 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    VHDL на вас нет ))

  11. #130
    Master Аватар для andreil
    Регистрация
    20.06.2005
    Адрес
    Светлогорск
    Сообщений
    885
    Спасибо Благодарностей отдано 
    9
    Спасибо Благодарностей получено 
    23
    Поблагодарили
    20 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от shurik-ua Посмотреть сообщение
    VHDL на вас нет ))
    Вариант с VHDL тяжело потом перенести в железо. Но на нём я начинал проектирование - можно глянуть историю коммитов

    Кстати, "о птичках" - оставлять ли совместимость в ВМ80А или делать на Z80?

    По видео - 3 джампера на ширину изображения (384/512) и ещё 2 на широкоформатный вывод (640х480/640х350). Попробую ещё над вертикальными импульсами посидеть с оптимизацией, но там сильно вряд ли...
    "Байт-48"

Страница 13 из 67 ПерваяПервая ... 91011121314151617 ... ПоследняяПоследняя

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

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

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

Похожие темы

  1. Эмулятор ZX-Poly
    от Raydac в разделе Эмуляторы
    Ответов: 106
    Последнее: 24.01.2024, 11:52
  2. ОРИОН-2010 на ПЛИС.
    от Ewgeny7 в разделе Орион
    Ответов: 447
    Последнее: 23.11.2016, 12:27
  3. Еще один Ленинград 48
    от Ewgeny7 в разделе Ленинград
    Ответов: 0
    Последнее: 16.10.2007, 22:31
  4. Ещё один Д.Р.
    от GNTB в разделе Поздравления
    Ответов: 4
    Последнее: 19.07.2006, 01:52
  5. Ещё один подраздел
    от CityAceE в разделе Форум
    Ответов: 2
    Последнее: 22.05.2005, 11:57

Ваши права

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