Вторая (первая по времени в цикле Q-bus/МПИ) функция сигнала К БАЙТ Н (WTBT) - то, что низкий уровень на этой линии в адресной части цикла сообщает, что это будет цикл записи, ИМХО, это рудимент тех времен, когда память была чем-то, отличающимся от микроэлектронных схем. Например, ферритовой. Там, возможно, знание о том, чем будет этот цикл - записью или чтением - позволяло выиграть некоторое время и часть действий выполнить еще не получив адрес, или в процессе получения адреса.
Да не особенно оно ускорит - ведь RPLY выдают, обычно, сразу по приходу DIN, а данные можно выставить и заметно позже этого DIN'а...
Кто мешает тебе выдумать порох непромокаемый? (К.Прутков, мысль № 133)
JFYI, в проекте ReVerSE-U16 есть реализация HDMI:
https://github.com/mvvproject/ReVerS.../u16_hdmi_test
В одном проектов внутри видел зачатки передачи audio в hdml.
Есть кое-какие собственные наработки по VGA контроллеру.
А преобразователь из VGA в HDMI взял из ссылки выше от @.yu.zxpk.
Но там 60 Гц кадровая развертка.
https://zx-pk.ru/threads/30578-bk001kh-na-fpga.html
https://zx-pk.ru/threads/31292-16-ts...10/page11.html
Также есть телевизоры с VGA и HDMI входами. На вход VGA подаю с реальной УКНЦ.
https://zx-pk.ru/threads/25871-adapt...?highlight=vga
Работает от 50 Гц. Будет ли работать от HDMI на 50 Гц - не знаю. Но у меня основная плата с FPGA - Марсоход3 с HDMI выходом. На других моих FPGA платах нет разъемов VGA и HDMI. Так что для них придется городить нашлепки с разъемами.
nzeemin(17.08.2020)
С любовью к вам, Yandex.Direct
Размещение рекламы на форуме способствует его дальнейшему развитию
А есть ли в природе проекты, где HDMI генерится микроконтроллером, а не FPGA? Пусть даже очень быстрым микроконтроллером.
- - - Добавлено - - -
Ускоряет, т.к. DOUT выдается с задержкой относительно SYNC. А если ориентироваться по WTBT, то можно заметно ускорить процесс записи. Да и чтения тоже.
По поводу чтения согласен. Т.к. этот процесс идёт в фазе выдачи адреса, то адрес известен. Соответственно адрес используется и контроллер ОЗУ по сигналу арбитра формирует адрес для RAS/CAS и запоминает прочитанные данные в буферном регистре. А потом этот буферный регистр выставляется на шину по сигналу DIN. Здесь немного ускорить можно, тем более в магистрали ЦП память твёрдо стоит на двух ногах. А вот с записью сложнее. Сначала от того же процессора надо получить записываемые данные по DOUT, а уж потом выставлять для ОЗУ адрес по RAS/CAS.
Записи? И что ты запишешь раньше DOUT'а? Кто, кроме DOUT'а даст гарантию, что на МПИ уже данные, а не адрес или "звон" после переключения? Для справки, с учетом разбега сигналов по корзине, из 200 нс между SYNC'ом и DOUT'ом, адрес гарантировано держится 25 нс после SYNC'а, а данные гарантировано появляются за 25 нс до DOUT'а. Остальные 150 нс - неопределенность, вполне вероятен звон и разное время добегания тех или иных битов по корзинке, где-то может быть еще бит адреса, а куда-то уже добежал бит данных
Где? DIN выдается через 200 нс после SYNC, RPLY надо выдавать в ответ на DIN, а данные можно выставить еще позже - до 125 нс Чем тут поможет знание в момент SYNC'а, что через 200 нс прилетит DIN ?
Да, это все относится к классической МПИ в корзинке - если делать свой процессор на FPGA "по мотивам" какого-то оригинального, то можно и МПИ похоронить, как это сделал коллега Vslav в своих последних синтезах, и все сделать по-своему, но к МПИ это не будет иметь никакого отношения.
В общем, коллеги, читайте документ 3.858.382 ТО "Центральный процессор М2", он рулез!
Кто мешает тебе выдумать порох непромокаемый? (К.Прутков, мысль № 133)
Не надо забывать, что чтобы что-то записать или прочитать, нам надо получить ближайший свободный слот памяти. Установился SYNC, и мы уже можем забронировать ближайший слот, который, может быть наступит в следующем такте. Тогда как если мы для бронирования слота будем ждать DIN или DOUT, этот слот убежит, и придется ждать следующий.
- - - Добавлено - - -
Запись не происходит сразу по DOUT. Сначала контроллер памяти занимает свободный слот памяти, затем выдает на шину адреса строки и столбца, и уже затем записывает или читает данные.
Эту тему просматривают: 2 (пользователей: 0 , гостей: 2)