Совет для 4-битного вычитания дополнения до 2

Мне нужно спроектировать и реализовать 4-битный процессор для курса в универе с использованием Xilinx, Virtex 6, VHDL. Я действительно не знаю, что все это значит, я всего лишь студент первого курса. Это были инструкции, которые мы получили для программы.

Нам нужно уметь вычислять следующее:

|X/2 - Y|

Таким образом, абсолютное значение X/2-Y, и мы должны сделать это для X=9 и Y=12, и X=13 и Y=1.

Я знаю, что вычитание — это сложение с отрицательной версией числа (дополнение до 2), а деление на 2 — это сдвиг битов вправо.

Чего я не могу понять, так это того, как представить 9, 12 и 13 в виде 4-битных чисел, если нам нужно использовать дополнение до 2 (поскольку мы вычитаем). Я думаю, это как-то связано с тем фактом, что нам нужно взять абсолютное значение, но я не могу этого понять. Я не прошу проводку процессора, но надеюсь на некоторые советы по решению проблемы выполнения этой операции только с 4 битами.

Вот схема процессора:

введите здесь описание изображения


person Community    schedule 30.12.2015    source источник
comment
Мне кажется, что все тестовые входы положительные, и результат обязательно положительный, поэтому нет необходимости представлять отрицательные числа. Гораздо более вероятно, что входы и выходы предназначены для беззнаковых 4-битных значений.   -  person Stephen Canon    schedule 30.12.2015


Ответы (1)


Хитрость может заключаться в вычислении противоположного значения: |X/2 - Y| = |Y - X/2|.

Поскольку X/2 — это 3 бита, теперь вы можете дополнить его, чтобы выполнить вычитание.

person Ilya    schedule 30.12.2015