Вот что получается по выравниванию частот по процессору...
По мануалам, RATO должен начинаться за 100нс (tRYS) до переднего фронта тактовой частоты на такте Т2, и заканчиваться за такое же время до переднего фронта тактовой частоты на цикле ожидания. Тактовая частота отстаёт от фронтов входной частоты на tXKR = 25..120нс, итого, получается, нули в RATO должны начаться до задержки минимум за 2 бита (передний фронт тактовой частоты) + 1 бит (=~83нс), итого за три бита. Тут пока всё просто.
Чтение данных из памяти производится на тактах Т2 и Т3, точнее сказать от начала Т1 в момент tAD=(5/2+N)T - 150, где N -- число циклов ожидания. Получается tAD =~683нс + N*T. В нашем случае это значит, что на Т3 в ШД уже должны быть данные. Возможно стоит сместить чтение графики на 8 бит влево (в предыдущем варианте прошивки), совместив его с Т1 и Т2, когда обращения к памяти нет, а чтение данных из памяти выполнить после, получается примерно так:
В общем, если Т2 попадёт на последнюю четвёрку адресов РЕ3, то задержки не будет и на Т3 процессор не получит данные. Такая ситуация возможна? Это я только прикинул по циклам самого простого MOV, а дальше я тут что-то начинаю путаться...Код:D0(RATO) 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 D1(RAS) 1 0 0 0 0 0 0 1 1 0 0 0 0 0 0 1 D2(CAS) 1 1 1 0 0 1 0 0 1 1 1 0 0 0 0 0 D3(MX1) 1 1 0 0 0 0 0 1 1 1 0 0 1 1 1 1 D4(MX2) 1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0 D5(FR6) 1 1 1 1 0 1 1 1 1 1 1 1 1 1 1 1 D6(FR7) 1 1 1 1 1 1 0 1 1 1 1 1 1 1 1 1 D7(FR1) 1 1 0 0 0 1 1 1 1 1 1 1 1 1 1 1 ^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^ Экран ОЗУ Циклы: Т1 Т2 TW T3 Т4 Т1 T2 T3... -- норм ...Т2 ТW TW T3 Т4 Т1 T2 T3... -- норм ... Т1 T2 T3 Т4 Т1 T2 T3... -- норм ... Т1 T2 Т3 ... -- плохо




Ответить с цитированием
Размещение рекламы на форуме способствует его дальнейшему развитию 
