Причина существования lpm_constant
В настоящее время я анализирую конкретную программу FPGA Verilog и наткнулся на IP-ядро lpm_constant, предоставленное Altera.
Единственное, что он делает - это обеспечивает постоянное значение для шины.
Мой вопрос заключается в том, почему следует использовать это IP-ядро вместо провода с постоянным значением или регистра с инициализацией в начальном блоке или циклом сброса.
Я также не вижу смысла в том, чтобы либо повысить производительность (Fitter должен позаботиться об этом в любом случае, независимо от реализации), либо совместимость с другими проектами (язык Verilog/VHDL стандартизирован, так почему это может быть проблемой?).
Спасибо за разъяснение.
1 ответ
Можно использовать редактор содержимого памяти в системе для изменения значения "константы" во время выполнения проекта, чтобы помочь в отладке и тестировании проекта. Мы теряем эту возможность, если жестко закодируем значение в RTL.
Как сказал @JHBonarius, единственная причина использовать lpm_constant (мегафункция Altera), если вы описываете свой проект схематично, т.е. используете Block Design File (*.bdf). Если вы используете HDL-подобный подход, используйте CONSTANT, чтобы сделать инструменты CAD независимыми.