Программирование на зыке VHDL: Конспект лекций, страница 7


Используя библиотечные компоненты, создадим модель дешифратора. При этом объявляем компоненты и описываем подключение их выводов согласно схеме дешифратора:

library IEEE,PS;

use IEEE.std_logic_1164.all;

use PS.all;

entity decoder_2_to_4 is

port(E_n, AO, Al: in std_logic;

D0_n, Dl_n, D2_n, D3_n: out std_logic); end decoder_2_to_4;

architecture structural_l of decoder_2_to_4 is

               component INV

                              port(IN0: in std_logic;

                              Z: out std_logic);

               end component;

               component ND3

                              port(       IN2, IN1, IN0: in std_logic;

                                                            Z: out std_logic) ;

               end component;

               signal E, A0_n, Al_n: std_logic;

               begin

                              gO: INV port map (IN0 => AO, Z => A0_n);

                              gl: INV port map (IN0 => Al, Z => Al_n);

                              g2: INV port map (IN0 => E_n, Z => E);

                              g3: ND3 port map (IN2 => A0_n, IN1 => Al_n, IN0 => E, Z => D0_n);

                              g4: ND3 port map (IN2 => AO, IN1 => Al_n, IN0 => E, Z => Dl_n);

                              g5: ND3 port map (IN2 => A0_n, IN1 => Al, IN0 => E, Z => D2_n);

                              g6: ND3 port map (IN2 => AO, IN1 => Al, IN0 => E, Z => D3_n);

 endstructural_l;

4.3. Использование нескольких файлов проекта

4.4. Объявление и определение компонента

Объявление компонента используется для объявления типов портов и типов данных (Port types and Data Types) для портов в проекте более низкого уровня иерархии (lower-level design)

Определение компонента - Component Instantiation – используется для указания схемы подключения портов из проекта низшего уровня иерархии в проекте данного уровня иерархии

Если компонент описан в проекте низшего уровня иерархии, тогда в текущем проекте более высокого уровня иерархии следует сначала создать объявление компонента, а затем описывать подключение его портов в схеме данного проекта.

4.5. Преимущества иерархического проектирования

-  В составе группы разработчиков проекта каждый из разработчиков может разрабатывать свой компонент в отдельном файле.

-  Эти компоненты могут быть использованы разными разработчиками и применяться в следующих проектах.

-  Иерархическое проектирование позволяет сделать проект более компактным и структурированным.

-  Иерархическое проектирование упрощает реализацию альтернативных проектов. Пример: можно проверить возможность использования разных типов счетчиков в схеме устройства путем замены объявления компонента и замены описания подключения компонента.

4.6. Библиотеки поставщика - Vendor Libraries

Поставщики компонентов часто предоставляют библиотеки макрофункций и примитивов (libraries of macrofunctions & primitives)

Библиотеки фирмы Altera включают:

maxplus2

megacore

Библиотеки могут использоваться для управления физической имплементацией проекта в кристалл PLD.

Библиотеки поставщика компонентов повышают эффективность имплементации проекта в кристалл.

Корпорация Altera предоставляет полный набор функций LPM, а также другие примитивы и мегафункции (primitives and Megafunctions).

4.7. Библиотека параметризованных модулей (Library LPM)

Библиотека LIBRARY ALTERA содержит следующие пакеты:

-  maxplus2 (Component declarations for all primitives and old-style megafunction Altera libraries)

-  megacore (Component declarations for some Altera Megacores)

Библиотека LIBRARY LPM содержит следующие пакеты:

-  lpm_components (Component Declarations for all Altera LPM functions)

Библиотека параметризованых модулей (Library of Parametrized Modules) содержит большие структурные блоки, которыеможно конфигурировать: