Primula C Compiler     Xameleon Project        |        In English

И снова о процессоре

Известно, что лучший отдых — это смена деятельности. Работа над компилятором отнимает очень много сил, поэтому была сделана небольшая пауза и внимание было переключено на процессор. С момента последней публикации была проделана огромная работа — написан тестбенч для тестирования декодера команд, исполнительного устройства и ALU. Последнее достижение — реализован функционал для вызова подпрограмм и возврата из них. Позвольте рассказать об успехах в виде картинки, вырезанной из обсуждения на форуме ixbt.

ixbt_callВышесказнное дополним скриншотами программы GtkWave, в которой происходит финальная отладка процессора.

startloop_memcall

Эти картинки требуют некоторого пояснения:

  • i_clk — тактовый импульс;
  • i_rst — сигнал сброса;
  • i_access_type — сигнализирует устройству выборки команд текущее состояние декодера;
  • low — младшие биты на шине адреса;
  • o_ack — сигнал декодеру о выполнении запрошенной операции;
  • o_ida — шина данных.

Абреввиатура IDA образована от слов — Instruction, Data, Address. По этой шине инструкции передаются от устройства выборки декодеру команд. При чтении данных из внешней памяти по этой же шине передаются прочитанные данные. Выходная шина данных, по которой передаются данные во внешнюю память, на этих картинках не показана.

Заметим, что в настоящий момент устройство выборки команд не реализовано и его заменяет тестовый модуль, моделирующий поведение этого устройства.


Оставить комментарий