Цитата(defunct @ Nov 23 2006, 21:52)

Цитата(=GM= @ Nov 23 2006, 20:14)

Минимальная длительность сигналов RD/WR у атмеги128 равна 52,125 нс (документ 2467n, с.331).
Максимальная длительность сигналов ОЕ/WR для HM62256B-7(8) составляет 40(45)/50(55) нс (дейташит на HM62256B, с.7-8). Давайте посмеемся вместе. Где тут надо смеяться(:-)?
что ж, давайте посмеемся.
В даташитах на SRAM обычно не приводят такой параметр как макс. длительность WE строба, следовательно цифры 50(55) приведенные вами есть ни что иное как
мин. длительность WE строба.
Не, смешнее не стало, но к счастью, разобрался. Всё не так работает. Для конкретности будем говорить о 70-ти наносекундной памяти. Начнем с самого начала. При появлении строба OE статическая память должна выдать данные и как можно быстрее. Максимальное время выдачи для нашей памяти достигает 40 нс, т.е. гарантированно через 40 нс после начала строба чтения появятся достоверные данные. В то же время минимальная длительность строба чтения от атмеги128 составляет 52 нс. Казалось бы все хорошо, ан нет! Судя по временным графикам на МК, необходимо обеспечить наличие достоверных данных за 40 нс до конца строба чтения.
Вывод такой. Для 55-, 70- и 85-наносекундной памяти необходим один дополнительный такт ожидания. Иными словами, для соответствия спецификации чтение SRAM должно осуществляться не менее, чем за 4 такта МК.
Цитата(defunct @ Nov 23 2006, 21:52)

Получается с одной стороны мин. длительность WE строба (70ns памяти) = 55ns, с другой стороны мин. длительность WE меги 52.125. 55 несколько больше чем 52.125 не так ли? Тут и начинаются глюки. Как они проявляются - можете поэкспеременитировать.
Мне даже не нужно приводить данные из даташитов других производителей памяти (хотя я запросто могу это сделать), достаточно цифр из вашего.
Вообще, замечу в скобках, именно для памяти длительность строба чтения может быть любая, но не меньше допустимого времени на выдачу достоверных данных. То что вы процитировали - 55 нс - это минимальное время записи для 85-нс памяти, для 70-ти нс памяти это время будет равно 50 нс (конкретно на запись). Но с записью в память почти всегда полный порядок, проблемы с чтением из памяти.
Цитата(defunct @ Nov 23 2006, 21:52)

Цитата
Например, у меня два DMACа выполняются за один МС 10нс (machine cycle), как мне говорить, за полтакта?
простите, чего у вас выполняется? Вы постоянно сорите какими-то аббревиатурами которые слабо вяжутся со смыслом.
Прошу прощения за непонятки. Как всегда предполагается, что все люди делают примерно тоже самое, и нет нужды повторяться. Поясню смысл аббревиатуры. DMAC это команда цифрового сигнального процессора TMS320F2812. D-double, т.е. двойной, MAC-multiply and accumulate. То есть берется два 16-битных операнда из разных участков памяти, перемножаются, получается 32-битный результат, который складывается с содержимым аккумулятора. За один такт (10 нс !) выполняется два таких MACа, отсюда DMAC. Не знаю как вас, но меня такой результат впечатляет. Чтобы добиться подобного результата, применяют конвейерную обработку, каждая команда разбивается на 8 частей и в процессоре одновременно выполняются 8 команд на разной стадии выполнения. Для стороннего наблюдателя процесс выглядит как если бы одна команда выполнялась за ОДИН такт, хотя на самом деле она выполняется за 8 тактов. Вот тот ОДИН такт и называют машинным циклом, возможно неправомерно, но так уж сложилось. Надеюсь, теперь вам стало более понятно, что я имел в виду?
Упоминая о DMAC, я просто хотел показать, что имеет смысл применять понятие машинный цикл (МЦ) вместо слова "такт".