2014-12-17 4 views
2

Я не уверен в реализации. У меня есть вход мультиплексора 8, 1 выход и 3 сигнала выбора. Один из этих последовательностей выбора последовательностей принимает все значение битового вектора. Теперь я могу выбрать 2 пути.Shift Register Vs Multiplexer

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

Второй способ - использовать регистр сдвига и взять бит LSB вектора.

Какое оптимальное решение по площади в ПЛИС?

+1

Я думаю, вы получите ответы на все: http://electronics.stackexchange.com/ – idstam

+0

Я думал, что это нормально, чтобы публиковать здесь. Я видел, что есть тег, поэтому я подумал, что все в порядке. Спасибо за помощь. – haster8558

+0

Этот вопрос представляется не по теме, потому что он перекрестно размещен на EE. http://electronics.stackexchange.com/questions/144254/shift-register-vs-multiplexer –

ответ

3

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

  • Сдвиг решение:
    • N триггеров для движущимися
    • N 2-1 мультиплексоров для триггера загрузки
  • Мультиплексор раствора:
    • (N - 1) 2-1 мультиплексоров для увеличения Н-1 мультиплексор
    • log2 (N) триггера для счетчика

Так что этот вес в направлении mux-решение, так как оба требуют почти одинакового количества 2-1 мультиплексоров из-за требуемой начальной загрузки N-разрядного сдвигового регистра, но для решения мультиплексирования требуется меньше триггеров.

Однако FPGA сильно зависят от LUT, которые обычно основаны на небольшой памяти, а дополнительная особенность заключается в том, что эти небольшие воспоминания часто могут использоваться в качестве сдвиговых регистров. FPGA с этой функцией позволяет записывать LUT-память напрямую, а затем перемещаться, и это можно сделать без использования 2-1 мультиплексоров для загрузки. Таким образом, в этом случае ресурсы, используемые для решения сдвига являются:

  • решения сдвига с LUT для сдвига:
    • ? LUT для загрузки и сдвиг

Поэтому вывод о том, что лучший способ для определения и достижения оптимального решения для ПЛИСА, должна знать и использовать особенность конкретного целевого FPGA, а затем попробовать чтобы убедиться, что инструмент синтеза правильно отображает дизайн.

+0

Для любого решения вам нужно хранить, чтобы сохранить значение, которое вы выполняете. Вы не включили это в mux-решение, и это ** - регистр сдвига. Поэтому я бы сказал, что решение mux всегда будет проигрывать. –

+0

@PaulS: Я сделал явное предположение в первом абзаце, что «... вектор бит ... содержит значение, пока используется бит, выбранный ...», таким образом, не сохраняется бит для вектора бит в решении мультиплексора. Если FPGA имеет возможность сдвига в LUT, то использовать их всегда нужно. –

+1

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