Язык VHDL

Автор: Пользователь скрыл имя, 26 Октября 2011 в 23:34, реферат

Описание работы

Як вказувалося раніше, мова VHDL призначена для опису ЦС на різних рівнях проектування, починаючи з етапу системного (алгоритмічного, высокорівневого) проектування і закінчуючи етапом логічного (низкорівневого) проектування з використанням методології нисхідного проектування. Ця методологія припускає ієрархічний опис проектованої ЦС як системи, що складається з окремих компонентів (підсистем, модулів, вузлів тощо), з поступовим переходом від абстрактного (системного чи алгоритмічного) опису до більш детального (структурного чи схемного) опису.

Работа содержит 1 файл

Основные понятия.doc

— 192.00 Кб (Скачать)

      1.6. Package (пакет) 

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

      Ціль  пакета складається в оголошенні загальних типів, підтипів, констант, сигналів, файлів, компонент, функцій, процедур і ін. Як тільки пакет визначений, він може багаторазово використовуватися в незалежних проектах.

      Синтаксис:

      package package_name is

            package_declarations

      end [package] package_name; 

      Елементи, оголошені в декларації пакета, доступні для інших модулів, якщо застосовується граматична конструкція use.

      Стандарт  мови VHDL визначає два стандартних  пакети, що не вимагають використання use і повинні бути доступні в будь-який VHDL середовищу – пакети STANDARD і TEXTIO. Перший з них містить основні декларації типів даних, констант, операторів і т.п., другий визначає операції для керування текстовими файлами. Обидва пакети містяться в стандартній бібліотеці STD. Крім цього, як уже згадувалося, мається інший стандарт розширення мови, що міститься в пакеті std_logic_1164.

      Приклад 1.7.

      library packages;

      use packages.AUXILIARY.all; 

      architecture struct of adder is

      . . . . .

      end architecture struct;  

      Усі декларації, що містяться усередині  пакета AUXILIARY, можуть використовуватися  в тілі архітектури STRUCT проектованого  об'єкта Adder. Пакет зберігається безпосередньо в бібліотеці пакетів.

      Приклад 1.8.

      library IEEE;

      use IEEE. std_logic_1164.all; 

      package AUXILIARY is

      type Mux_input is array (integer range <>) of std_logic_vector (0 to 7);

      type operation_set is (Shift_left, Add);

      subtype Mux_address is positive;

      function Compute_address (in1: Mux_input) return Mux_address;

      constant Deferred_Con: integer;

      end package AUXILIARY;  

        У даному випадку пакет AUXILIARY містить підпрограму (функцію); тіло  підпрограми тут не дозволено.  Крім того, у пакеті оголошена так називана затримана константа, що не має значення, привласненого в декларації самого пакета. Воно повиннео бути оголошене в тілі пакета, що супроводжує декларацію пакета. Таким чином, якщо в оголошенні пакета містяться декларації підпрограм (і деякі інші декларації), те такий пакет повинний супроводжувати тіло пакета (package body), причому кожен пакет може мати тільки одне тіло.

      Тіло  пакета (package body) визначає тіла підпрограм і значень затриманих констант, оголошених в інтерфейсі до пакета. Інші декларації також дозволені, але вони видимі тільки усередині тіла пакета. 

      Синтаксис:

      package body package_name is

            package_body_declarations

            subprogram bodies declarations

            deferred constants declarations

      end package body package_name; 

      Приклад 1.9.

      library IEEE;

      use IEEE. std_logic_1164.all; 

      package AUXILIARY is

      type Mux_input is array (integer range <>) of std_logic_vector (0 to 7);

      type operation_set is (Shift_left, Add);

      subtype Mux_address is positive;

      function Compute_address (in1: Mux_input) return Mux_address;

      constant Deferred_Con: integer;

      end package AUXILIARY;

      package body AUXILIARY is

      function Compute_address (in1: Mux_input) return Mux_address is

      begin

      

      end;

      constant Deferred_Con: integer:=177;

      end package body AUXILIARY; 

      У розглянутому прикладі спочатку визначений пакет, а потім супровідне тіло пакета. Вони обоє повинні мати однакові імена.

      Питання і вправи

 

    1.1. Сформулюйте і поясните вимоги, пропоновані до мов проектування  цифрових систем. Для чого призначена  мова VHDL?

    1.2. Поясните значення й опишіть  особливості наступних абревіатур: російськомовні - ПЛИС, ПЛМ, СБИС; англомовні - ASIC, FPLA, FPGA, FPLD, PLD, PLA (PAL), PML, MCM, SSI, MSI, LSI, VLSI, ULSI.

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

    1.4. Опишіть, що загального і які  відмінності між мовою VHDL і  мовами програмування високого  рівня.

    1.5. Опишіть і охарактеризуйте основні частини VHDL-опису цифрової системи.

    1. Що розуміється під спадною методологією проектування складних систем? Що означає поняття «ієрархічна структура об'єкта (проекту)»?
    2. Опишіть технологію проектування цифрових систем із застосуванням мови VHDL.

    1.8. Що означають поняття “высокоуровневый  синтез”? “низкоуровневый синтез”?  Які Ви знаєте САПР для рішення  проектних задач різного рівня?

    1.9. Охарактеризуйте основні поняття  VHDL: проект, об'єкт, об'єкт проекту,  архітектура, бібліотека, пакет.

    1.10. Охарактеризуйте поняття «архітектура  об'єкта», «архітектурне тіло».  Що розуміється під алгоритмічною  (поведінкової) моделлю архітектури?  Структурною моделлю? Чи допускається  змішана (функціонально-структурна модель)?

    1.11. чи Можуть об'єкт проекту (entity) і його архітектура (architecture) визначені в окремих вихідних файлах?

    1.12. Що визначає архітектурний стиль  «потоків даних»? Коли його доцільно  використовувати?

    1.13. Укажіть діючі стандарти мови VHDL і стандартні пакети, що поставляються з базовим стандартом VHDL.

    1.14. Для наступних логічних елементів  запишіть таблицю істинності  і VHDL-модель.

 1.15. Запишіть  декларацію об'єкта й архітектурне  тіло, що описує функціонування  двухвходового мультиплексора з  вхідними портами a, b, sel і вихідним портом z. Якщо значення вхідного сигналу sel приймає значення ‘0’, величина а передається на вихід z (тобто z приймає значення a); у противному випадку z приймає значення b.

  

Информация о работе Язык VHDL