Съвет за разработка на DE1-SoC

Съдържание на доставката
Спецификации


Мисля, че следващият списък е доста ясен, така че ще се спра само на няколко точки. И тъй като вауефектът вече е преминал, ще добавя не много критики.

Устройство Cyclone V SoC 5CSEMA5F31C6, 85K програмируеми логически елементи, 4450 Kbits вградена памет, 6 дробни PLL, 2 контролера за твърда памет;
Може би тук е необходимо да се спрем на цифрата 85K LE. Представете си моята изненада, когато след съставяне на примера Quartus даде нещо като използвано 8000 от 31000 LE. Уау, уау, къде е останалото?
Работата е там, че в новите чипове на Altera те преминаха от 4-входни LE, комбинирани в LAB блокове, към 6-входни LE (комбинирани в така наречения ALM), което, ако мога така да кажа, е комбинация от 2 4 -вход LE.
По време на процеса на разработка не трябва да обръщате внимание на това - Quartus ще разреши всичко сам. Но ако говорим за високопроизводителни схеми, където има много мултиплексори или допълнения, тогава все пак трябва да помните за архитектурата, за повече подробности вижте Препоръчаните от Алтера стилове за кодиране HDL страница 12-44.

Двуядрен ARM Cortex-A9 (HPS)

Конфигурация
Устройство за четворна серийна конфигурация - EPCQ256 на FPGA
Вграден USB Blaster II (нормален тип B USB конектор)
Памет
64MB (32Mx16) SDRAM на FPGA
1GB (2x256Mx16) DDR3 SDRAM на HPS
Гнездо за Micro SD карта на HPS

Периферия

Бих искал да отбележа, че платките Terasic имат много развити периферни устройства. Но все пак, може би когато стигнат до модулност. Например, някой се нуждае от повече I/O, докато някой друг се нуждае от акселерометър. Така че щях да си купя шал и да го облека, но не защото акселерометърът ми не работи извън примерите, защото не е необходим. Два порта USB 2.0 хост (ULPI интерфейс с USB тип A конектор)
Пълноценен USB хост, бях особено доволен, че поддържа usb hub (например моята клавиатура и мишка, включени през хъба, работеха добре).
USB към UART (микро USB тип B конектор)
По отношение на системата изключително полезно нещо, направено на базата на FT232.
10/100/1000 Ethernet
PS/2 мишка/клавиатура
Последното нещо тук е очевидно излишно и е мигрирано от платката DE1. Защо, пита се човек, е остарелият интерфейс на платката, ако не можете да свържете клавиатурата към същия HPS през него, без да танцувате с тамбура?.
IR излъчвател/приемник
Два 40-пинови разширителни хедера (нива на напрежение: 3.3V)
Несъмнено два IDC 40 конектора (36 GPIO са налични на всеки), освен това имат ограничителни резистори и защитни диоди за всеки вход. В много отношения те ме насочиха към тази дъска.
Един 10-пинов ADC входен хедър
Един LTC конектор (Един сериен периферен интерфейс (SPI) Master, един I2C и един GPIO интерфейс)
Не мога да кажа нищо добро за този конектор, освен че има не много широко разпространена стъпка от 2 мм, така че погледнете и неговата схема:

Защо всички тези камбани са с отделен линеен превключвател (ясно е, че това е спецификация на демо борда от Linear Technologies), но би било по-добре просто да премахнете GPIO от HPS.

Аудио и видео
24-битов VGA ЦАП, 24-битов CODEC, входове за линия, изход и вход за микрофон, декодер за телевизия (NTSC/PAL/SECAM) и конектор за вход за телевизор

ADC
До 1 MSPS, 8-канален, 12-битов ЦАП.
Бутони, превключватели, индикатори:
4 потребителски клавиша (FPGA x4), 10 потребителски превключвателя (FPGA x10), 11 потребителски светодиода (FPGA x10; HPS x 1)
2 бутона за нулиране на HPS (HPS_RST_n и HPS_WARM_RST_n)
За тази част можете спокойно да поставите 5. Бутоните и превключвателите са големи и удобни.
Шест 7-сегментни дисплея
Хм, не е еднозначно решение. 42 две пина за седемцифрен играч, но те забравиха да свържат десетичните точки: (.
Сензори: G-сензор на HPS
Мощност: 12V DC вход

Преди да продължите напред, още няколко думи за храненето. Жалко, но тази платка, за разлика от DE0-nano, не предоставя никакви средства за измерване на консумацията на ток. Е, по някаква причина превключващата схема на полевия оператор не ми вдъхва доверие.

Инструменти за разработка

Може да се раздели на две части за FPGA и за HPS.
За FPGA използваме Quartus II повече или по-малко традиционно. В същото време първоначалната конфигурация на HPS комутационната матрица, тактовата честота и работата със SDRAM също се случва в Quartus II чрез Qsys. Има бърз старт както в ръководствата на Terasik, така и от аматьори в Интернет, например: https://www.youtube.com/watch?v=2WUkEt4-Q7Q
Единственото нещо, което трябва да се спомене, е следният надпис на страницата със спецификации на платката:

Какво е значението му, все още не разбрах, тъй като всички демо проекти при първото отваряне съобщаваха, че са разработени в 32-битова версия на quartus. Но тъй като следващите версии на Quartus II (започвайки от 14.0) ще поддържат само 64-битова ОС, все пак трябваше да актуализираме Windows. В същото време някои от представените демонстрационни проекти не искаха да се изграждат под най-новата (понастоящем версия 14.1) Quartus, затова се върнах към версия 13.1, въпреки че има различни подобрения в 14.1.

Linux BSP (пакет за поддръжка на борда)

Както можете да разберете от горния текст, писането на програми за дъската, без закупуване на лицензи, е възможно само за Linux. И тук имаме късмет, тъй като няма нужда да компилираме и сглобяваме каквото и да било, защото Terasic предлага готово изображение на системата, само го запишете на USB флаш устройство и го поставете в слот на дъската.
Но има и недостатък на монетата. От всички холивари за Linux разбрах само едно, системата не е добра и не е лоша, трябва да можете да я приготвите. И Терасич опита и пусна цели 4 изображения (вече 5), въпреки че едно би било по-добре ...
Факт е, че изображенията са базирани на ядрото на версия 3.12, в което покривните филци са специално изрязани, или по време на освобождаването на клона не е имало драйвери за работа с външни периферни устройства и следователно, например, платката DC934A споменатото в началото на демонстрацията не работи, тъй като изисква наличието на/sys/class/gpio, който липсва, но който е във версията на ядрото 3.13, доставена със DS-5 Studio.
Като цяло имаме следните изображения:

  • Linux Console - всичко е само основни функции и I/O. конзола Изисква 4GB стик.
  • Linux конзола с framebuffer - същото, но с framebuffer идеално за Qt приложения, със същия размер.
  • Linux LXDE Desktop - поддържа LXDE графична система, изисква 8GB флаш.
  • Linux Ubuntu Desktop - да, можете да поставите Ubuntu 12 на дъската, също поне 8GB флаш.
  • DE1-SoC OpenCL BSP - пуснат не много отдавна - е Linux за използване при разработването на OpenCL приложения. Още не съм го пробвал, защото не знам за звяра.
Който не знае, OpenCL ви позволява да напишете приложение в C с векторна обработка, докато, според altera, техният компилатор ще се опита да създаде подходяща схема на FPGA и по този начин значително да ускори изчисленията. В същото време програмистът не влиза в джунглата на FPGA. Въпреки наличието на инструкции от Terasik за стартиране на тези изображения, не всичко е толкова гладко, колкото искахме (особено за онези, които вчера научиха разликата между командите LS и CD). Което ще се опитам да разгледам в следващия си пост.