- •Короткі відомості про мову vhdl
- •6.1. Поняття про інтерфейс і архітектуру об'єкту
- •6.2. Прості приклади опису об'єктів на мові vhdl
- •6.3. Основні елементи мови vhdl
- •6.4. Типи даних в мові vhdl
- •6.5. Декларація констант, сигналів, змінних
- •6.6. Зумовлені атрибути
- •6.7. Поняття про паралельні і послідовні оператори
- •6.8. Паралельний оператор процесу (process)
- •6.9. Послідовні оператори
- •6.9.1. Оператор привласнення значення змінній
- •6.9.2. Привласнення значень сигналам (призначення сигналів)
- •6.9.3. Оператор "якщо" (if)
- •6.9.4. Оператор "випадок" (case)
- •6.9.5. Оператор "компонент" (component)
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 (нова карта портів);
...; -- оператори
