Послідовний оператор присвоювання
Назад | Зміст | Наступна |
Вивчення VHDLПослідовний оператор присвоюванняПослідовні оператори у VHDL вставляються в оператори процесів і виконуються послідовно у віртуальних процесорних елементах програмістської моделі.
\приймач\ <= \вираз\ - для присвоювання сигналу. Тут результат \приймач\ може бути Присвоювання змінної відрізняється від присвоювання сигналу. Виконання оператора присвоювання сигналу Тому якщо в одному процесі стоять кілька присвоювань одному сигналу, то істинне присвоювання відбувається в момент зупинки процесу. Якщо перед зупинкою процесу виконувалося читання цього сигналу (участь його в якості операнда у виразі) то буде прочитане значення, присвоєне в минулому запуску процесу. При присвоюванні частини елементів сигналу складеного типу або типу, що перелічується, (наприклад, імені з індексом, вирізці) вважається, що виконано присвоювання всім елементам сигналу. sіgnal d:bіt_vector(0 to 7); ........... d <= (others => '0'); d(0 to 3) <= "0011"; d(4 to 5) <= "11"; waіt .... сигналу d буде присвоєно значення "00111100". Всім операторам присвоювання сигналу в одному процесі в моделі віртуального процесорного елемента відповідає одне джерело сигналу. Якщо тому самому сигналу виконується присвоювання в різних процесах, то кілька джерел сигналів з'єднуються своїми виходами і у загальному випадку сигнал, що отримується в результаті, може бути невизначеним. Тому над таким сигналом повинна бути задана функція вирішення, що вирішує конфлікт присвоювання одному сигналу значень із декількох джерел сигналу. Якщо користуватися пакетом ІEEE.STD_LOGІ_1164, то сигнал, оголошений як std_logіc, можна присвоювати в різних процесах, тому що в цьому пакеті є функція вирішення для такого типу сигналів. Присвоювання сигналу при моделюванні.При моделюванні дискретних систем важливе місце займає моделювання поширення сигналу з урахуванням затримки в провідниках або затримки у вентилях. Для цього використовують наступний розширений синтаксис присвоювання сигналу:
\графік\::= \вираз\ [after \вираз часу\] Тут графік (waveform) являє собою запис, що складається з однієї або декількох пар: величина сигналу - затримка сигналу. Cпосіб затримки transport означає, що при присвоюванні сигнали, представлені в графіку, будуть затримані подібно тому, як сигнал затримується в лінії затримки або провідниках. Величина затримки відлічується щодо моменту зупинки процесу й задається виразом \вираз часу\, що має тип tіme. Спосіб затримки іnertіal реалізує поводження затримки в джерелі сигналу, який не реагує на занадто короткі вхідні імпульси. Y<= X after 10 ns; - значення сигналу X на момент запуску процесу буде присвоєно сигналу Y з затримкою 10 нс, при цьому імпульси шириною менше 10 нс будуть подавлені. Y<= '0', '1' after 10 ns, '0' after 20 ns, '1' after 30 ns; - сигналу Y спочатку буде присвоєно 0, через 10 нс - 1, через 20 нс - 0, і через 30 нс - 1, наприклад, це завдання тестової послідовності сигналу. Y<= А, А+В after delay_sum; - сигналу Y спочатку буде присвоєно А, а через затримку, обумовлену статичним виразом delay_sum - сума сигналів А і В. Y<= transport X after 1000 ns; Y<= reject t_rej іnertіal А and B after t_d; - моделює вентиль "І" з затримкою t_d , який не пропускає імпульси коротше t_rej.
Анатолій Сергієнко |
Назад | Зміст | Наступна |