рефераты конспекты курсовые дипломные лекции шпоры

Реферат Курсовая Конспект

Прототип модуля

Прототип модуля - раздел Транспорт, Методичні вказівки з курсу автоматизація проектування комп’ютерних систем Мова Аhdl Дозволяє При Описі Модуля Використовувати В Якості Його Компонентів...

Мова АHDL дозволяє при описі модуля використовувати в якості його компонентів створені раніше модулі. Для цього текстовий опис модуля верхнього рівня ієрархії повинен містити опис прототипів цих модулів.

Прототип задається за допомогою оператора Function Prototype Statement, що може бути розташований або безпосередньо в текстовому описі, або у файлі включення (Include File), вміст якого приєднується до текстового опису на етапі компіляції.

Файл включення (Include File) з описом прототипу модуля слід створювати за допомогою команди Create Default Include File(меню File),яка виконується у вікні текстового редактора пакета MAX+plus II, що містить опис модуля.

У мові AHDL визначені два способи звертання до прототипу модуля:

■ Безпосереднє звернення (In_Line Reference).

■ Присвоєння прототипу символічного імені, тобто оголошення змінної і звертання до нього, як до змінної.

Відзначимо, що зазначені способи звертання до прототипу збігаються з описаними раніше способами звертання до примітива.

У мові AHDL визначено два типи модулів:

■ Параметризовані (Parameterized).

■ Непараметризовані (Unparameterized).

При цьому, як ті, так і інші можуть бути створені або самим розроблювачем, або фірмою Altera.

Як приклад, розглянемо варіанти текстового опису модуля Top_level_module, представленого на рис. 22.

 

Рис. 22.

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

 

Файл Module_1.inc

Function Module_1 (D[8..1], clk)

Returns (Out[8..1]).

 

Файл Module_LPM.inc

Function Module_LPM (A[WIDTH..1], B[WIDTH..1])

With (WIDTH)

Returns (Out[WIDTH..1]).

Нижче представлений текстовий опис, у якому здійснюється безпосереднє звертання до прототипів модулів.

INCLUDE “Module_1.inc”;

INCLUDE “Module_LPM.inc”;

FUNCTION Module_2(Data[8..1], clk, Reset)

RETURNS (Data_out[8..1]);

SUBDESIGN Top_level_Module

(

Din[8..1], CLK, Reset : INPUT;

Dout[8..1] : OUTPUT;

)

VARIABLE

Int_A[8..1] : NODE;

Int_D[8..1] : NODE;

BEGIN

Int_A[ ] = Module_1(.CLK = CLK, .D[] = Din[]);

-- Int_A[ ] = Module_1(Din[], CLK);

Int_D[] = Module_LPM(.A[] = Int_A[], .D[] = Dout[])

WITH (WIDTH = 8);

-- Int_D[] = Module_LPM(Int_A[], Dout[])

-- WITH (WIDTH = 8);

Dout[] = Module_2(.CLK = CLK, .Data[] = Int_D[], .Reset = Reset);

-- Dout[] = Module_2(Int_D[], CLK, Reset);

END;

Прототипи модулів Module_1 і Module_LPM, що знаходяться у файлах включення, приєднуються до даного текстового опису за допомогою оператора Include, а прототип модуля Module_2 заданий безпосередньо в текстовому описі.

У розділі Variable оголошені дві змінні Int_A[8.. 1] і Int_D[8.. 1], що є символічними іменами шин, що зв'язують компоненти Module_1 і Module_LPM, Module_LPM і Module_2 відповідно.

Рівняння Int_A[]=Module(.CLK=CLK,.D[]=Din[]) ілюструє безпосереднє звертання до прототипу модуля і зіставлення входів прототипу й переданих значень за іменами. Значення, що повертається, іншими словами вихідний сигнал компоненти, присвоюється внутрішній змінній Int_A[].

У наступному рядку текстового опису, у рядку з коментарями, наведене рівняння, логічно еквівалентне рівнянню, розглянутому вище. Однак у ньому використовується позиційне зіставлення входів прототипу й переданих значень.

Значення параметра WIDTH задається при безпосереднім звертанні до прототипу параметризованого модуля.

Розглянемо тепер текстовий опис модуля Top_Level_Module, у якому компоненти оголошуються внутрішніми змінними.

INCLUDE “Module_1.inc”;

INCLUDE “Module_LPM.inc”;

FUNCTION Module_2(Data[8..1], clk,Reset)

RETURNS (Data_out[8..1]);

SUBDESIGN Top_level_Module

(

Din[8..1], CLK, Reset : INPUT;

Dout[8..1] : OUTPUT;

)

VARIABLE

Var_Module_1 : Module_1;

Var_Module_2 : Module_2;

Var_Module_LPM : Module_LPM WITH (WIDTH = 8);

BEGIN

Var_Module_1.CLK = CLK;

Var_Module_2(CLK, Reset) = (CLK, Reset);

Var_Module_1(D) = Din[];

Var_Module_LPM.A[] = Var_Module_1 .OUT[];

Var_Module_LPM .B[] = Dout[];

Var_Module_2 .Data[] = Var_Module_LPM .OUT[];

Dout[] = Var_Module_2 . Data_out[];

END

У розділі змінних оголошені три змінні - символічні імена модулів, використовуваних у даному текстовому описі як компоненти.

Відзначимо, що при оголошенні змінної Var_Module_LPM, що позначає параметризований модуль, задане значення параметра WIDTH.

 

ЛІТЕРАТУРА

1. Осадчий Ю.Ф. Язык описания аппаратуры AHDL. Метод. указания.

Часть 1. Основы языка AHDL. М. 2005.- 50 с.

 

ЗМІСТ

ВСТУП ………………………………………………………………… 3

Проекти ………………………………………………………………… 3

1. ЕЛЕМЕНТИ МОВИ ……………………………………………… 5

1.1. Ключові слова …………………………………………………….. 5

1.2. Символи ………………………………………………………….... 5

1.3. Імена ……………………………………………………………….. 6

1.4. Групи ……………………………………………………………….. 7

1.5. Числа ……………………………………………………………….. 8

1.6. Вирази ………………………………………………………………. 9

1.6.1. Арифметичні вирази …………………………………………… 9

1.6.2. Логічні вирази …………………………………………………… 11

1.7. Оператори ………………………………………………………….. 11

1.7.1. Логічні оператори ……………………………………………… . 11

1.7.2. Арифметичні оператори ………………………………………... 13

1.7.3. Оператори порівняння ………………………………………….. 13

1.8. Пріоритет виконання операцій …………………………………… 14

1.9. Примітиви ………………………………………………………… 15

1.9.1. Примітиви буферів ……………………………………………... 15

1.9.2. Буфер ланцюгового переносу (CARRY) ……………………….. 15

1.9.3. Буфер каскадного нарощування логічної функції (CASCADE)..16

1.9.4. Буфер логічного розширника (ЕХР) …………………………… 18

1.9.5. Буфер глобального ланцюга поширення керуючий сигнал

(GLOBAL) ………………………………………………………... 18

1.9.6. Буфер розміщення логічного осередку (LCELL),

що не видаляється ………………………………………………. 19

1.9.7. Буфер виходу з відкритим колектором (OPNDRN) …………… 21

1.9.8. Буфер розміщення логічного осередку (SOFT), що видаляється 21

1.9.9. Буфер виходу з Z станом (TRI) .………………………………... 22

1.10. Примітиви тригерів .……………………………………………… 22

2. СТРУКТУРА ТЕКСТОВОГО ОПИСУ ………………………… 23

2.1. Загальна структура ………………………………………………. 23

2.2. Розділ оголошення операторів ………………………………….. 25

2.2.1. Title Statement ……………………… ……………………….…. 25

2.2.2. Parameters Statement …………………………………….………. 26

2.2.3. Include Statement ………………………………………………… 26

2.2.4. Constant Statement ………………………………………………. 27

2.2.5. Define Statement …………………………………………………. 27

2.2.6. Function Prototype Statement ……………………………………. 28

2.2.7. Options Statement ………………………………………………… 29

2.2.8. Assert Statement ……………………..…………………………… 30

2.3. Subdesign Section …………………………………………………. 30

2.11. Variable Section ………………….………………………………. 31

2.12. Logic Section ………………………. ……………………………. 32

3. ЗАСТОСУВАННЯ КОНСТРУКЦІЙ МОВИ………………….. 33

3.1. Логічні рівняння ………………………………………………….. 33

3.2. Змінні типу NODE ……………………………………………. 34

3.3. Іменовані оператори ………………………………………………. 35

3.4. Групи ………………………………………………………………. 36

3.4.1. Одномірні й часові групи ……………………………………….. 36

3.4.2. Двовимірні групи ……………………………………………… 38

3.5. Таблиця істинності ……………………………………………… 39

3.6. Оператор IF THEN ……………………………………………….. 40

3.7. Оператор CASE …………………………………………………… 42

3.8. Базові значення логічних функцій …………………………….. 43

3.9. Константи ………………………………………………………… 46

3.10. Оператор FOR GENERATE ...………………………………… 46

3.11. Параметри ..………………………………………………………. 49

3.12. Оператор IF GENERATE ……………………………………. 49

3.13. Оператор ASSERT ...…………………………………………….. 51

3.14. Примітиви ..……………………………………………………… 52

3.15. Прототип модуля………………………………………………… 57

 

Література ……………………………………………………………….59


 

– Конец работы –

Эта тема принадлежит разделу:

Методичні вказівки з курсу автоматизація проектування комп’ютерних систем

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

Если Вам нужно дополнительный материал на эту тему, или Вы не нашли то, что искали, рекомендуем воспользоваться поиском по нашей базе работ: Прототип модуля

Что будем делать с полученным материалом:

Если этот материал оказался полезным ля Вас, Вы можете сохранить его на свою страничку в социальных сетях:

Все темы данного раздела:

Ужгород 2008
Методичні вказівки до лабораторних робіт з курсу «Автоматизація проектування комп’ютерних систем» для студентів 4-го курсу інженерно

Символи
У табл. 3 перераховані символи, використовувані в мові AHDL. Таблиця 3. Символи, використовувані в мові AHDL Символ Опис _

Буфер ланцюгового переносу (CARRY)
Буфер ланцюгового переносу дозволяє явно вказати компіляторові на необхідність використання схеми ланцюгового переносу логічного елемента НВІС сімейства FLEX 6000, FLEX 8000, FLEX 10K |1].

Сигналу (GLOBAL)
Буфер GLOBAL дозволяє явно вказати компіляторові на необхідність використання глобального, який проходить через всю НВІС, неперервного ланцюга для поширення: ■ тактового сигналу (Glo

Буфер виходу з Z станом (TRI)
Буфер TRI дозволяє явно вказати компіляторові на необхідність використання виходу з Z станом. Буфер має інформаційний вхід (IN), вхід дозволу роботи (ОЕ) і вихід (OUT). Якщо на вході ОЕ пр

Logic Section.
- Defaults Statement. - Assert Statemert. - Boolean Equations. - Boolean Control Equations. - Case Statement. - For Generate Statement. - If Th

Title Statement
Title Statement (оператор заголовка) дозволяє задати назву файлу звіту (Report File), який генерується компілятором. Приклад: TITLE “Binary COUNTER” Заго

Parameters Statement
Parameters Statement (оператор оголошення параметрів) у рамках мови AHDL задає символічне ім'я рядка символів, укладеного в подвійні лапки, або числа, заданого явно, або числа, що є результатом вик

Include Statement
Include Statement (оператор включення) дозволяє включити текст із файлу з розширенням .INC, зазначеного в операторі, у поточний текстовий файл. Приклади: 1. INCLU

Constant Statement
Constant Statement (оператор задання константи) дозволяє присвоїти символічному імені незмінне значення задане числом (явно) або таке, що являється результатом виконання арифметичного вирази.

Define Statement
Define Statement (оператор позначення) дозволяє позначити оціночну функцію (evaluated function), яка дає можливість позначити арифметичний вираз символічним ім'ям. Приклад:

Function Prototype Statement
Function Prototype Statement (оператор опису прототипу) дозволяє описати інтерфейс (входи, виходи, передані параметри) модулів або примітивів, які будуть використані в даному текстовому описі. Опер

Options Statement
Options Statement (оператор задання опції) дозволяє визначити в групі елемент із меншим індексом (ВITО) як: § LSB - молодший розряд (Least Significant Bit). При цьому індекси в групах пови

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

Subdesign Section
Subdesign Section (розділ опису інтерфейсу) дозволяє задати ім'я модуля й перелічити його виводи. Ім'я модуля повинно збігатися з ім'ям логічного файлу, у якому зберігається його текстовий опис. Як

Variable Section
Variable Section (розділ змінних) дозволяє задавати внутрішні змінні модуля, призначені для використання в розділі опису логіки (Logic Section). Змінна - це символічне ім'я: - лін

Logic Section
Logic Section (розділ опису логіки) дозволяє задати алгоритм роботи проектованого модуля. Правила використання розділу: § Розділ починається із ключового слова BE

Константи
Використання в текстовому описі символічних імен замість фіксованих числових значень (тобто використання констант) дозволяє: ■ зробити текстовий опис більше наочним; ■

Параметри
Мова AHDL дозволяє створити параметризований опис модуля - опис, що адаптується до конкретних умов застосування модуля, тобто до конкретних значень параметра. Значення параметра, на відмін

Хотите получать на электронную почту самые свежие новости?
Education Insider Sample
Подпишитесь на Нашу рассылку
Наша политика приватности обеспечивает 100% безопасность и анонимность Ваших E-Mail
Реклама
Соответствующий теме материал
  • Похожее
  • Популярное
  • Облако тегов
  • Здесь
  • Временно
  • Пусто
Теги