Возникли проблемы с проектированием архитектуры (схема)

Итак, в настоящее время я учусь на занятиях по проектированию цифровой логики, и я застрял в проекте, который нас попросили сделать на этой неделе. Нам сказали разработать архитектуру (DataPath + элемент управления), которая может выполнять следующие функции на основе команды.

Я предполагаю, что это будет одна схема с несколькими предварительными условиями.

3 функции

 1. Z = A + B 
 2. Z = A & B (as in like bitwise AND)
 3. Z= 1 if A < B and 0 if A > B

Нам говорят предположить, что A и B являются входными данными, а Z является выходным, и предположить, что все входные данные имеют по 4 бита каждый.

2 вещи меня смущают. Во-первых, если это на одной и той же схеме, то как это будут три разные функции. Разве Z не пойдет вверх после того, как A или B станут единицей? и во-вторых, как вы делаете неравенства? Вы бы использовали серию триггеров в качестве регистра сдвига?


person Servanh    schedule 07.04.2015    source источник


Ответы (1)


Должен быть мультиплексор, чтобы выбрать, какую из трех функций выводить, одновременно может быть выведена только одна функция (поскольку выход один), но вы можете выбрать, какую функцию выполнять. Это требует другого входа в схему для управления мультиплексором.

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

Кстати, сравнение больше выполняется с помощью вычитателя, т. е. если A-B отрицательное, чем A>B, иначе B>=A.

person Jonathan Drolet    schedule 07.04.2015
comment
О, хорошо, так что я предполагаю, что мне нужен 4-битный мультиплексор. Хорошо, я знаю, как это сделать! Я чувствую себя довольно глупо, я не помнил этого раньше. Однако большое спасибо за все! - person Servanh; 07.04.2015