Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Короткі відомості про мову VHDL.doc
Скачиваний:
0
Добавлен:
01.07.2025
Размер:
167 Кб
Скачать
☆

6.9.4. Оператор "випадок" (case)

Оператор case вибирає одну з альтернатив і використовується усередині оператора процесу відповідно до наступної схеми:

case вираз is

when вибір 1 => оператори;

...

when вибір N => оператори;

when others => оператори;

end case;

Тип виразу може бути будь-яким. Вибирана альтернатива (випадок) визначається значенням виразу. При цьому записується декілька варіантів значень виразу. У приведеній схемі такі варіанти позначені як "вибір ", ..., "вибір ". Якщо згаданий вираз приймає значення "Вибір " ( ), то здійснюється перехід до операторів, записаних у відповідному рядку схеми. Оператори, записані в рядку з ключовими словами when others, виконуються, якщо вираз не приймає жодної із значень: "вибір ", ..., "вибір ". Ці значення повинні бути того ж типу, що і вираз.

Об'єкт (мал. 12) при використанні оператора case можна описати таким чином:

entity ANDOR is

port (e0,e1,e2 : in bit;

z : out bit);

end ANDOR;

architecture RTL1 of ANDOR is

begin

process (e0,e1,e2)

begin

case e0 and e1 is

when '0' => z <= '1';

when '1' =>

if (e2 = '1') then

z <= '1';

else

z <= '0';

end if;

end case;

end process;

end RTL1;

6.9.5. Оператор "компонент" (component)

Оператор component уживається, для того, щоб використовувати раніше створені проекти у складі нового проекту. Вживання даного оператора здійснюється відповідно до схеми:

сomponent имя_компонента1

port (карта-список портів з вказівкою їх типів);

end component;

Приклад використання даного оператора приведений в 6.2, де, зокрема, звертається увага на вимоги до запису імені компоненту і його портів при декларації, а також на необов'язковість використання влучний.

...; -- аналогічна декларація інших компонентів

-- і їх портів

...; -- декларація сигналів, змінних і констант

begin

...; -- оператори

метка_1 : имя_компонента1 port map (нова карта портів);

...; -- оператори

метка_2 : имя_компонента2 port map (нова карта портів);

...; -- оператори