Результаты, установленные в VHDL в 4-разрядном MIPS ALU?

#vhdl

#vhdl

Вопрос:

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

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

2 тика для 2-входных и, или, xor, nor для их окончательного вывода

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. что вы подразумеваете под тиками.. вы имели в виду задержку в элементе и?

2. Как и спрашивалось выше, что такое «галочка»? Вы имеете в виду «дельта»? И я не вижу никакого VHDL в этом вопросе или связанного изображения.

3. Я, честно говоря, не мог вам сказать, я бы предположил задержку, именно так это указано на практическом экзамене. И изображение не будет отображаться в ссылке?

Ответ №1:

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

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

Блок 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 в result0 и вошел в 4-битный nor, поэтому весь сумматор оседает на 46 тактов В ХУДШЕМ СЛУЧАЕ

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

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

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