[an error occurred while processing this directive]
|
Во первых, эти "LPM" транслируются в код, а не в блэк-боксы, неоптимальны по производительности, жрут ресурсы и работают плохо. Некоторые из этой "библотеки" так и вообще ошибочны - см. например lpm_mult (файл 220model.vhd), который не делает различий между "signed" и "unsigned", реальный же lpm - делает.
Проверил даже новые версии 220model.vhd (от квартусов разных версий) - тоже содержат ошибки: многие "LPM" правильно не работают даже в симуляции. Халтура, в общем, хоть и фирменная.
Но мой вопрос все-таки в другом!
Мой вопрос - как правильно зависимость от вендора уже в исходном коде, чтобы облегчить миграцию с одного вендора к другому не меняя код в проекте (кроме разве что файла конфигурации), если в проекте есть блэк-боксы. Использовать последние необходимо, так как именно в этом случае достигается мксимальная производительность, гарантируемая вендором. Может есть такой гайд, как не используя явной декларации блэк-боксов, используя только VHDL код, обепечить таки их включение в проект для всех (или большинства вендоров), а не логически (но не физически!) эквивалентный код (какой-нибудь VHDL текст c Opencore, например), который и съест все ресурсы кристалла и реально работать нормально не будет. Или как-то подругому?
E-mail: info@telesys.ru