Хранить битвектор в триггерах вместо памяти - Зубило
Я хотел бы знать разницу в использовании Reg
а также Mem
в долоте, и как я могу решить, какой из них выбрать в общих сценариях. Я бы предположил, что Mem
является лучшей идеей при хранении большого объема данных, потому что он будет хранить данные в SRAM вместо использования триггеров внутри срезов FPGa, правильно?
Если бы я хотел реализовать большой файл регистра (в 10 раз больше обычного размера), было бы лучше использовать Mem
тогда стоит Reg
?
1 ответ
Есть несколько отличий. Единственное, что вы можете сказать об использовании SRAM по сравнению с флопами, это вид разницы поверхностей. Фактически, большинство поставщиков ПЛИС поддерживают идею реализации памяти как блочной памяти или флопов. Функционально они будут одинаковыми.
Из-за того, как большинство поставщиков ПЛИС внедряют свои технологии, если вы используете небольшой кусочек ОЗУ с одним блоком, вы в основном используете всю эту ОЗУ с одним блоком. Допустим, ваше устройство имеет 10 десяти блоков оперативной памяти. Если вы реализуете 10 крошечных воспоминаний, каждое шириной всего в один байт, скажем... Вы будете использовать все 10 блоков RAM! Это не хорошо. Если у вас небольшие таблицы памяти, используйте их как флопсы и сохраните блочную оперативную память для больших вещей. На ваш собственный вопрос, где вы предлагаете использовать mem для больших данных, вот почему это так.
Следующая проблема, это время. Оказывается, что синхронизация с памятью FPGA иногда может быть медленной по сравнению с флопсами. Другими словами, если у вас есть буфер, который вы внедрили в память, и обнаруживаете, что вы не можете заставить проект работать на частоте 300 МГц, вы можете изменить буфер на использование флопов, и вы можете выжать дополнительную скорость, необходимую для получения Вы до 300 МГц.
Есть и различия маршрутизации. В зависимости от вашего дизайна вы можете обнаружить, что вся ваша память в одном квадранте чипа используется, и поэтому теперь проект пытается проникнуть в другой квадрант, чтобы получить больше блочной оперативной памяти, в результате чего ваша логика расширяется. Это может также проявиться как плохое время. Если вы позволите части памяти копироваться в виде флопов, то вы можете увидеть, как ваш дизайн вернулся в форму в квадранте, потому что ему не нужно растягиваться для дополнительных ресурсов.
Вот некоторые вещи, о которых я думаю, когда выбираю RAM вместо Flops для памяти.