2010-12-14 2 views
4

Я помню, что некоторое время назад я помню, что либо асинхронные, либо синхронные сбросы более эффективно реализованы в FPGA, поскольку флип-флоп уже имеет один, а другой потребует дополнительной логики.FPGA эффективный (a) синхронный сброс

Кто-нибудь знает, в каком направлении это? Это то же самое для Xilinx, Altera, Other ..

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

Благодарим Вас за отзыв!

+2

Возможно, этот вопрос будет лучше в http://electronics.stackexchange.com/? – thkala

+0

Хотя это реализовано в чипах, это также программирование в VHDL или Verilog. Это может пойти в любом месте. –

ответ

2

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

Кстати, вы можете найти this paper on the topic of resets от Sunburst Design интересный. Хотя он в первую очередь касается дизайна ASIC и Verilog, это полезный документ для понимания решений о перезагрузке в целом.

+1

+1 для бумаг Sunburst – Marty

+0

Отличная ссылка! Благодаря! – Mark

6

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

Некоторые дополнительные советы ... Если вы используете асинхронный сброс, будьте очень осторожны, когда вы его отключите. Если на этой «медленной» сети есть много перекосов, вы можете обнаружить, что некоторые флопы приходят к перезагрузке другого часового цикла другим. Наступает Хаос!

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

Xilinx have a whitepaper по этому вопросу, но в равной степени относится и к другим ПЛИС.

Для некоторых приложений вам может потребоваться асинхронно установленный сброс на IO, чтобы гарантировать, что некоторые внешние устройства работают так, как вам нужно, - но все равно отключите его синхронно.

(PS., Как вы говорите FPGAs, если вы не знаете, есть stackexchange предложение связано с программируемой логикой, которые вы можете найти интерес http://area51.stackexchange.com/proposals/20632/)

+0

Хороший совет по анализу наклона и времени! –

+0

Спасибо за информацию! – Mark

2

Официальная позиция Xilinx является использование синхронизации сброса. Это объясняется в этом whitepaper, также упомянутом в вышеприведенном сообщении. Все IP-ядра Xilinx, поставляемые с исходным кодом, такие как контроллер памяти, используют сброс синхронизации.

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

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

+0

Благодарим за дополнительную информацию! – Mark

Смежные вопросы