Процессор в Logisim, v1.2.

Зато сам сделал.

Так как блог личный, то и пишу почти для себя. Давней мечтой, идеей фикс (с того самого времени как меня заинтересовала электроника), было желание спроектировать свой процессор, CPU. Вот что пока получилось, можно наблюдать ниже. Оказывается это очень просто! Сделано в программе Logisim, которая хоть и не без недостатков, но позволяет легко симулировать цифровую электронику.



Данный процессор разрабатывался в рамках создания узкоспециализированного сопроцессора одного, в дальнейшем после доработок будет перенесен в квартус под мелкую кплд. Архитектура – что-то типа CISC. Он не обязательно должен быть сверхпроизводительным, но обязательно уметь быстро считать, точнее включать отдельный блок, который производит все аппаратные вычисления за 2.5 такта беря данные с двух регистров и помещая их в аккумулятор (первый — A, второй — B). Здесь, для наглядности вместо него обыкновенный сумматор. Понимаю, что можно было более оптимально все сделать, на меньшем количестве логических элементов, например, объединить вместе ИЛИ подтверждения инкрементирования адреса и т.д., но пока и так сойдет. Процессор способен выполнять ~8 команд, нераспознанные опкоды трактуются как NOPE. Команды хранятся в ПЗУ.

Команды и их коды:
LDA – 0a – загрузить в регистр A константу.
LDB – 0b – скопировать в регистр B данные из регистра A.
IN – 31 – загрузить в регистр A данные из ОЗУ.
OUT – 32 – загрузить данные из регистра A в ОЗУ.
FUNC – 21 – обработать регистры A и B и поместить результат в A.
BREQ – 70 – перейти по адресу если регистр А равен нулю.
GOTO – 77 – безусловный переход.
HALT – 80 – останов.

Для некоторых команд также добавляются дополнительные байты, например 1 байт для загрузки или 2 байта адреса. Простейшая тестовая программка выполняет последовательное суммирование с проверкой на нулевое значение, после чего выполняется переход, чтение и запись во внутреннее ОЗУ и остановка. Статья, которая направила в нужном направлении — http://habrahabr.ru/post/132486(про процессор)
Вообще, интересные штуки, эти процессоры )
  • +4
  • 01 июля 2012, 16:07
  • KT3012
  • 1
Файлы в топике: CPU_v1.2.zip

Комментарии (3)

RSS свернуть / развернуть
Статейки по проектированию процессов весьма интересны. В сети толком нихрена нет о том как на логике собрать свой проц.
0
  • avatar
  • a9d
  • 01 июля 2012, 18:05
«Микропроцессоры в вопросах и ответах» — А. Вуд,«Занимательно о микроконтроллерах» — А. Микушин и т.д.
Книг очень много, мало времени для их вдумчивого чтения.
+2
Мну недавно ещё интересное книжко выкладывал.
+1
Только зарегистрированные и авторизованные пользователи могут оставлять комментарии.