ABEL (англ. Advanced Boolean Expression Language) — мова проектування апаратури, розроблена спеціалістами Пеллеріним (англ. David Pellerin) та Холлі (англ. Michael Holley) з компанії у 1983 році в Редмонді, Вашингтон. Окрім цього, вони були програмістами вихідного коду першого її компілятора.
ABEL | |
---|---|
Парадигма | паралельна |
Дата появи | 1983 |
Розробник |
Мова широко використовувалась для програмування різних видів ПЛІС — 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).
Після серії продаж був придбаний компанією «Xilinx», що розробила власну мову на її основі — .
Структура програми
Програма на мові ABEL являє собою текстовий файл наступного змісту:
- шапка (англ. header) з назвою модуля, параметрами та заголовком.
Для спрощення сприйняття, програма поділяється на модулі, назва яких вказується в шапці файлу після ключового слова module. Великі файли можуть мати кілька модулів, з власними назвами, оголошеннями, логічними описами та тестовими векторами. Заголовок, що пишеться після зарезервованого слова title не є обов'язковим і використовується для ідентифікації проекту та створення документації. Також в шапці, після ключового слова device інколи вказують пристрій, для якого розробляється модуль.
Цей розділ файлу призначений для визначень об'єктів програми і починається з ключового слова declarations. Наприклад, для оголошення піна використовують його назву та ключове слово pin. Необов'язково, проте можливо задати його номер виводу на мікросхемі, а після зарезервованого слова istype — тип, наприклад com означає комбінаційний вихід.
- логічні описи (англ. logic descriptions) рівнянь, таблиць істинності, діаграм станів.
Починається з ключового слова equations і описує функціональну частину створюваного модуля. Рівності записуються подібно до оператора присвоєння в мовах програмування і закінчуються символом ;.
- тестові вектори (англ. test vectors).
Особливістю мови ABEL є використання тестових векторів як спеціальних конструкцій для функціонального тестування розроблюваного пристрою. Воно здійснюється методом припущення, тобто комбінаціям вхідних сигналів ставляться в відповідність очікувані значення вихідних.
Закінчується файл ключовим словом end.
Окрім того, будь-де в тексті програми можуть зустрічатися коментарі, що починаються з символу " і продовжується до цього ж символу або кінця рядка.
Конструкції мови
Множина символів мови
До множини символів мови входять латинські літери, арабські цифри та спеціальні символи. Вони використовуються для утворення рядків (оточуючи їх з обох боків символом ') та ідентифікаторів.
Зарезервовані слова
Мова передбачає використання 28 зарезервованих слів. Використання їх в назвах пристроїв, пінів, вузлів, констант, множин, макросів чи сигналів забороняється і приведе до помилки.
DECLARATIONS | DEVICE | ELSE | ENABLE | END | ENDCASE | ENDWITH |
FUSES | EQUATIONS | FLAG | IF | IN | ISTYPE | LIBRARY |
MACRO | MODULE | NODE | OPTIONS | PIN | PROPERTY | STATE_DIAGRAM |
TEST_VECTORS | THEN | TITLE | TRACE | TRUTH_TABLE | WHEN | WITH |
Числа
Мова 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 trafficlight TITLE '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'; EQUATIONS q0 := !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.
MODULE Z74X163 TITLE '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; EQUATIONS count.clk = clk; count := !clr & (ld & input # !ld & (ent & enp) & (count + 1) # !ld & !(ent & enp) & count); rc0 = (count == [1, 1, 1, 1]) & ent; END Z74X163
Див. також
Примітки
- John F. Wakerly Digital Design: Principles and Practices. — 4th Edition, 2005. — (англ.)
- 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.
{{}}
:|pages=
має зайвий текст () - . Архів оригіналу за 23 квітня 2000. Процитовано 19 вересня 2013.
- (PDF). Архів оригіналу (PDF) за 21 вересня 2013. Процитовано 21 вересня 2013.
- University of Pennsylvania's ABEL primer, as recommended by Walter Bright (англ.). оригіналу за 6 лютого 2007. Процитовано 6 лютого 2007.
Посилання
- http://mazsola.iit.uni-miskolc.hu/cae/docs/xabel.html [ 21 вересня 2013 у Wayback Machine.]
- http://www.ue.eti.pg.gda.pl/cup/abel_ref.pdf [ 21 вересня 2013 у Wayback Machine.]
- (англ.)
Література
- David Pellerin and Michael Holley. Digital Design Using ABEL. Prentice Hall, 1994. (англ.)
Вікіпедія, Українська, Україна, книга, книги, бібліотека, стаття, читати, завантажити, безкоштовно, безкоштовно завантажити, mp3, відео, mp4, 3gp, jpg, jpeg, gif, png, малюнок, музика, пісня, фільм, книга, гра, ігри, мобільний, телефон, android, ios, apple, мобільний телефон, samsung, iphone, xiomi, xiaomi, redmi, honor, oppo, nokia, sonya, mi, ПК, web, Інтернет
ABEL angl Advanced Boolean Expression Language mova proektuvannya aparaturi rozroblena specialistami Pellerinim angl David Pellerin ta Holli angl Michael Holley z kompaniyi u 1983 roci v Redmondi Vashington Okrim cogo voni buli programistami vihidnogo kodu pershogo yiyi kompilyatora ABELParadigmaparalelnaData poyavi1983Rozrobnik Mova shiroko vikoristovuvalas dlya programuvannya riznih vidiv PLIS CPLD ta FPGA oskilki pri yiyi proektuvanni osnovnij akcent bulo zrobleno na avtomatizaciyi proektuvannya PLIS ta generaciyi konfiguracijnih fajliv V toj zhe chas osnovni konkurenti VHDL ta Verilog buli spryamovani na modelyuvannya mikroshem Prote stanom na 2013 rik ABEL praktichno ne vikoristovuyetsya oskilki opis velikih shem sho skladayutsya z kilkoh tisyach logichnih ventiliv na cij movi nepraktichnij dzherelo IstoriyaKoncepciya ABEL vpershe bula stvorena Rasselom de Pina angl Russel de Pina z doslidnickoyi grupi Data I O s Applied Research Group v 1981 roci Zgodom robota bula prodovzhena specialistami Meri Bejli angl Mary Bailey Bjornom Bensonom angl Bjorn Benson Valterom Brajtom angl Walter Bright Mihaelem Holli angl Michael Holley Charlzom Oliverom angl Charles Olivier ta Devidom Pellerinim angl David Pellerin na choli z doktorom Li angl Kyu Y Lee Pislya seriyi prodazh buv pridbanij kompaniyeyu Xilinx sho rozrobila vlasnu movu na yiyi osnovi Struktura programiPriklad opisu mikroshemi 74162 na movi ABEL Programa na movi ABEL yavlyaye soboyu tekstovij fajl nastupnogo zmistu shapka angl header z nazvoyu modulya parametrami ta zagolovkom Dlya sproshennya sprijnyattya programa podilyayetsya na moduli nazva yakih vkazuyetsya v shapci fajlu pislya klyuchovogo slova module Veliki fajli mozhut mati kilka moduliv z vlasnimi nazvami ogoloshennyami logichnimi opisami ta testovimi vektorami Zagolovok sho pishetsya pislya zarezervovanogo slova title ne ye obov yazkovim i vikoristovuyetsya dlya identifikaciyi proektu ta stvorennya dokumentaciyi Takozh v shapci pislya klyuchovogo slova device inkoli vkazuyut pristrij dlya yakogo rozroblyayetsya modul ogoloshennya angl declarations piniv konstant vuzliv mnozhin staniv ta bibliotek Cej rozdil fajlu priznachenij dlya viznachen ob yektiv programi i pochinayetsya z klyuchovogo slova declarations Napriklad dlya ogoloshennya pina vikoristovuyut jogo nazvu ta klyuchove slovo pin Neobov yazkovo prote mozhlivo zadati jogo nomer vivodu na mikroshemi a pislya zarezervovanogo slova istype tip napriklad com oznachaye kombinacijnij vihid logichni opisi angl logic descriptions rivnyan tablic istinnosti diagram staniv Pochinayetsya z klyuchovogo slova equations i opisuye funkcionalnu chastinu stvoryuvanogo modulya Rivnosti zapisuyutsya podibno do operatora prisvoyennya v movah programuvannya i zakinchuyutsya simvolom testovi vektori angl test vectors Osoblivistyu movi ABEL ye vikoristannya testovih vektoriv yak specialnih konstrukcij dlya funkcionalnogo testuvannya rozroblyuvanogo pristroyu Vono zdijsnyuyetsya metodom pripushennya tobto kombinaciyam vhidnih signaliv stavlyatsya v vidpovidnist ochikuvani znachennya vihidnih Zakinchuyetsya fajl klyuchovim slovom end Okrim togo bud de v teksti programi mozhut zustrichatisya komentari sho pochinayutsya z simvolu i prodovzhuyetsya do cogo zh simvolu abo kincya ryadka Konstrukciyi moviMnozhina simvoliv movi Do mnozhini simvoliv movi vhodyat latinski literi arabski cifri ta specialni simvoli Voni vikoristovuyutsya dlya utvorennya ryadkiv otochuyuchi yih z oboh bokiv simvolom ta identifikatoriv Zarezervovani slova Mova peredbachaye vikoristannya 28 zarezervovanih sliv Vikoristannya yih v nazvah pristroyiv piniv vuzliv konstant mnozhin makrosiv chi signaliv zaboronyayetsya i privede do pomilki DECLARATIONS DEVICE ELSE ENABLE END ENDCASE ENDWITHFUSES EQUATIONS FLAG IF IN ISTYPE LIBRARYMACRO MODULE NODE OPTIONS PIN PROPERTY STATE DIAGRAMTEST VECTORS THEN TITLE TRACE TRUTH TABLE WHEN WITHChisla Mova ABEL pidtrimuye zapis chisel v desyatkovij dvijkovij visimkovij ta shistnadcyatkovij sistemah chislennya Tablicya nizhche ilyustruye format zapisu chisel Osnova sistemi Format10 lt poslidovnist cifr 0 9 gt 2 b lt poslidovnist cifr 0 1 X gt 8 o lt poslidovnist cifr 0 7 gt 16 h lt poslidovnist cifr 0 9 A F gt Za zamovchuvannyam chisla interpretuyutsya yak desyatkovi prote vikoristannya direktivi RADIX zminyuye ce RADIX 2 dvijkova sistema RADIX 1010 desyatkova sistemaPrikladi vikoristannyaMODULE trafficlight TITLE trafficlight DECLARATIONS vhidni pini clk PIN 11 en PIN 9 q0 NODE ISTYPE reg q1 NODE ISTYPE reg vihidni pini red PIN 36 ISTYPE com yellow PIN 42 ISTYPE com green PIN 39 ISTYPE com EQUATIONS q0 q0 amp en q1 q1 q0 amp en q0 clk clk q1 clk clk red q1 yellow q0 green q1 amp q0 TEST VECTORS clk en gt red yellow green repeat 1 C 1 gt X X X repeat 7 C 0 gt X X X repeat 3 C 1 gt X X X repeat 40 C 0 gt X X X END Lichilnik Nizhche predstavleno kod 4 rozryadnogo dvijkovogo lichilnika na movi ABEL yakij vipuskayetsya amerikanskoyu promislovistyu yak integralna mikroshema 74x163 MODULE Z74X163 TITLE 4 bit Binary Counter DECLARATIONS vhidni pini clk ld l clr l enp ent PIN a b c d PIN vihidni pini qa qb qc qd PIN ISTYPE reg rc0 PIN ISTYPE com viznachennya shin input d c b a count qd qc qb qa ld ld l clr clr l EQUATIONS count clk clk count clr amp ld amp input ld amp ent amp enp amp count 1 ld amp ent amp enp amp count rc0 count 1 1 1 1 amp ent END Z74X163Div takozhMovi opisu aparaturi VHDLPrimitkiJohn F Wakerly Digital Design Principles and Practices 4th Edition 2005 ISBN 0 13 186389 4 angl 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 a href wiki D0 A8 D0 B0 D0 B1 D0 BB D0 BE D0 BD Cite journal title Shablon Cite journal cite journal a pages maye zajvij tekst dovidka Arhiv originalu za 23 kvitnya 2000 Procitovano 19 veresnya 2013 PDF Arhiv originalu PDF za 21 veresnya 2013 Procitovano 21 veresnya 2013 University of Pennsylvania s ABEL primer as recommended by Walter Bright angl originalu za 6 lyutogo 2007 Procitovano 6 lyutogo 2007 Posilannyahttp mazsola iit uni miskolc hu cae docs xabel html 21 veresnya 2013 u Wayback Machine http www ue eti pg gda pl cup abel ref pdf 21 veresnya 2013 u Wayback Machine angl LiteraturaDavid Pellerin and Michael Holley Digital Design Using ABEL Prentice Hall 1994 angl