Movatterモバイル変換


[0]ホーム

URL:


Перейти до вмісту
Вікіпедія
Пошук

ABEL

Матеріал з Вікіпедії — вільної енциклопедії.
ABEL
Парадигмапаралельна
Дата появи1983
Розробник«Data I/O Corporation»

ABEL (англ.Advanced Boolean Expression Language) —мова проектування апаратури, розроблена спеціалістами Пеллеріним (англ.David Pellerin) та Холлі (англ.Michael Holley) з компанії«Data I/O Corporation» у1983 році в Редмонді, Вашингтон. Окрім цього, вони булипрограмістамивихідного коду першого їїкомпілятора[1].

Мова широко використовувалась для програмування різних видівПЛІС —CPLD таFPGA, оскільки при її проектуванні основний акцент було зроблено на автоматизації проектування ПЛІС та генерації конфігураційних файлів. В той же час основні конкуренти —VHDL таVerilog були спрямовані на моделюваннямікросхем. Проте станом на2013 рік ABEL практично не використовується, оскільки опис великих схем, що складаються з кількох тисячлогічних вентилів на цій мові непрактичний[джерело?].

Історія

[ред. |ред. код]

Концепція ABEL вперше була створена Расселом де Піна (англ.Russel de Pina) з дослідницької групи Data I/O's Applied Research Group в1981 році. Згодом робота була продовжена спеціалістами Мері Бейлі (англ.Mary Bailey), Бйорном Бенсоном (англ.Bjorn Benson), Вальтером Брайтом (англ.Walter Bright), Міхаелем Холлі (англ.Michael Holley), Чарльзом Олівером (англ.Charles Olivier) та Девідом Пеллеріним (англ.David Pellerin) на чолі здоктором Лі (англ.Kyu Y. Lee)[2].

Після серії продаж був придбаний компанією«Xilinx»[3], що розробила власну мову на її основі —XABEL[4].

Структура програми

[ред. |ред. код]
Приклад описумікросхеми 74162 на мові ABEL

Програма на мові ABEL являє собоютекстовий файл наступного змісту[1][5]:

  • шапка (англ.header) з назвою модуля, параметрами та заголовком.

Для спрощення сприйняття, програма поділяється на модулі, назва яких вказується в шапці файлу після ключового словаmodule. Великі файли можуть мати кілька модулів, з власними назвами, оголошеннями, логічними описами та тестовими векторами. Заголовок, що пишеться після зарезервованого словаtitle не є обов'язковим і використовується для ідентифікації проекту та створеннядокументації. Також в шапці, після ключового словаdevice інколи вказують пристрій, для якого розробляється модуль.

Цей розділ файлу призначений для визначень об'єктів програми і починається з ключового словаdeclarations. Наприклад, для оголошення піна використовують його назву та ключове словоpin. Необов'язково, проте можливо задати його номер виводу на мікросхемі, а після зарезервованого словаistype — тип, наприкладcom означає комбінаційний вихід.

Починається з ключового словаequations і описує функціональну частину створюваного модуля. Рівності записуються подібно до оператораприсвоєння вмовах програмування і закінчуються символом ;.

  • тестові вектори (англ.test vectors).

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

Закінчується файл ключовим словомend.

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

Конструкції мови

[ред. |ред. код]

Множина символів мови

[ред. |ред. код]

До множини символів мови входять латинські літери, арабські цифри та спеціальні символи. Вони використовуються для утворення рядків (оточуючи їх з обох боків символом ') та ідентифікаторів.

Зарезервовані слова

[ред. |ред. код]

Мова передбачає використання 28 зарезервованих слів. Використання їх в назвах пристроїв, пінів, вузлів, констант, множин, макросів чи сигналів забороняється і приведе до помилки.

DECLARATIONSDEVICEELSEENABLEENDENDCASEENDWITH
FUSESEQUATIONSFLAGIFINISTYPELIBRARY
MACROMODULENODEOPTIONSPINPROPERTYSTATE_DIAGRAM
TEST_VECTORSTHENTITLETRACETRUTH_TABLEWHENWITH

Числа

[ред. |ред. код]

Мова ABEL підтримує запис чисел вдесятковій,двійковій,вісімковій ташістнадцятковійсистемах числення. Таблиця нижче ілюструє формат запису чисел.

Основа системиФормат
10<послідовність цифр 0..9>
2^b<послідовність цифр 0, 1, X>
8^o<послідовність цифр 0..7>
16^h<послідовність цифр 0..9, A..F>

За замовчуванням, числа інтерпретуються як десяткові, проте використаннядирективи@RADIX змінює це.

@RADIX 2 " двійкова система@RADIX 1010 " десяткова система

Приклади використання

[ред. |ред. код]
MODULE trafficlightTITLE 'trafficlight'DECLARATIONS" вхідні піниclk PIN 11;en PIN 9;q0 NODE ISTYPE 'reg';q1 NODE ISTYPE 'reg';" вихідні піниred PIN 36 ISTYPE 'com';yellow PIN 42 ISTYPE 'com';green PIN 39 ISTYPE 'com';EQUATIONSq0 := !q0 & !en;q1 := (q1 $ q0) & !en;q0.clk = clk;q1.clk = clk;red = q1;yellow = !q0;green = !(q1 & !q0);TEST_VECTORS([clk, en] -> [red, yellow, green]);@repeat 1 {[.C., 1] -> [.X., .X., .X.];}@repeat 7 {[.C., 0] -> [.X., .X., .X.];}@repeat 3 {[.C., 1] -> [.X., .X., .X.];}@repeat 40 {[.C., 0] -> [.X., .X., .X.];}END

Лічильник

[ред. |ред. код]

Нижче представлено код 4-розрядного двійковоголічильника на мові ABEL, який випускаєтьсяамериканською промисловістю якінтегральна мікросхема74x163[1].

MODULE Z74X163TITLE '4-bit Binary Counter'DECLARATIONS" вхідні піниclk, ld_l, clr_l, enp, ent PIN;a, b, c, d PIN;" вихідні піниqa, qb, qc, qd PIN ISTYPE 'reg';rc0 PIN ISTYPE 'com';" визначення шинinput = [d, c, b, a];count = [qd, qc, qb, qa];ld = !ld_l;clr = !clr_l;EQUATIONScount.clk = clk;count := !clr & (ld & input # !ld & (ent & enp) & (count + 1) # !ld & !(ent & enp) & count);rc0 = (count == [1, 1, 1, 1]) & ent;END Z74X163

Див. також

[ред. |ред. код]

Примітки

[ред. |ред. код]
  1. абвJohn F. WakerlyDigital Design: Principles and Practices. — 4th Edition, 2005. —ISBN 0-13-186389-4(англ.)
  2. Lee, Kyu Y.; Holley, Michael; Bailey, Mary; Bright, Walter (June 1985). A High-Level Design Language for Programmable Logic Devices.VLSI Design. Manhasset NY: CPM Publications.6 (6): pp. 50–62.ISSN 0279-2834.{{cite journal}}:|pages= має зайвий текст (довідка)
  3. XILINX COMPLETES PURCHASE OF SOFTWARE ASSETS. Архіворигіналу за 23 квітня 2000. Процитовано 19 вересня 2013.[Архівовано 2000-04-23 уWayback Machine.]
  4. Xilinx ABEL User Guide(PDF). Архіворигіналу(PDF) за 21 вересня 2013. Процитовано 21 вересня 2013.[Архівовано 2013-09-21 уWayback Machine.]
  5. University of Pennsylvania's ABEL primer, as recommended by Walter Bright.Архів оригіналу за 6 лютого 2007. Процитовано 6 лютого 2007.

Посилання

[ред. |ред. код]

Література

[ред. |ред. код]
  • David Pellerin and Michael Holley.Digital Design Using ABEL. Prentice Hall, 1994.(англ.)
Цифрових схем
ABEL  ·AHDL  ·CUPL  ·PALASM  ·SystemVerilog  ·Verilog  ·VHDL
Аналогових схем
Отримано зhttps://uk.wikipedia.org/w/index.php?title=ABEL&oldid=44480942
Категорія:
Приховані категорії:

[8]ページ先頭

©2009-2025 Movatter.jp