Handel-C - Википедия - Handel-C

Handel-C
ПарадигмаИмперативті (процессуалдық, құрылымдалған ), қатарлас
ЖобалағанОксфорд университетінің есептеу зертханасы
ӘзірлеушіESL; Целоксика; Ептілік; Тәлімгер графикасы
Бірінші пайда болды1996
Тұрақты шығарылым
v3.0
Пәнді теруСтатикалық, манифест, номиналды, қорытынды жасалды
ОЖКросс-платформа (көп платформа)
Файл атауының кеңейтімдері.hcc, .hch
Веб-сайтwww.mentor.com/ өнімдер/ fpga/ handel-c/
Майор іске асыру
Celoxica DK http://192.168.100.187
Әсер еткен
C, CSP, оксам

Handel-C жоғары деңгей бағдарламалау тілі бағдарламалау кезінде жиі қолданылатын төменгі деңгейлі аппаратураға бағытталған FPGA. Бұл бай топтама C, параллелизмге назар аудара отырып, аппараттық инстанцияны басқаруға арналған стандартты емес кеңейтулермен. Handel-C - бұл бағдарламалық жасақтаманың алғашқы деңгейлері, орталық процессорларды бағдарламалауға арналған бағдарламалық жасақтама. Handel-C архитектурасына бағытталған көптеген басқа дизайн тілдерінен айырмашылығы, бірқатар дизайн тілдерінде жинақталып, содан кейін сәйкес жабдықта синтезделуі мүмкін. Бұл әзірлеушілерді белгілі бір дизайн тілі мен архитектураның идиосинкразиясынан гөрі, бағдарламалау тапсырмасына назар аударуға босатады.

Қосымша мүмкіндіктер

С тобына күрделі тілді сипаттауға қажет барлық жалпы Си тілінің ерекшеліктері кіреді алгоритмдер. Көптеген енгізілген C компиляторлары сияқты, өзгермелі нүкте деректер түрлері алынып тасталды. Жылжымалы нүктелік арифметика өте тиімді сыртқы кітапханалар арқылы қолдау табады.

Параллель бағдарламалар

Сипаттау тәсілін жеңілдету үшін қатар жүріс-тұрыс кейбір CSP файлының жалпы құрылымымен бірге кілт сөздер қолданылады Оккам.

Мысалға:[1]

абз {         ++c;     а = г. + e;     б = г. + e;}

Арналар

Арналар механизмін қамтамасыз етіңіз хабарлама жіберу арасында параллель жіптер. Арналарды асинхронды немесе синхронды (сәйкесінше сақтау элементі бар немесе жоқ) деп анықтауға болады. Синхронды арнаға жазылған ағын бірден болады бұғатталған сәйкес тыңдау тізбегі хабарламаны қабылдауға дайын болғанға дейін. Сол сияқты, қабылдау ағыны келесі жіберуді орындағанға дейін оқылған мәлімдемеге тыйым салады. Осылайша олар құрал ретінде қолданылуы мүмкін үндестіру жіптер.[1]

абз {    чан int а; // синхронды арнаны жариялау    int х;    // ағын жібере бастайды    сек (мен = 0; мен < 10; мен++) {        а ! мен;  // 0-ден 9-ға дейінгі мәндерді арнаға бірізді жіберіңіз    }    // ағын ала бастайды    сек (j = 0; j < 10; j++) {        а ? х;  // арнадан x айнымалысына дейін 10 рет оқудың тізбегін орындау        кешіктіру;  // дәйекті оқулар арасында 1 сағат циклінің кешігуін енгізу                // бұл жазбалар арасында жіберілетін ағынды блоктауға әсер етеді    }}

Асинхронды арналар олар арқылы а түрінде берілген мәліметтерді сақтаудың белгіленген көлемін қамтамасыз етеді ФИФО. Бұл FIFO толық та, бос та емес, жіберу де, қабылдау да ағындар бұғатталмай жалғасуы мүмкін. Алайда, ФИФО бос болған кезде, қабылдау тізбегі келесі оқылымда блокталады. Ол толған кезде, жіберу ағыны келесі жіберуде блокталады. Әр түрлі актерлері бар арна сағат домендері жеңілдету үшін сақтаудың кем дегенде бір элементі қажет болғандықтан автоматты түрде асинхронды болады метаболімділік.

Жіп синхронды немесе асинхронды бірнеше арналарда бір уақытта күте алады, көрсетілген басымдылық бойынша берілген біріншісіне сәйкес әрекет етеді немесе егер дайын болмаса, балама жолды орындайды.

Қолдану саласы және айнымалы бөлісу

Декларациялау аясы кодтық блоктармен шектеледі ({ ... }) егер олар жарияланған болса, ауқым иерархиялық сипатқа ие, өйткені декларациялар ішкі блоктар шеңберінде болады.[1]

Мысалға:

int а;жарамсыз негізгі(жарамсыз){   int б;   / * «a» және «b» мәндері * /   {     int c;     / * «a», «b» және «c» мәндері * /    }   {     int г.;     / * «a», «b» және «d» мәндері * /     }}

Си тілінің кеңейтімдері

Эффектілерден басқа стандартты семантикасы C бағдарламаның орындалу уақытында келесі түйінді сөздер бар[1] FPGA ортасының тәжірибесін сипаттауға немесе Occam-дан алынған тілдік элементтерге арналған:

Түрлері мен нысандарыӨрнектерМәлімдемелер
чан<...> (типтегі тазартқыш)! (арнаға жіберу)
чанин[:] (бит ауқымын таңдау)? (арнадан оқу)
сөйлесу (түсіру)кешіктіру
макро экспр<- (алу)таңдау
сыртқы@ (біріктіру операторы)енін орнатыңыз
сыртқы_бөлутаңдаңызрұқсат етіңіз ...; жылы
кезектееніабз
интерфейссот отырысы
ішкірелизема
ішкі_бөлусағатты орнатыңыз
mpramотбасын құрды
макропрокорнатылған бөлік
Жедел Жадтау Құрылғысықалпына келтіру
Тұрақты Жадтау Құрылғысысек
семақалпына келтіріп көріңіз {...}
бөлістітрисема
сигналбірге
тип
белгісіз
вом

Жоспарлау

Handel-C-де тағайындау және кідірту командасы бір циклды алады. Барлық басқа операциялар «ақысыз».[1] Бұл бағдарламашыларға тапсырмаларды қолмен жоспарлап, тиімді құруға мүмкіндік береді құбырлар. Ілгектерді дұрыс кідірістерге параллель етіп орналастыру арқылы аппараттық ресурстарды пайдаланудың артуы есебінен магистральдар деректер өткізу қабілетін кеңейтуге мүмкіндік береді.

Тарих

Handel-C-дің тарихи тамыры бірнеше қатарда Оксфорд университетінің есептеу зертханасы аппараттық компиляция тобы әзірлеген аппараттық сипаттама тілдері. Handel HDL 1996 жылдың басында Handel-C-ге айналды. Оксфордта жасалған технология 1996 жылы Embedded Solutions Limited (ESL) үшін іргетас өнімі ретінде жетілу үшін бөлінді. ESL 2000 жылдың қыркүйегінде Celoxica болып өзгертілді.

Handel-C-ді ESL шығарғаннан кейін көптеген университеттік аппараттық зерттеулер топтары қабылдады, нәтижесінде академиялық қауымдастықта, әсіресе Ұлыбританияда, жабдықты жобалау құралы ретінде таныта алды.

2008 жылдың басында Celoxica компаниясының ESL бизнесін Agility сатып алды, ол Handel-C-ге қолдау көрсететін ESL құралдарын жасап шығарды.

2009 жылдың басында Agility бұдан әрі күрделі салымдар немесе несие ала алмаған соң жұмысын тоқтатты[2]

2009 жылдың қаңтарында Mentor Graphics Agility компаниясының C синтез активтерін сатып алды.[3]

Бір уақытта дамыған C HDL басқа ішкі жиыны 1994 ж. Transmogrifier C болып табылады Торонто университеті (қазір FpgaC ашық бастапқы жоба) және Streams-C at Лос-Аламос ұлттық зертханасы (қазір лицензияланған Импульсті жеделдетілген технологиялар атымен Импульс C )

Әдебиеттер тізімі

  1. ^ а б c г. e «Мұрағатталған көшірме» (PDF). Архивтелген түпнұсқа (PDF) 2010-03-31. Алынған 2010-03-31.CS1 maint: тақырып ретінде мұрағатталған көшірме (сілтеме) Handel-C тіліне арналған анықтамалық нұсқаулық
  2. ^ Габе Моретти (19 қаңтар 2009). «Agility DS несие дағдарысының құрбаны». EETimes.com.
  3. ^ Дилан МакГрат (22 қаңтар 2009). «Тәлімгер Agility's C синтезінің активтерін сатып алады». EETimes.com.

Сыртқы сілтемелер