Re[4]: Свой процессор на ПЛИС
От: 0x7be СССР  
Дата: 19.02.16 17:13
Оценка:
Здравствуйте, koandrew, Вы писали:


K>Ок, продолжаем серию тупых вопросов

K>Я заметил, что у тебя GPR'ы (General Purpose Register) недоступны напрямую ALU, и значения из них нужно переместить в O1/O2 перед выполнением операции. Мне кажется, куда эффективнее было бы организовать прямой доступ к ним ALU примерно так:
Да, ты прав. Это следствие того, что для меня простота на первом этапе важнее эффективности. Поэтому я выбрал простейшую одношинную архитектуру по типу описанного тут: http://www.cdf.toronto.edu/~ajr/258/notes/micro/one-bus.html
По-хорошему надо иметь минимум три шины, чтобы одновременно коммутировать на АЛУ два операнда и результат в регистр. Можно четыре шины, чтобы попутно можно было коммутировать из регистра значение на шину адреса и выводить результат в память. Тогда арифметика за один такт решаться будет.

Впрочем, я пока решил дальше одношинной схемы не идти, а заниматься проблемами исполнения. При переходе от Logsim к VHDL и реальному железу выскочило много граблей Например, в симуляторе ОЗУ данные на выход подаёт мгновенно, а в реале это не так. Пока я выкрутился из этого чудовищным костылём (сам даже не понимаю, как это работает). Плюс, проц описан на VHDL в структурном стиле, что делает его трудносопровождаемым. Я решил переписать его как конечный автомат, попутно решив эти проблемы. Микрокод будет другим, а на уровне команд хочу сохранить совместимость.

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

Я вот в твоей схеме не понял, как делать пересылку между регистрами. Разве что спец. командой в АЛУ, которая на тупо выход коммутирует один из операндов. Или это пока ещё не сделано?

K>Вопрос как и прежде — у тебя были какие-то причины так не делать, или просто "так вышло"?

Простота — страшная сила

K>P.S. Ты если что звиняй за тупые вопросы — я пока тока вникаю в эту тему

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

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

Спасибо, засмотрим
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.