пису апаратури типу VHDL або Verilog ), у вигляді списку з'єднань і т.д.
Для моделювання та верифікації обраний програмний пакет Active - HDL 6.1. Він дозволяє автоматизувати процес введення проекту та TestBench до нього, а також ефективно здійснювати аналіз проектних рішень. Крім іншого у нас немає іншої більш-менш відповідною альтернативи.
Для синтезу проекту обраний програмний продукт фірми Synplicity Synplify 7.0.2, так як він має такі переваги порівняно з програмами синтезу інших виробників:
висока швидкість синтезу (основне);
візуальне представлення результатів синтезу (нетліста);
- наявність бібліотек під сучасну елементну базу найбільших світових виробників.
Введення проекту за допомогою мовного опису на Яоа є найбільш гнучким варіантом, хоча вимагає більше часу і знань специфіки використовуваного Яоа.
Опис блоків проекту на Яоа
В якості Яоа для опису обраний VHDL. Це обумовлено високою адаптацією засобів мови для потреб проектувальника, наявністю ефективного середовища моделювання (Active-HDL), а також середовища синтезу, що використовує VHDL (Synplify). p align="justify"> При описі проекту на мові VHDL зручно представляти складний проект у вигляді ієрархічної структури, все більш деталізуючи його опис на нижчих рівнях. Тим самим спрощується процес написання VHDL-моделей окремих компонент проекту а також їх налагодження. Після аналізу структурно-функціональної схеми була визначена ієрархія даного проекту, і вона представлена ​​на малюнку. br/>В
Малюнок 4.7 - Файлова ієрархія проекту
Файлова структура містить: BlackPack.vhdl, gi.vhdl, UDC.vhdl, rasp_imp.vhdl, kod.vhdl, mod2.vhdl, RG.vhdl, kom_imp.vhdl, BlockD.vhdl.
Блок перевірки на непарність. У заголовку об'єкта проектування (entity) вказані вхідні і вихідні сигнали даних блоку:
Data: std_logic_vector (8 downto 0);: std_logic;: std_logic.
В архітектурі (architecture) реалізується вираз (4.1), а також інверсія виходу Error:
OK <= not (Error) (4.2)
Вхідні дані описані, як вектор типу std_logic_vector розрядністю 9 біт.
Старший біт вхідних даних - біт парності.
Якщо Error дорівнює 1 , то вхідні дані непарні, що зупинить дію всього проекту. p>
Текст програми моделювання наведено у додатку. Результати моделювання наведені нижче. br/>В
Малюнок 4.8 - Результати моделювання блоку перевірки на непарність
Блок шифратор . У заголовку об'єкта проектування (entity) вказані вхідні і вихідні сигнали даних блоку:
Data: std_logic_vector (3 downto 0);: std_logic_vector (9 downto 0).
Вхідні дані Data мають розрядність 4 біт, так як нам мінімально необхідно всього лише вони, за допомогою яких ми визначаємо коефіцієнт ділення частоти. Вихідний сигнал До має розрядність 10 біт, так як це мінімальне число біт необхідне для представлення коефіцієнта ділення частоти в двійковій формі. p align="justify"> Архітектура складається з одного процесу. При описі процесу будемо використовувати список чутливості, що містить всі вхідні сигнали інтерфейсу пристрою, так як тимчасові параметри призупинення процесу відсутні. Для реалізації вибору потрібного коефіцієнта ділення в структурі процесу використовуємо оператор case. Він реалізує 8 умов, при якому коефіцієнт дорівнює певному числу, представленому в двійковій формі:
when "0001" => K <= "1111110010"; "0010" => K <= "1111100110"; "0100" => K < ; = "1100110011"; "0101" => K <= "1011011100";
when "1000" => K <= "1010000100";
when "1001" => K <= "1000100110"; "1010" => K <= "0111100010"; others => null;
Текст програми моделювання наведено у додатку. Результати моделювання наведені нижче. br/>В
Малюнок 4.9 - Результати моделювання блоку В«ШифраторВ»
Дивлячись на малюнок 4.9, можна сказати, що даний блок працює правильно.
Опис проекту на Яоа
Весь проект складається з безлічі файлів, які ми об'єднуємо за допомогою одного, BlackPack.vhdl, він то і є верхньою частиною ієрархії. Цей файл складається з компонентів, які ми об'єднуємо в один файл за допомогою операторів port map, які і є зв'язують файли нижньої ієрархії. Вищевказаний файл є реалізацією на мові опису апаратури специфікації всього пристрою. Він складається з entity, в якому ...