ReAl (27.10.2005 20:37, просмотров: 1) ответил aspect на В принципе, на чем реализовать, это вопрос второй. Интересует именно то, чего вы кратко коснулись. Как это адресное пространство организовать.
Более подробно, но описательно. В 64К адресном пространстве процессора делаем 4 16К страницы.
На PLD-шку подаём от процессора шину адреса/данных и ale/rd/wr от процессора.
A[13..8] с процессора идут на флеш и ОЗУ.
AD[7..0] защёлкиваются по ALE и в виде A[7..0] снимаются с PLD и идут на флеш и ОЗУ.
С PLD-шки снимаем:
* разряды адреса A[25..14] - все идут на флешку, A[18..14] - расширение адреса ОЗУ до полумега
* CS на флешку, ОЗУ, графконтроллер
Внутри PLD организовываем два 13-битных регистра EAU[26..14]
и EAL[26..14]. Запись в них от процессора как в просто регистры,
их выходы - см. ниже.
По старшим двум разрядам адреса от процессора на PLD (A[15..14], идут ТОЛЬКО на PLD) (например):
11,10 - на линии A[25..14] выдаём EAU[25..14] или EAL[25..14] в зависимости от состояния входа PLD A[14]. EAU[26] или EAL[26] соответственно решают - подать CS на ОЗУ или флеш.
Таким образом мы можем или обе страницы отобразить на флеш, или обе на ОЗУ, или одну туда, одну сюда.
01 - подаём CS на ОЗУ, на линии A[18..14] выдаём нули
00 - а теперь смотрим на вход PLD A[13]. Скажем, если 1 - то выбираем SED, если 0 - то по защёлкнутым у себя A[1..0] выбираем на чтение/запись EAU[26..22], EAU[21..14], EAL[26..22], EAL[21..14].
Фух. Вроде всё. Да, EPM3032 явно не хватит :-)