Проектування цифрових пристроїв на основі САПР QUARTUS II: Практикум, страница 41

е) у секції Subdesign Section повторити ім’я проекту 6XXsum та оголосити вхідні і вихідні порти.

SUBDESIGN 600sum                            

(

        sw1[7..1]     :  INPUT;

        dataa[3..0]   :  OUTPUT;

)

FПримітка. Порти sw1[7..1] є зовнішніми виводами мікросхеми, тому названі стандартно, як у файлі розведення ../4lab/MAX_pin.  

ж) ввести секцію змінних Variable Section.

VARIABLE                                  

и) вставити підсекцію Instance Declaration (non-parameterized) і ввести імена зразків та (через двокрапку) типи оголошених у п. 2.2, г, д макро- і мегафункцій (для наочності у файлі 600gr_sum.bdf імена зразків позначено для суматорів першого і другого ступеня).

        sm1   :  74183;  sm2 :  sum2;

к) викликати логічну секцію Logic Section;

BEGIN

END;              

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

BEGIN                                     

sm1.1cn0=sw1[2]; sm1.1a=sw1[3]; sm1.1b=sw1[4]; sm1.2cn0=sw1[5];    sm1.2a=sw1[6]; sm1.2b=sw1[7]; sm2.cin=sw1[1]; sm2.dataa[]=(sm1.1cn1, sm1.1sum); sm2.datab[]=(sm1.2cn1, sm1.2sum);

    dataa[]=(GND, sm2.cout, sm2.result[]);

END;

м) виконати компіляцію і моделювання та переконатися в правильності функціонування пристрою за часовими діаграмами 6XXsum.vwf.

Приклад: 600sum.tdf, .vwf;

 н) відкрити (якщо це не зроблено) файл вершини текстового проекту 6ХХsum.tdf і створити символьний файл блоку суматора: меню File > Create/Update > Create Symbol Files for Current File > OK в інформаційному віконці про успішне генерування символьного файлу. Відтак відчинити вікно символьного файлу (з типу файлів Graphic Files або Other Source Files) та, у разі потреби, зменшити розмір символа: клацнути сторону внутрішнього прямокутника, скоригувати його розмір, клацнути для виділення написи, перетягнути їх ближче до центру та скоригувати розмір зовнішнього прямокутника і зберегти файл.

Приклад: 600sum.bsf.

3. Засвоїти основи створення ієрархічного проекту на рівні блок-схеми для побудови порогового елементу, заданого згідно з варіантом ХХ.

Від перемикача MAX_SW1 (див. файл ../6lab/600POR_EL.bdf на       рис. А.1) сигнали sw1[] надходять на входи суматора, на виходах якого формується код dataa[], що відображає кількість одиничних рівнів на входах. Для індикації цієї кількості сума через дешифратор 7-сегментного коду подається на 7-сегментний індикатора MAX_DIGIT (якщо сума перевищує 9, її двійковий код попередньо необхідно перетворити в ДДК на кшталт ..5lab/500gr_CKP). У компараторі сума dataa[] порівнюється з пороговою величиною b і коли досягає її, на виході компаратора утворюється рівень логічної  1, що індикується світлодіодом D1. Дозвіл на індикацію порога задається перемикачем MAX_SW2.     

3.1 Визначити ім’я проекту та створити файл блок-схеми (файл верхнього рівня ієрархії проекту).

FПримітка.Для виконання наступних дій доцільно користуватися зразком блок-схеми у файлі ../6lab/600POR_EL.bdf (рис. А.1):

 а) створити новий проект 6ХХPOR_EL, на другій сторінці майстра New Project Wizard включити до складу проекту заздалегідь створені текстові файли блоку суматора 6ХХsum.tdf (п. 2.2) та sum2.tdf    (п. 2.1,б), на четвертій – вибрати родину мікросхем MAX7000S, на п’ятій – тип корпусу PLCC, кількість виводів 84, швидкодію Any (будь-яка) та мікросхему зі списку доступних типів EPM7128SL84-7;

 б) створити новий графічний файл з безіменною назвою BlockN.bdf (N – довільний номер).

3.2 Вставити до блок-схеми функціональний блок.

 а) інструментом палітри вставлення блоку Block Tool натиснути в полі файлу лівою кнопкою миші і, утримуючи її, протягнути по діагоналі для утворення прямокутної області приблизно потрібного розміру. Після відпускання кнопки з’явиться виділений безіменний блок з порожньою картою його зовнішніх входів/виходів (І/О);