Можно следовать этим инструкциям, чтобы узнать о том, как можно сопоставить блоки интерполяционной таблицы с RAM, чтобы сохранить область на целевом устройстве FPGA.
Каждая инструкция имеет уровень серьезности, который указывает на уровень требований податливости. Чтобы узнать больше, смотрите Уровни серьезности Руководств по моделированию HDL.
2.3.1
Строго рекомендуемый
Следуйте этой инструкции, чтобы изучить, как сопоставить блок Lookup Table в вашем проекте с Блоком RAM на FPGA. Уровень серьезности инструкции указывает на уровень требований податливости. Чтобы узнать больше, смотрите Уровни серьезности Руководств по моделированию HDL.
Чтобы сопоставить интерполяционные таблицы с блоком RAM, можно использовать адаптивную оптимизацию конвейеризации. Эта оптимизация включена по умолчанию. Оптимизация вставляет блок Delay, который имеет длину Задержки 1
и ResetType устанавливают на none
сразу после блока Lookup Table. Этот шаблон моделирования эффективно сопоставляет ваш проект с Блоком RAM на FPGA. Чтобы использовать адаптивную оптимизацию конвейеризации, вы должны:
Убедитесь тот AdaptivePipelining
включен на модели.
Задайте инструмент синтеза.
Чтобы узнать больше об адаптивной конвейеризации, смотрите Адаптивную Конвейеризацию.
Если вы не хотите использовать адаптивную оптимизацию конвейеризации в целом проекте, можно выборочно включить эту оптимизацию для определенных Подсистем в проекте или создать тот же шаблон моделирования в проекте, который в противном случае сгенерирован оптимизацией.
Для примера откройте модель hdlcoder_LUT_BRAM_mapping.slx
.
open_system('hdlcoder_LUT_BRAM_mapping') set_param('hdlcoder_LUT_BRAM_mapping','SimulationCommand','Update')
Адаптивная оптимизация конвейеризации отключена на этой модели.
hdlget_param('hdlcoder_LUT_BRAM_mapping','AdaptivePipelining')
ans = 'off'
LUT_BRAM
Подсистема содержит 1D блок Lookup Table, сопровождаемый блоком Delay, который имеет длину Задержки 1
и ResetType устанавливают на none
.
open_system('hdlcoder_LUT_BRAM_mapping/LUT_BRAM')
Когда вы генерируете HDL-код и синтезируете проект на FPGA, это эффективно сопоставляет, чтобы Блокировать RAM. Этот рисунок отображает результаты синтеза для LUT_BRAM
Подсистема.
LUT
Подсистема в этой модели не использует этот шаблон моделирования.
open_system('hdlcoder_LUT_BRAM_mapping/LUT')
Когда адаптивная конвейеризация отключена на модели, синтезирование этой Подсистемы сопоставляет логику с LUTs вместо того, чтобы использовать RAM Блока. Этот рисунок отображает результаты синтеза для LUT
Подсистема.