Shaos wrote:
т.е. предполагается, что внутри какая-то память будет, так?
Думаю, все адресное пространство должна быть оперативная память и никаких "РФ". Выше уже писал, что можно применить последовательную флеш (для холодного старта), откуда ПЛИС скачивает загрузчик, размещает в адресном пространстве и передает ему управление. После этого, этот загрузчик "решает" откуда и как он будет грузить код на исполнение.
Протокол и логику загрузки мы можем обсудить позже.
Shaos wrote:
если речь идёт об аналоге выводов 8085, то получается мультиплексированная шина адреса и данных - в таком случае я могу предложить расширить шину данных до 16 бит...
"об аналоге выводов 8085" я видимо высказался опрометчиво. Дело в том, что мультиплексирование усложняет работу с периферией. Когда делали 8085, то ставка стояла на дополнительные интерфейсные чипы. У нас их нет, и в будущем будет все сложнее найти. Может не стоит мультиплексироваться? Более того, если будут позволять выводы ПЛИС, то можно несколько выводов определить как чип-селекты внешних портов, настройка адресов которых делается через тоже внутренние порты-регистры (загружаемые дешифроторы). Это упростит, и сделает более универсальной дешифрацию внешних портов.
Что касается "шину данных до 16 бит". Сделать можно все, но не хотелось бы получить очередную "советскую рационализацию". Как программно его поддерживать - ваять свою среду разработки? И что, принципиально, нового мы получаем, кроме головной боли? Если мы поставим память 10nc и максимальную тактовую ПЛИС, то производительности будет выше крыши.
Я за совместимую классику для 8085, но не буду возражать против каких-то "изобретений" для 6502.
Shaos wrote:
потом можно предположить, что у нас будет несколько (2,3,4) 8-битных портов, которые можно отобразить (программно) на любые из 256 доступных и также иметь возможность работать с отдельными битами этих портов (а также настраивать их независимо друг от друга на ввод или вывод)
Совершенно верно, но кроме этого, хотелось бы иметь несколько внутренних портов для конфигурирования - порт для переключения тактовой частоты, порты (регистры) конфигурирования и адресации портов (извините за каламбур!) и т.д.
Кроме того, следует помнить о системе разработки для такого гибрида. Сомневаюсь, что нам кто-то напишет мощный эмулятор, новый ассемблер и т.д. Следует учитывать технологию загрузки кода и его отладку. Может быть сразу закладывать некий аппаратный "JTAG", который при не сложном внешнем программном обеспечении на РС (через порт LPT, к примеру) будет позволять загружать код, делать по-шаговый режим, 1-2 точки останова и смотреть состояние регистров? Более того, я бы в наш гибрид вмонтировал бы простенький символьный видео-синхронизатор - что-то типа "а ля Микро-80". Монохром, 60гц под ЖКИ монитор. Это позволило бы (как вариант) отказаться от кросс-средств (которых нет!) для разработки, а адаптировать кое-что из "приданного Ориона" (в символьном варианте). В этом случае, средства разработки можно было бы разместить на самом контроллере.
Еще добавил бы (если позволит кол.выводов ПЛИС) порт управления LCD-индикатором. Для контроллеров управления это основное устройство вывода информации.
Shaos wrote:
по идее можно спец-вывод завести - начальное состояние процессора после включения: 0 - 6502 или 1 (или не подключено) - 8085.
адресное пространство между ними можно поделить так...
С первым тезисом я согласен, а второй не понял. Зачем нам делить адресное пространство между процессорами, если они одновременно не будут работать? Как распределить адресное пространство для 6502 - я не знаю. Что касается 8085, то уже писал выше: 64К ОЗУ и порты через IN/OUT. Плюс внутренние порты конфигурирования и управления. Сомневаюсь в целесообразности делать ОЗУ 128К - это не Орион, где требуется совместимость. Мы делаем контроллер для управления. Думаю, практичнее на плате такого контроллера разместить ММС/SD-флеш, и подкачивать блоки в память для исполнения. Это более универсально, чем страничная память, которую все равно откуда-то надо "напичкивать кодом". Да и диспетчер памяти не надо городить. Что касается битовых команд, то какой-то префикс придется вводить.
Если ты чего-то не знаешь, то это не значит, что этого не может быть.