Как да започнете с FPGA

FPGA (PLD) - програмируем логически интегрална схема (програмируемо логическо устройство)

FPGA (FPGA) - програмируем по полета логически масив (поле Програмирано Gate Array)







FPGAs се състоят от блокове и групи от логически врати, конфигурацията на връзките между които могат да бъдат определени чрез програмиране на микросхема.

Да започнем с малко количество теория. FPGAs са разделени на две основни групи: CPLD (комплекс Планирани логическо устройство) и FPGA (поле Програмирано Gate Array). CPLD - това обикновено FPGA-клас "икономика", т.е. Те имат по-ниска цена и сравнително оскъдно количество ресурси, особено забележимо върху спусъка. FPGA обикновено скъпи, да предоставят повече средства (проста логика. - джапанки) и най-важното, през последните години повече "трудни" блокове, като множители, блок памет интерфейс prichindaly (Ethernet, PCI-Express.), А дори и процесор ядро PowerPC. Отделно от това, можете да се спомене серия Zinq от Xilinx - за всички ARM ядро ​​пълнени. Основната разлика от FPGA CPLD е необходимо за зареждане на конфигурация на енергия и, съответно, външна конфигурация ROM. Дори семейството спартанец-3AN има на борда ROM вграден ВССН, на която товарът.

Сега най-важното: на FPGA е различен от контролера и кога да ги прилага. Всичко това е съвсем проста: FPGA (вземе тези без звънци и свирки) - е, всъщност, логиката на чантата в един чип, който може да бъде свързан свободно: същите тези тригери, AND, OR и подобни организации, като например в серията K155 или 74NS. Контролерът е същото - тя е готова процесор (макар и с оскъдни брой отбори), вградена памет, за трансфер на данни и команди, периферни устройства и т.н. Най-общо казано, голяма FPGA, можете да направите малък контролер, но тази идея, най-малко, глупаво. По този начин, на контролера е наострен от изпълнението на дълги вериги на командване, тяхното циклично повторение, които преминават от една верига към друга, и т.н. и изпълнение FPGA заточени от прости логически операции и, важното е, че голямо количество наведнъж (или дори при различни честоти часовник).

Как да започнете с FPGA

FPGA Xilinx XC95288XL в TQ144 пакет

Нека се обърнем от теорията към практиката. За начало имаме достатъчно за всяко CPLD чип. Ресурси са оскъдни, но развитието на най-то. Ще взема XC95288XL в TQ144 пакет (отново беше на разположение) обикновено се препоръчва да се вземе нещо по-свежа, например, серия от CoolRunner 2. За да получите готовия продукт (дори и минимално мига LED), ние трябва: да спойка хардуер (тук Надявам се, че няма проблеми, но ще спомена, нюансите), "пише" фърмуера (в този случай, по-скоро, за да се направи) и зашийте на фърмуера до чипа. Като цяло, ние се нуждаем от софтуер, generyaschy фърмуера и програмист. Софтуер (Xilinx ISE WebPACK) се завъртя от официалния сайт (макар че изисква регистрация), на WebPACK лиценз - безплатно. Програмистът може да бъде направено в съответствие със схемата на фигура 1 (под LPT-порт) или закупуване на USB-сериен shny (в китайски интернет магазини се срещна на цена от около $ 50, но той не го купуват). Повече информация.

Фиг. 1
(С възможност за кликване за увеличение, ще се отвори в нов прозорец)

След като спойка FPGA на борда развитие, запоени или купил програмист, свален и инсталиран ISE WebPACK пакет (имам версия 13.2), започнете Project Navigator и да създадете нов проект. За създаване на проект, изберете File -> New Project, посочете името на проекта и къде да го спаси, също се посочват видът на изходния код на най-високо ниво (Фигура 2). Фактът, че FPGA не е задължително да се направи схема на джапанките и техните съединения могат да бъдат, например, да пишат на езици от високо ниво (VHDL, Verilog), а не непременно в рамките на един и същ проект да се използва едно нещо. Ние използваме само до Схема на всички нива.

Фиг. 2
(С възможност за кликване за увеличение, ще се отвори в нов прозорец)

В следващия прозорец (. Фигура 3) избираме чип (останалата част на първо не докосвайте); в прозореца, който се появява, след като кликнете върху бутона "Напред", възхищавайки се на параметрите, създадени от проекта, кликнете върху "Finish" - и сте готови: проектът е създаден.







Сега трябва да всъщност направи диаграма: щракнете с десния бутон върху прозореца с нов проект и SOURCE (Фигура 4), да бъде кръстен на името на източник (името на нашата схема, те са в проекта може да бъде много), ние избираме отново на схеми, натиснете "Next "възхищавах на параметрите на новосъздадения файл, щракнете върху" Finish "и да получите чист модел.

Фиг. 4
(С възможност за кликване за увеличение, ще се отвори в нов прозорец)

Веселбата започва: панелите от лявата страна (не от ръба), щракнете върху бутона "Добави символ" (5 фиг.).

Фиг. 5
(С възможност за кликване за увеличение, ще се отвори в нов прозорец)

И ние да получите повече знаци вляво от списъка на текущата библиотека. Как да добавим, създавате, редактирате библиотека ще се разбере след това (ако е необходимо). Сега е важно да изберете правилния символ. Така че в горната част на прозореца виждаме квалификант - филтър, който не е необходимо да се използва (добре, защо да прелистите всички видове тригери и логически елементи, когато имаме нужда от брояч).

Например, да разгледаме следния проблем: необходимо е да се определи възможно най-точно времето на забавяне между водещите ръбове 2 импулси се появяват в различни проводници и източване е контролер с интерфейс SPI стойност. Всеки проблем прилика с темата "Повишаване работна честота MK на" на един от най-робот форум умишлено. Така, в входно устройство 2 да пулсира проводници 3 и проводниците за SPI контролер. още добавите вход часовник (ние не знаем на каква честота, можем да предположим, че само не по-малко от 70 MHz). Започваме изготвяне на фърмуера: имаме нужда от лостчетата, които ще "хване" импулси, време брояч, регистър за смяна (за създаване на тях не го правят, те имат библиотека). Какви са предпоставките и гишетата няма да описват, надявам читателите "на тема" и няма проблеми, в противен случай ще трябва да напиша още няколко статии. Получени точно такава схема (фиг. 6), както можете да видите, не е задължително да дръпнем кабела от изхода на героя до входа, просто достатъчно, за да се обадите на веригата. За да се отнасят до външните входове и изходи използвайте бутона "Добавяне на I / O Маркер".

Фиг. 6
(С възможност за кликване за увеличение, ще се отвори в нов прозорец)

Когато веригата е готова, отидете в раздела Проектиране, и dablklikaem да изпълни, Дизайн - започнете каквито и да било процеси (да започнат без значение какво - най-важното е, че всички заедно - това е процес на дестилация на изходния код в фърмуер). Когато всичко е направено, погледнете лети в грешка, за да varningov: всичко, което има значение, да определи, оставете останалото. Например, ние не се нуждаем главен изпълнителен директор и извежда TS тезгяха и останалите 15 бита на паралелен регистър изход смяна също не е нужен, а varningov оплаква. Ако се кълне да летят в грешка от това, което искаме, и следователно, ние искаме нещо, което не е така. Ако ние (и синтезатор) са доволни - ние се възхищаваме допълнителен доклад: как прекарва голяма публичните ресурси, какво часовник скорости на разположение. Ако всичко е наред отново, след това е схема prosimulirovat време и се уверете, че тя всъщност работи в зависимост от задачата. Симулация след проверка на времената, аз предлагам да се извърши поради факта, че понякога, за да получите желания тактова честота е необходимо да се разклати цялата схема, която, разбира се, може да се отрази на резултата.

Така симулация: в раздела Design (в ляво гнездо) изберете симулация (Фигура 7.).

Фиг. 7
(С възможност за кликване за увеличение, ще се отвори в нов прозорец)

Долу, в процеса, вместо на процесите на синтез и маршрутизация процес появи Симулирайте поведенчески модел, dablklikaem върху него - тече симулатора, в която виждаме ни сигнали (не само вход-изход, но също междинно съединение) (Фигура 8).

Фиг. 8
(С възможност за кликване за увеличение, ще се отвори в нов прозорец)

Фиг. 9
(С възможност за кликване за увеличение, ще се отвори в нов прозорец)

Крачеше по време на манипулиране на входа и (ако е необходимо) с етапа на симулация, получаване на времето диаграма (фиг. 10).

Фиг. 10
(С възможност за кликване за увеличение, ще се отвори в нов прозорец)

Ние се уверете, че всичко работи по предназначение (или отстраняване на грешки вериги върху) и преминете към следващата стъпка - разпределението на входове и изходи на краката на чипа. За да направите това, добавете друг източник файл (фиг. 11), а именно ограничения за изпълнението Файл.

Фиг. 11
(С възможност за кликване за увеличение, ще се отвори в нов прозорец)

Предписва "Pinout чип" (фиг. 12), но тук предписва изисквания за тактови честоти. И тук стигаме до нюансите, свързани с часовник сигнал. Факт е, че часовник сигнали трябва да идват на така наречените глобални линии - линии, които се движат през целия чип, другите линии са местни по характер и от блок на блок атака през превключване логика. В XC95288XL TQ144 чип в корпуса 3 тези линии и те са свързани към краката 30, 32, 38. Останалите сигнали могат да бъдат свързани към краката на всяко входно-изходно (I / O).

Фиг. 12
(С възможност за кликване за увеличение, ще се отвори в нов прозорец)

Отново dablklikaem Прилагане Дизайн, чакай, прочетете коментарите за тема varningov на билета в грешка и да се премести на ПИН-доклади (Фигура 13.) И тайминги (фиг 14.); ние виждаме, че всички ние сме доволни, и имат щастие под формата на файл% project_name% .jed.

Фиг. 13
(С възможност за кликване за увеличение, ще се отвори в нов прозорец)

Фиг. 14
(С възможност за кликване за увеличение, ще се отвори в нов прозорец)

Firmware файл е готова. Да кажем, че устройството, също. Свързване с кабел за компютър JTAG и dablklikaem върху Configure целта устройство. Започнете фърмуера полезност (Impact.exe), в действителност, е възможно да бъде ограничено само неговото стартиране едно в производството на няколко устройства за серия от фърмуера. Създаване на нов проект (проект за аплети-proshivalki), оставете го да намери автоматично програмист и чип свързан покаже файла фърмуер и кликнете програма. Ние с нетърпение очакваме до няколко десетки секунди, виждаме надпис, че всичко е наред - устройството е готово.