Створення текстових проектів. Відновлення графічного файлу, що реалізує спеціальний дешифратор 7-сегментного коду для відображення заданих шістнадцяткових цифр, страница 2

9. Створюємо новий проект 505tab і аналогічний за назвою текстовий файл, який включаємо до проекту. В файл вводимо наступний текст:

TITLE "TABL";

SUBDESIGN 505tab

(

     a[1..0]          : INPUT;

     b[7..0]          : OUTPUT;

)

BEGIN

     TABLE

     a[] => b[];

     0 => 49;

     1 => 66;

     2 => 48;

     3 => 56;

     END TABLE;

END;

10 Виконуємо компіляцію, функціональне моделювання та автоматичне порівняння з файлом 305.vwf лабораторної роботи №3

Рис.4 – Результат компіляції проекту.

Рис.5 – Аналіз часу затримки при компіляції проекту.

Рис.6 – Результат симулювання проекту.

11 Створюємо символьний файл за відкритого текстового файлу за таким алгоритмом: File > Create / Update > Create Symbol File for Current File. Він буде мати такий вигляд

І буде міститися в файлі 505tab.bdf.

12 Створюємо новий проект 505ifthen і аналогічний за назвою текстовий файл, який включаємо до проекту. В файл вводимо наступний текст:

title "if_then";

subdesign 505ifthen

(

     x1, x0 : input;

     a, b, c, d, e, f, g : output;

)

begin

     if x1 then

               if x0 then

               a=gnd; e=gnd;  f=gnd; g=gnd;  b=vcc; c=vcc;  d=vcc;

               else

               a=gnd; d=gnd;  e=gnd; f=gnd;  g=gnd;  b=vcc; c=vcc;

               end if;

     else

               if x0 then

               b=gnd; c=gnd;  d=gnd; e=gnd;  g=gnd;   a=vcc; f=vcc;

               else

               a=gnd; d=gnd;  e=gnd; f=gnd;  b=vcc; c=vcc;  g=vcc;

               end if;

     end if;

end;

14 Тепер проведемо компіляцію і симулювання проекту.

Рис. 7– Результат компіляції проекту.

Рис.8 – Аналіз часу затримки при компіляції проекту.

Рис.9 – Результат симулювання проекту.

13 Створюємо новий проект 505сase і аналогічний за назвою текстовий файл, який включаємо до проекту. В файл вводимо наступний текст:

title "db,sh";

subdesign 505case

(

     a[1..0] : Input;

     b[7..0] : output;

)

begin

     case a[] is

               when 0 => b[]=49;

               when 1 => b[]=66;

               when 2 => b[]=48;

               when 3 => b[]=56;

     end case;

end;

14. Проведемо компіляцію і симулювання проекту.

Рис. 10– Результат компіляції проекту.

Рис.11 – Аналіз часу затримки при компіляції проекту.

Рис.12 – Результат симулювання проекту.

2 Засвоїти запровадження макрофункцій, символів та мегафункцій до проекту за його текстового введення.

1. Створюємо новий проект 505macro з однойменним текстовим файлом та виконуємо наступні дії:

а) Вводимо заголовок Title Statement:

TITLE “MACROFUNCTION”;

б) До шаблону секції Function Prototype Statement вставляємо прототип макрофункції двійкового дешифратора:

function 74139М (g, a, b)

     returns (y0n, y1n, y2n, y3n);

в) У секції Subdesign Section повторюємо ім’я проекту 505macro та оголошуємо вхідні і вихідні порти:

subdesign 505macro

(

     x1, x2 : input;

     a, b, c, d, e, f, g : output;

)

г) Вводимо секцію змінних Variable Section та вставляємо підсекцію оголошення зразка Instance Declaration і надаємо ім’я зразку (dc – ім’я зразка дешифратора) та через двокрапку вводимо ім’я макрофункції (74139М):

variable

     dc : 74139M;

д) Вводимо логічний блок Logic Section, між ключовими словами розташовуємо курсор, вставляємо підсекцію Boolean Equation та з'єднуємо рівняннями зразок функції з оголошеними портами INPUT і OUTPUT:

begin

     dc.a=x1;  dc.b=x2;

     a1=dc.y1n;  b1=!dc.y1n;  c=!dc.y1n; 

     d=dc.y3n;  e=vсс;  f=dc.y1n;  g=dc.y0n;

end;

2. Проведемо компіляцію і симуляцію проекту

Рис. 13– Результат компіляції проекту.

Рис.14 – Аналіз часу затримки при компіляції проекту.

Рис.15 – Результат симулювання проекту.

Примітка: сегменти в 7-сегментному індикаторі будуть висвічуватись, коли на виходах  a – g будуть одиниці.

3. Створюємо новий проект 505symb з однойменним текстовим файлом, який містить наступний текст:

title "asd";

function 505tab (a[1..0])

     returns (b[3..0]);

subdesign 505symb

(

     a[1..0] : input;

     a2, b2, c2, d2, e2, f2, g2 : output;

)

variable

     dc : 505tab;

begin

     dc.a[1..0]=a[1..0];

     a2=dc.b[1];  b2=!dc.b[1];  c2=!dc.b[1]; 

     d2=dc.b[3];  e2=vcc;  f2=dc.b[1];  g2=dc.b[0];

end;

4. Проведемо компіляцію і симуляцію проекту:

Рис. 16– Результат компіляції проекту.

Рис.17 – Аналіз часу затримки при компіляції проекту.

Рис.18 – Результат симулювання проекту.

Висновок: В даній лабораторній роботі