Почему стандартная библиотека IEEE vhdl не является STL? - PullRequest
1 голос
/ 19 января 2010

Справочное руководство по языку IEEE vhdl определило только ограниченный набор стандартных пакетов. И оно не определило функциональные возможности стандартных типов, таких как STD_LOGIC. Так что нет стандартных AND2, компонентов / оператора INV.

Кажется, что Altera MAX + Plus II не поддерживает компонент AND2, INV (если есть, пожалуйста, не стесняйтесь исправлять меня), но Xilinx Foundation поддерживает.

Почему стандартная библиотека IEEE vhdl не может стать чем-то вроде STL в мире C ++?

спасибо.

Ответы [ 3 ]

2 голосов
/ 19 января 2011

Invert, And, Or, ... для типов std_logic поддерживаются библиотеками IEEE:

a <= b and c
d <= not e
f <= g or h

Ваш инструмент синтеза автоматически переведет эти выражения в лучшую реализацию для вашегоцелевая технология (Xilinx FPGA, Altera FPGA, ASIC, ...).Нет необходимости явно создавать экземпляры специфичных для технологии компонентов.Создание компонентов, специфичных для технологии, может даже помешать оптимизации.

Вы всегда должны пытаться написать свой код VHDL независимо от технологии .Это позволяет вам повторно использовать код.

1 голос
/ 19 января 2010

Запрашиваемые вами "компоненты" являются операторами в VHDL.

Вы также можете напрямую создавать экземпляры таких компонентов, как AND2 и INV, но вам нужно будет создать эти библиотеки (или использовать предоставленные библиотеки).

0 голосов
/ 19 января 2010

Поскольку программное обеспечение для проектирования fpga тесно связано с целевым чипом, и только два предприятия способны разрабатывать такое программное обеспечение. Altera Max + PlusII может поддерживать только поставку чипов от Altera, так же как и Xilinx. Этот поставщик контролирует весь прогресс fpga дизайн, от программного обеспечения до аппаратного обеспечения. Затем они имеют тенденцию разрабатывать специальные функции, ориентированные на собственную платформу. Поэтому стандартная библиотека IEEE не может быть чем-то вроде STL в мире C ++.

AND2 - это primitive из Altera Max + PlusII, но это не primitive из Xilinx Webpack. На самом деле мы могли бы разработать свой собственный компонент AND2 (который Xilinx решит предоставить в рамках пакета unisim, но мы не загружать этот пакет).

INV - это не primitive от Altera Max + PlusII и Xilinx WebPack.

...