Архітектурне тіло та об’єкт в мові VHDL 


Мы поможем в написании ваших работ!



ЗНАЕТЕ ЛИ ВЫ?

Архітектурне тіло та об’єкт в мові VHDL



Цифрова система зазвичай розробляється як ієрархічна сукупність модулів. Кожен модуль має набір портів, що складають його інтерфейс до оточення. У ВХДЛ об’єкт – такий модуль, він може використовуватися як компонент проекту чи може бути модулем верхнього рівня. Синтаксис оголошення об’єкта:

оголошення_об’єкта::=

entity ідентифікатор is

заголовок_об’єкта

розділ_оголошень_об’єкта

[ begin

операторна_частина_оголошення ]

end [просте_ім’я_об’єкта];

заголовок_об’єкта::=

[ розділ_формальних_параметрів_настроювання ]

[ розділ_формальних_портів ]

розділ_параметрів_настроювання::=

generic (список_параметрів_настроювання);

список_параметрів_настроювання::=

інтерфейсний_список_параметрів_настроювання

розділ_портів::= port (список_портів);

список_портів::= інтрефейсний_список_портів

розділ_оголошення_об’єкта::= { елемент_оголошення_об’єкта }

 

У розділі оголошень об’єкта можуть оголошуватися елементи, що використовуються у реалізації цього об’єкта. Також в оголошенні об’єкта можуть бути розташовані необов’язкові оператори, призначені для контролю за роботою об’єкта.

Заголовок об’єкта – найважливіша частина. Він включає специфікацію параметрів настроювання, що використовуються для керування структурою та поведінкою об’єкта та портів, через які передається інформація.

Параметри настроювання та порти визначаються з використанням інтерфейсного списку:

інтерфейс ний_список::= елемент_інтерфейсу { елемент_інтерфейсу };

елемент_інтерфейсу::= оголошення_інтерфейсу

оголошення_інтерфейсу::=

оголошення_інтерфейсних_констант

| оголошення_інтерфейсних_сигналів

| оголошення_інтерфейсних_змінних

оголошення_інтерфейсних_констант::=

[ constant ] список_ідентифікаторів: [ in ] опис_підтипу

[:= статичний_вираз ]

оголошення_інтерфейсних_змінних::=

[ variable ] список_ідентифікаторів: [ режим ] опис_підтипу

[:= статичний_вираз ]

оголошення_інтерфейсних_сигналів::=

[ signal ] список_ідентифікаторів: [ режим ] опис_підтипу [ bus ]

[:= статичний_вираз ]

 

Усі параметри настроювання мають оголошуватися як інтрефейсні константи. Порти визначаються з використанням інтерфейсного списку, всі його елементи мають бути сигналами. Змінні не можуть використовуватися в інтерфейсах об’єктів.

Слово signal в інтерфейсному списку сигналів може бути опущено. Слово bus використовується коли всі драйвери сигналу від’єднані. Як і параметри настроювання, фактичні сигнали, що будуть з’єднані з портами, визначаються, коли об’єкт використовується як примірник компонента у проекті.

Режим інтерфейсного сигналу вказує на можливість його зчитування та зміни в об’єкті. Якщо режим in, то він буде тільки зчитаний в об’єкті, змінити його неможливо. Сигнал, оголошений з режимом out, може бути змінений в об’кті, але дізнатися про його значення неможливо. Сигнал inout може бути зчитано та змінено в об’єкті.

Після оголошення об’єкта його реалізація має бути описана в архітектурному тілі. Одному об’єкту може відповідати кілька архітектурних тіл. Кожне архітектурне тіло являє собою різне представлення об’єкта.

Синтаксис опису архітектурного тіла:

архітектурне_тіло::=

architecture ідентифікатор of назва_об’єкта is

розділ_оголошень_архітектруного_тіла

begin

операторна_частина_архітектруного_тіла

end [ просте_ім’я_архітектурного_тіла ];

розділ_оголошень_архітектруного_тіла::=

{ елемент_оголошення_блоку}

операторна_частина_архітектруного_тіла::= { паралельний_оператор }

елемент_оголошення_блоку::=

оголошення_підпрограми

| тіло_підпрограми

| оголошення_типу

| оголошення_підтипу

| оголошення_константи

| оголошення_сигналу

| оголошення_компонента

| оголошення_псевдоніма

| оголошення_конфігурації

| специфікатор_використання

паралельний_оператор::=

оператор_блоку

| оператор_створення_примірника_компонента

| оператор_процесу

| оператор_паралельного_присвоювання

| оператор_паралельного_виклику процедури

| оператор_паралельної_генерації

| оператор_паралельного_повідомлення

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

Операторна частина архітектурного тіла складається ТІЛЬКИ з паралельних операторів таких, як оператори створення примірників компонент, процесів, блоків, паралельного присвоювання та паралельного виклику підпрограм.


 

Призначення та можливості програми SPICE

За допомогою програми SPICE можна виконати розрахунки основних характеристик електронної схеми. Серед них найголовнішими є:

нелінійний розрахунок режиму за постійним струмом;

нелінійний розрахунок перехідної характеристики: обчислення напруги та струму як функції часу, використання нелінійних моделей компонентів схеми;

лінійний розрахунок амплітудно-частотної характеристики: обчислення амплі­туди вихідного сигналу та його фази як функції частоти, використання лінеаризованих моделей компонентів.

Також програма SPICE дозволяє виконати аналіз:

шумових характеристик схеми;

чутливості напруги та струмів схемі до зміни її параметрів;

нелінійних спотворень.

Комерційні пакети моделювання електронних схем можуть мати додаткові мож­ливості, не реалізовані у SPICE Каліфорнійського університету, наприклад здатність виконувати оптимізацію параметрів компонентів схеми за деяким критерієм або враховувати паразитні ефекти з'єднань друкованих плат.

При моделювання враховується температурна залежність властивостей таких компонентів, як конденсатори, опори, індуктивності, біполярні та польові транзисто­ри. Температура, за якої виконується моделювання, вказується як параметр TEMP директиви.OPTION. За замовчуванням моделювання схеми виконується при тем­пературі 27°С. За необхідності можна вказати іншу температуру для кожного примірника компонента. За допомогою параметра TNOM директиви.OPTION можна вка­зати температуру, якій відповідають параметри моделей компонентів (за замовчу­ванням температура також дорівнює 27°С). У свою чергу, для кожної моделі можна вказати певну температуру та відповідні їй параметри. Слід відзначити, що в деяких версіях програми SPICE існують й інші можливості керування температурою, за якої відбувається моделювання.


 

Оператор процесу в мові VHDL

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

Оператор_процесу::=

[мітка_процесу:]

process [(список_чутливості)]

розділ_оголошень_процесу

Begin

операторна_частина_процесу

end process [мітка_процесу];

Розділ оголошень процесу визначає об’єкти, що використовуються локально у межах процесу. Змінні, оголошені у процесі, зберігають свої значення між активаціями процесу й використовуються для збереження стану системи, вони є невидимими в інших процесах.
Процес може призупинити себе виконавши оператор wait:

Оператор_призупинення_процесу::=

wait [специфікатор_чутливості] [специфікатор_умови]

[специфікатор_часу];

специфікатор_чутливості::= on список_чутливості

список_чутливості::= ім’я_сигналу{,ім’я_сигналу}

специфікатор_умови::= until умова

специфікатор_часу::= for вираз_часу

Список чутливості оператора wait визначає набір сигналів, до яких процес є чутливим, коли призупинений. Якщо будь-який із цих сигналів змінюється, виконання процесу відновлюється і він перевіряє умову. При істинності (відсутності) умови виконання процесу продовжується із наступного оператора (або початку, якщо оператор wait був останнім), інакше – призупиняється знову. При відсутноті списку чутливості, процес є чутливим до всіх сигналів, згаданих в умові.


 



Поделиться:


Последнее изменение этой страницы: 2016-07-14; просмотров: 186; Нарушение авторского права страницы; Мы поможем в написании вашей работы!

infopedia.su Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Обратная связь - 3.145.156.46 (0.008 с.)