Информация об изменениях

Сообщение Re[3]: Свой процессор на ПЛИС от 19.02.2016 16:34

Изменено 19.02.2016 16:41 koandrew

Здравствуйте, 0x7be, Вы писали:

0>Я плясал от трёх вещей: от своей цели, стоимости и доступности. Поскольку я делаю компьютер, мне нужна была плата на которой будет достаточно мощная микросхема, память, порты. Я погуглил проекты на opencores.org, посмотрел модели, на которых люди делали свои компьютеры, взял этот список за основу. Дальше просто выбирал по цене и доступности в Москве.


Ок, продолжаем серию тупых вопросов
Я заметил, что у тебя GPR'ы (General Purpose Register) недоступны напрямую ALU, и значения из них нужно переместить в O1/O2 перед выполнением операции. Мне кажется, куда эффективнее было бы организовать прямой доступ к ним ALU примерно так:
  Картинко

Плюс это дало бы возможность выполнять операции типа "Rr <- Rx [ALUOP] Ry", при этом x,y и r могут быть любыми (в том числе и одинаковыми). А если добавить в эту адресацию ещё и MAR, то можно выполнять операции вида "память-регистр" за один такт, и, немного поднапрягшись, даже "память-память" за два такта (тут надо будет немного добавить логики для сетапа операции записи в память).
Вопрос как и прежде — у тебя были какие-то причины так не делать, или просто "так вышло"?

P.S. Ты если что звиняй за тупые вопросы — я пока тока вникаю в эту тему
Re[3]: Свой процессор на ПЛИС
Здравствуйте, 0x7be, Вы писали:

0>Я плясал от трёх вещей: от своей цели, стоимости и доступности. Поскольку я делаю компьютер, мне нужна была плата на которой будет достаточно мощная микросхема, память, порты. Я погуглил проекты на opencores.org, посмотрел модели, на которых люди делали свои компьютеры, взял этот список за основу. Дальше просто выбирал по цене и доступности в Москве.


Ок, продолжаем серию тупых вопросов
Я заметил, что у тебя GPR'ы (General Purpose Register) недоступны напрямую ALU, и значения из них нужно переместить в O1/O2 перед выполнением операции. Мне кажется, куда эффективнее было бы организовать прямой доступ к ним ALU примерно так:
  Картинко

Плюс это дало бы возможность выполнять операции типа "Rr <- Rx [ALUOP] Ry", при этом x,y и r могут быть любыми (в том числе и одинаковыми). А если добавить в эту адресацию ещё и MAR, то можно выполнять операции вида "память-регистр" за один такт, и, немного поднапрягшись, даже "память-память" за два такта (тут надо будет немного добавить логики для сетапа операции записи в память).
Вопрос как и прежде — у тебя были какие-то причины так не делать, или просто "так вышло"?

P.S. Ты если что звиняй за тупые вопросы — я пока тока вникаю в эту тему
P.P.S. Нашёл тут интересный цикл лекций по цифровой схемоте: https://www.utdallas.edu/~dodge/EE2310/ И ещё сайт www.fpga4fun.com тоже интересный.