Хранить битвектор в триггерах вместо памяти - Зубило

Я хотел бы знать разницу в использовании Reg а также Mem в долоте, и как я могу решить, какой из них выбрать в общих сценариях. Я бы предположил, что Mem является лучшей идеей при хранении большого объема данных, потому что он будет хранить данные в SRAM вместо использования триггеров внутри срезов FPGa, правильно?

Если бы я хотел реализовать большой файл регистра (в 10 раз больше обычного размера), было бы лучше использовать Mem тогда стоит Reg?

1 ответ

Решение

Есть несколько отличий. Единственное, что вы можете сказать об использовании SRAM по сравнению с флопами, это вид разницы поверхностей. Фактически, большинство поставщиков ПЛИС поддерживают идею реализации памяти как блочной памяти или флопов. Функционально они будут одинаковыми.

Из-за того, как большинство поставщиков ПЛИС внедряют свои технологии, если вы используете небольшой кусочек ОЗУ с одним блоком, вы в основном используете всю эту ОЗУ с одним блоком. Допустим, ваше устройство имеет 10 десяти блоков оперативной памяти. Если вы реализуете 10 крошечных воспоминаний, каждое шириной всего в один байт, скажем... Вы будете использовать все 10 блоков RAM! Это не хорошо. Если у вас небольшие таблицы памяти, используйте их как флопсы и сохраните блочную оперативную память для больших вещей. На ваш собственный вопрос, где вы предлагаете использовать mem для больших данных, вот почему это так.

Следующая проблема, это время. Оказывается, что синхронизация с памятью FPGA иногда может быть медленной по сравнению с флопсами. Другими словами, если у вас есть буфер, который вы внедрили в память, и обнаруживаете, что вы не можете заставить проект работать на частоте 300 МГц, вы можете изменить буфер на использование флопов, и вы можете выжать дополнительную скорость, необходимую для получения Вы до 300 МГц.

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

Вот некоторые вещи, о которых я думаю, когда выбираю RAM вместо Flops для памяти.

Другие вопросы по тегам