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

 б) зібрати пристрій для підсумовування кількості N одиничних рівнів вхідних сигналів. Перший ступінь скласти на макрофункціях повних суматорів дібраного типу (з бібліотеки 6libr.bdf або з пакета MAX+ PLUS II > Old Style Macrofunctions). У другому ступені задопомогою вбудованого майстра MegaWizard Plug-In Manager вставити  мегафункцію багаторозрядного суматора з іменем зразка, наприклад, sum2 (з категорії arithmetic > LPM_ADD_SUB, режим операції Addition only – тільки додавання, якщо потрібно, встановити прапорці Create a carry input та Create a carry output для створення вхідного cin і вихідного cout переносів). Відтак вставити до файлу вхідний і вихідний порти, виконати з’єднання компонентів схеми та дати імена портам і лініям у місцях розщеплення шин або об’єднання до шин. На завершення зберегти зміни у файлі.

FПримітки:

1. Входи суматорів можна з’єднувати з розрядами чисел лише відповідної ваги (яка не завжди відображається на символах у назвах входів і виходів).

2. У прикладі введено додатковий нульовий старший розряд dataa[3] = 0 для зручності з’єднання виходів суматора dataa[3..0]  з вхідною тетрадою дешифратора семисегментного коду (якщо його вхід D вилучити, то згідно з довідкою MAX+PLUS II за замовчуванням він з’єднується з логічною одиницею VCC);  

в) скомпілювати проект, створити файл часових діаграм, виконати функціональне моделювання та переконатися в правильності проектування пристрою.

Приклад: 600gr_sum.bdf, .vwf.

FПримітки:

1. Результати моделювання автоматично переносяться на файл часових діаграм проекту, якщо з меню Tools > Options > General > Processing на вкладці Processing ввімкнути прапорець Overwrite simulation input file with simulation result та натиснути кнопку OK. Проте повторне моделювання після внесення змін у вхідних сигналах може виявитися зручнішім без цієї опції: можна порівняти діаграми у звітному файлі після моделювання з діаграмами до внесення змін.

 2. Вхідний і вихідний коди зручно зображати в шістнадцятковій і десятковій системі числення, відповідно. Для зміни системи слід виділити діаграму групи і піктограмою Properties  (або B2 > Properties) викликати діалогове вікно Node Properties (властивості вузла) та в рядку Radix (система числення) прокруткою ввести Hexadecimal (шістнадцяткова система) або Unsigned Decimal (десяткова система числення без знака).

2.2 Користуючись графічним файлом 6XXgr_sum як зразком,створити проект блоку суматора у текстовому редакторі:

а) створити новий проект з ім’ям 6XXsum, яке має точно збігатися з іменем цього блоку в проекті верхнього рівня та включити до складу проекту файл sum2 суматора другого ступеня з проекту 6XXgr_sum (вставити його кнопками огляду та Add на другій сторінці вікна New Project Wizard);

б) створити новий текстовий файл 6XXsum.tdf і включити його допроекту6XXsum: натиснути піктограму збереження файлу, у діалоговому вікні встановити директорію своєї теки, вибрати тип файлу AHDL File (*.tdf), ввести ім’я 6XXsum, підняти прапорець Add file to current project та натиснути кнопку збереження;

в) ввести заголовок Title Statement (під кожним пунктом наводиться приклад зразка 600sum.tdf).

TITLE "Блок суматора для файлу блок-схеми";   

г) У секції Include Statement включити допроекту автоматично створений різновидмегафункції другого ступеня суматора sum2.

INCLUDE  "sum2.inc";        

д) у секції Function Prototype Statement (non-parameterized) ввести прототипи макрофункцій суматорів першого ступеня (записати дані із символа або скопіювати з довідки Help пакета MAX+PLUS II).

FUNCTION 74183 (1cn0, 1a, 1b, 2cn0, 2a, 2b)

        RETURNS (1sum, 1cn1, 2sum, 2cn1);

FПримітка. Прототип макрофункції певного типу вставляється тільки один раз, навіть якщо зразок цієї макрофункції використовується в проекті неодноразово. Якщо вставляється декілька різних макрофункцій, їх прототипи вводяться по черзі    повністю: FUNCTION <ім’я 1> (…) RETURNS (…); FUNCTION <ім’я 2> (…) RETURNS (…); і т. д;