Результаты устанавливаются в VHDL в 4-битном MIPS ALU? - PullRequest
0 голосов
/ 03 ноября 2011

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

Рассмотрим 4-битную версию MIPS ALU, показанную на следующей странице. Здесь add / subt определяет, происходит ли сложение (add / subt = 0) или вычитание (add / subt = 1), и op выбирает выход мультиплексора (предположим, что верхний вход выбран опцией 000 и т. Д.). Предположим, что это займет

2 галочки для 2-х входов и, или, xor, ни для расчета на его конечном выходе

4 галочки для 4-х входных данных или для расчета на его окончательном выводе

6 тактов для 6-входного мультиплексора, чтобы установить на своем конечном выходе

8 тиков из последнего поступившего ввода для суммы и переноса 1-битного полного сумматора для расчета на их окончательном выводе

Когда выходные данные результата устанавливаются в свои окончательные значения для входов, показанных ниже (игнорируя тест на ноль и переполнение)?

add/subt = 0        outputs settle at ?
op = 000
A = 1111
B = 0001

http://img600.imageshack.us/img600/797/cmpen331diagram.png

1 Ответ

1 голос
/ 04 ноября 2011

Просмотрите диаграмму и запишите дельта-числа для каждого элемента, когда он получает свой сигнал.

Для всего сумматора

Блок LSB

время до 5 (2 входа И, ИЛИ, XOR) составляет 2 такта.Сумматору нужно 8 тиков для распространения, поэтому его выходной сигнал не готов до 10 полных тиков после запуска.Мультиплексор (теперь со всеми обновленными входами) обрабатывает 6 тиков, что означает, что схема добавления LSB занимает всего 16 тиков, прежде чем распространится полностью в первый раз.

LSB + 1 блок

Требуется второй сумматорбит переноса от первого сумматора, поэтому ему нужно подождать 10 тиков, прежде чем он сможет начать добавлять правильные значенияОн выводит 18 суммарных тиков в мультиплекс, что завершается 24 суммарными тиками.

LSB + 2 блока

третьему сумматору требуется бит переноса от второго сумматора, поэтому ему нужно подождать всего 20 тиков, прежде чем он сможет начать добавлять правильные значения.Он выводит в мультиплекс 28 полных тиков, что завершается 34 полными тиками.

Блок MSB

третьему сумматору требуется бит переноса от третьего сумматора, поэтому ему нужно подождать 30 полных тиковпрежде чем он может начать добавлять правильные значения.Он выводит в общей сложности 38 тиков в мультиплексор, а в общей сложности - 44 тика.

установить бит

не положительно, для чего это нужно, но его сигнал не попадает в мультиплексор в блоке LSB до40 тиков после старта.Прохождение мультиплексора в блоке LSB занимает 6 тиков, следовательно, через 46 тиков последний сигнал закончил распространяться из блока LSB к результату 0 и вошел в 4-битный, при этом весь сумматор установился на 46 тиках WORST CASE

Проверка на ноль приводит к окончательному счету тиков до 50

Переполнение готово при 44 полных тиках

Числа, которые нам дают, предлагают наихудший случай (все биты переноса для всех блоков необходимы).

...