THE BELL

Є ті, хто прочитали цю новину раніше вас.
Підпишіться, щоб отримувати статті свіжими.
Email
ім'я
Прізвище
Як ви хочете читати The Bell
без спаму

Уявіть, що процесор замість того, щоб виконувати певний набір інструкцій, буде перебудовуватися під кожну програму і перетворювати алгоритм безпосередньо в «залізо». Саме так і працюють FPG. У сьогоднішній статті я розповім, як взагалі таке можливо, і познайомлю вас з різними методами проектування FPGA.

Для початку необхідно трохи розбиратися в цифровий логіці роботи мікросхем ASIC, але починати з них дуже складно і дорого, і замість цього краще почати з FPGA.

Що таке FPGA?

FPGA розшифровується як field-programmable gate array (вентильні матриці, ППВМ). У більш загальному випадку вони називаються ПЛІС - програмовані логічні інтегральні схеми.

За допомогою FPGA можна в прямому сенсі цього слова, проектувати цифрові мікросхеми, сидячи у себе вдома з доступною отладочной платою на столі і ПО розробника за кілька тисяч зелених рублів. Але, є і безкоштовні варіанти. Зауважте: саме проектувати, а не програмувати, тому що на виході ми отримаємо фізичну цифрову схему, що виконує певний алгоритм на апаратному рівні, а не прогу для проца.

Працює це таким чином. Є готова друкована плата з набором інтерфейсів, які підключені до встановленої на платі мікросхемі FPGA, щось типу такий крутий плати для дата-центру або цієї отладочной плати для навчання.

Поки ми не налагодимо FPGA, всередині мікросхеми просто немає логіки для обробки даних з інтерфейсів, і тому працювати звичайно ж нічого не буде. Але в результаті проектування буде створена прошивка, яка після завантаження в FPGA створить необхідну нам цифрову схему. Таким чином можна створити контролер 100G Ethernet, який буде отримувати і обробляти мережеві пакети.

Важлива особливість FPGA - можливість перенастроювання. Припустимо тепер нам потрібен контролер 100G Ethernet, а через тиждень ця ж плата може використовуватися для реалізації незалежних чотирьох інтерфейсів 25G Ethernet.

На ринку працюють два лідера в виробника FPGA-чіпів: знаменитий Intel і Xilinx. Вони контролюють 58 і 42% ринку. Перший свій чіп FPGA засновники Xilinx винайшли в далекому 1985 році. Intel прийшла на ринок зовсім недавно - в 2015 році, поглинувши компанію Altera, яка була заснована в той же час, що і Xilinx. Технології Altera і Xilinx багато в чому схожі, як і середовища розробки. Найчастіше я працював з продуктами компанії Xilinx, тому не дивуйтеся її постійному згадки в статті.

FPGA широко поширені в різних сферах: споживчій електроніці, обладнанні телекому, платах-прискорювачах для застосування в дата-центрах, робототехніці, прототіпірованії мікросхем ASIC. Пару прикладів я розберу трохи нижче.

Також розглянемо технологію, яка забезпечує апаратну реконфігурацію, познайомимося з процесом проектування і розберемо простий приклад реалізації апаратного лічильника на мові Verilog. Якщо у вас є будь-яка отладочная плата FPGA, ви зможете повторити це самостійно. Якщо плати немає, то все одно зможете познайомитися з Verilog, змоделювавши роботу схеми на своєму компі.

Принцип роботи FPGA

Мікросхема FPGA - це та ж замовна мікросхема ASIC, що складається з таких же транзисторів, з яких збираються тригери, регістри, мультиплексори і інші логічні елементи для звичайних схем. Змінити порядок з'єднання цих транзисторів, звичайно, не можна. Але архітектурно мікросхема побудована таким хитрим чином, що можна змінювати комутацію сигналів між більшими блоками: їх називають CLB - програмовані логічні блоки.

Також можна змінювати логічну функцію, яку виконує CLB. Досягається це за рахунок того, що вся мікросхема пронизана осередками конфигурационной пам'яті Static RAM. Кожен біт цієї пам'яті або управляє якимось ключем комутації сигналів, або є частиною таблиці істинності логічної функції, яку реалізує CLB.

Так як конфігураційна пам'ять побудована за технологією Static RAM, то, по-перше, при включенні харчування FPGA мікросхему обов'язково треба конфігурувати, а по-друге, мікросхему можна реконфигурировать практично нескінченну кількість разів.

Дуже спрощена 2D-структура мікросхеми без конфигурационной пам'яті

Блоки CLB знаходяться в комутаційної матриці, яка задає з'єднання входів і виходів блоків CLB.

Схема комутаційної матриці

На кожному перетині провідників знаходиться шість переключающих ключів, керованих своїми осередками конфигурационной пам'яті. Відкриваючи одні й закриваючи інші, можна забезпечити різну комутацію сигналів між CLB.

CLB

CLB дуже спрощено складається з блоку, що задає булеву функцію від декількох аргументів (вона називається таблицею відповідності - Look Up Table, LUT) і тригера (flip-flop, FF). В сучасних FPGA LUT має шість входів, але на малюнку для простоти показані три. Вихід LUT подається на вихід CLB або асинхронно (безпосередньо), або синхронно (через тригер FF, що працює на системній тактовій частоті).

Принцип реалізації LUT

Цікаво подивитися на принцип реалізації LUT. Нехай у нас є деяка булева функція y \u003d (a & b) | ~ C. Її схемотехническое уявлення і таблиця істинності показані на малюнку. У функції три аргументи, тому вона приймає 2 ^ 3 \u003d 8 значень. Кожне з них відповідає своїй комбінації вхідних сигналів. Ці значення обчислюються програмою для розробки прошивки ПЛІС і записуються в спеціальні осередки конфигурационной пам'яті.

Значення кожної з осередків подається на свій вхід вихідного мультиплексора LUT, а вхідні аргументи булевої функції використовуються для вибору того чи іншого значення функції. CLB - найважливіший апаратний ресурс FPGA. Кількість CLB в сучасних кристалах FPGA може бути різним і залежить від типу і ємності кристала. У Xilinx є кристали з кількістю CLB в межах приблизно від чотирьох тисяч до трьох мільйонів.

Крім CLB, всередині FPGA є ще ряд важливих апаратних ресурсів. Наприклад, апаратні блоки множення з накопиченням або блоки DSP. Кожен з них може робити операції множення і додавання 18-бітних чисел кожен такт. У топових кристалах кількість блоків DSP може перевищує 6000.

Інший ресурс - це блоки внутрішньої пам'яті (Block RAM, BRAM). Кожен блок може зберігати 2 Кбайт. Повна ємність такої пам'яті в залежності від кристала може досягати від 20 Кбайт до 20 Мбайт. Як і CLB, BRAM і DSP-блоки пов'язані комутаційної матрицею і пронизують весь кристал. Пов'язуючи блоки CLB, DSP і BRAM, можна отримувати досить ефективні схеми обробки даних.

переваги FPGA

Перший чіп FPGA, створений Xilinx в 1985 році, містив всього 64 CLB. У той час інтеграція транзисторів на мікросхемах була набагато нижче, ніж зараз, і в цифрових пристроях часто використовувалися мікросхеми «розсипний логіки». Були окремо мікросхеми регістрів, лічильників, мультиплексорів, умножителей. Під конкретний пристрій створювалася своя друкована плата, на якій встановлювалися ці мікросхеми низькою інтеграції.

Використання FPGA дозволило відмовитися від такого підходу. Навіть FPGA на 64 CLB значно економить місце на друкованій платі, а доступність реконфігурації додала можливість оновлювати функціональність пристроїв вже після виготовлення під час експлуатації, як кажуть «in the field» (звідси і назва - field-programmable gate array).

За рахунок того, що всередині FPGA можна створити будь-яку апаратну цифрову схему (головне, щоб вистачило ресурсів), одне з важливих застосувань ПЛІС - це прототипирование мікросхем ASIC.

Розробка ASIC дуже складна і витратна, ціна помилки дуже висока, і питання тестування логіки критичний. Тому одним з етапів розробки ще до початку роботи над фізичною топологією схеми стало її прототипирование на одному або декількох кристалах FPGA.

Для розробки ASIC випускають спеціальні плати, що містять багато FPGA, з'єднаних між собою. Прототип мікросхеми працює на значно менших частотах (може бути, десятки мегагерц), але дозволяє заощадити на виявленні проблем і багів.

Однак, на мій погляд, існують більш цікаві застосування ПЛІС. Гнучка структура FPGA дозволяє реалізовувати апаратні схеми для високошвидкісної і паралельної обробки даних з можливістю змінити алгоритм.


Порівняння апаратних платформ

Давайте подумаємо, чим принципово відрізняються CPU, GPU, FPGA і ASIC. CPU універсальний, на ньому можна запустити будь-який алгоритм, він найбільш гнучкий, і використовувати його найлегше завдяки величезній кількості мов програмування і середовищ розробки.

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

На іншій стороні знаходиться ASIC. На цій платформі необхідний алгоритм реалізується апаратно за рахунок прямого з'єднання транзисторів, всі операції пов'язані тільки з виконанням алгоритму і немає ніякої можливості змінити його. Звідси максимальна продуктивність і найменшу енергоспоживання платформи. А ось перепрограмувати ASIC неможливо.

Праворуч від CPU знаходиться GPU. Спочатку ці мікросхеми були розроблені для обробки графіки, але зараз використовуються і для Майнінг обчислень загального призначення. Вони складаються з тисяч невеликих обчислювальних ядер і виконують паралельні операції над масивом даних.

Якщо алгоритм можна распараллелить, то на GPU вийде добитися значного прискорення в порівнянні з CPU. З іншого боку, послідовні алгоритми будуть реалізовуватися гірше, тому платформа виявляється менш гнучкою, ніж CPU. Також для розробки під GPU треба мати спеціальні навички, знати OpenCL або CUDA.

Нарешті, FPGA. Ця платформа поєднує ефективність ASIC з можливістю змінювати програму. ПЛІС не універсальні, але існує клас алгоритмів і завдань, які на них будуть показувати кращу продуктивність, ніж на CPU і навіть GPU. Складність розробки під FPGA вище, проте нові засоби розробки роблять цей розрив менше.

Вирішальне ж перевага FPGA - це здатність обробляти дані в темпі їх надходження з мінімальною затримкою реакції. Як приклад можете уявити розумний мережевий маршрутизатор з великою кількістю портів: при надходженні пакета Ethernet на один з його портів необхідно перевірити безліч правил, перш ніж вибрати вихідний порт. Можливо, буде потрібно зміна деяких полів пакету або додавання нових.

Використання FPGA дозволяє вирішувати цю задачу миттєво: байти пакета ще тільки почали надходити в мікросхему з мережевого інтерфейсу, а його заголовок вже аналізується. Використання процесорів тут може істотно уповільнити швидкість обробки мережевого трафіку. Ясно, що для маршрутизаторів можна зробити замовну мікросхему ASIC, яка буде працювати найбільш ефективно, але що, якщо правила обробки пакетів повинні змінюватися? Досягти необхідної гнучкості в поєднанні з високою продуктивністю допоможе тільки FPGA.

Таким чином, FPGA використовуються там, де потрібна висока продуктивність обробки даних, найменший час реакції, а також низьке енергоспоживання.

FPGA in the cloud

У хмарні обчислення FPGA застосовуються для швидкого рахунку, прискорення мережевого трафіку і здійснення доступу до масивів даних. Сюди ж можна віднести використання FPGA для високочастотної торгівлі на біржах. В сервери вставляються плати FPGA з PCI Express і оптичним мережевим інтерфейсом виробництва Intel (Altera) або Xilinx.

На FPGA відмінно лягають криптографічні алгоритми, порівняння послідовностей ДНК і наукові завдання типу молекулярної динаміки. У Microsoft давно використовують FPGA для прискорення пошукового сервісу Bing, а також для організації Software Defined Networking всередині хмари Azure.

Бум машинного навчання теж не обійшов стороною FPGA. Компанії Xilinx і Intel пропонують кошти на основі FPGA для роботи з глибокими нейросетями. Вони дозволяють отримувати прошивки FPGA, які реалізують ту чи іншу мережу безпосередньо з фреймворків на кшталт Caffe і TensorFlow.

Причому це все можна спробувати, не виходячи з дому і використовуючи хмарні сервіси. Наприклад, в Amazon можна орендувати віртуальну машину з доступом до плати FPGA і будь-яких засобів розробки, в тому числі і machine learning.

FPGA on the edge

Що ще цікаве роблять на FPGA? Та чого тільки не роблять! Робототехніка, безпілотні автомобілі, дрони, наукові прилади, медична техніка, призначені для користувача мобільні пристрої, розумні камери відеоспостереження і так далі.

Традиційно FPGA застосовувалися для цифрової обробки одновимірних сигналів (і конкурували з процесорами DSP) в пристроях радіолокації, прийомо-передавачів радіосигналів. З ростом інтеграції мікросхем і збільшенням продуктивності платформи FPGA стали все більше застосовуватися для високопродуктивних обчислень, наприклад для обробки двовимірних сигналів «на краю хмари» (edge \u200b\u200bcomputing).

Цю концепцію найлегше зрозуміти на прикладі відеокамери для аналізу автомобільного трафіку з функцією розпізнавання номерів машин. Можна взяти камеру з можливістю передачі відео через Ethernet і обробляти потік на віддаленому сервері. З ростом числа камер буде рости і навантаження на мережу, що може привести до збоїв системи.

Замість цього краще реалізувати розпізнавання номерів на обчислювачі, встановленому прямо в корпус відеокамери, і передавати в хмару номера машин в форматі тексту. Для цього навіть можна взяти порівняно недорогі FPGA з низьким енергоспоживанням, щоб обійтися акумулятором. При цьому залишається можливість змінювати логіку роботи FPGA, наприклад, при зміні стандарту автомобільних номерів.

Що до робототехніки та дронів, то в цій сфері якраз особливо важливо виконувати дві умови - висока продуктивність і низьке енергоспоживання. Платформа FPGA підходить якнайкраще і може використовуватися, зокрема, для створення польотних контролерів для безпілотників. Уже зараз роблять БПЛА, які можуть приймати рішення на льоту.

Розробка проекту на FPGA

Існують різні рівні проектування: низький, блоковий і високий. Низький рівень передбачає використання мов типу Verilog або VHDL, на яких ви керуєте розробкою на рівні регістрових передач (RTL - register transfer level). В цьому випадку ви формуєте регістри, як в процесорі, і визначаєте логічні функції, що змінюють дані між ними.

Схеми FPGA завжди працюють на певних тактових частотах (зазвичай 100-300 МГц), і на рівні RTL ви визначаєте поведінку схеми з точністю до такту системної частоти. Ця копітка робота призводить до створення максимально ефективних схем з точки зору продуктивності, споживання ресурсів кристала FPGA і енергоспоживання. Але тут потрібні серйозні скіли в схемотехніці, та й з ними процес нешвидкий.

На блочному рівні ви займаєтеся в основному з'єднанням вже готових великих блоків, які виконують певні функції, для отримання потрібної вам функціональності системи на кристалі (system-on-chip).

На високому рівні проектування ви вже не будете контролювати дані на кожному такті, натомість сконцентріруешься на алгоритмі. Існують компілятори або транслятори з мов C і C ++ на рівень RTL, наприклад Vivado HLS. Він досить розумний і дозволяє транслювати на апаратний рівень широкий клас алгоритмів.

Головна перевага такого підходу перед мовами RTL - прискорення розробки і особливо тестування алгоритму: код на C ++ можна запустити і верифікувати на комп'ютері, і це буде набагато швидше, ніж тестувати зміни алгоритму на рівні RTL. За зручність, звичайно, доведеться заплатити - схема може вийти не такою швидкою і займе більше апаратних ресурсів.

Часто ми готові платити цю ціну: якщо грамотно використовувати транслятор, то ефективність не сильно постраждає, а ресурсів в сучасних FPGA досить. У нашому світі з критичним показником time to market це виявляється виправданим.

Часто в одному дизайні потрібно поєднати всі три стилі розробки. Припустимо, нам потрібно зробити пристрій, який ми могли б вмонтувати в робота і наділити його здатністю розпізнавати об'єкти в відео потоці - наприклад, дорожні знаки. Візьмемо мікросхему відеосенсор і підключимо її безпосередньо до FPGA. Для налагодження можемо використовувати монітор HDMI, теж підключений до FPGA.

Кадри з камери будуть передаватися в FPGA по інтерфейсу, який наперед визначено виробником сенсора (USB тут не котить), оброблятися і виводитися на монітор. Для обробки кадрів знадобиться фреймбуфер, який зазвичай знаходиться в зовнішній пам'яті DDR, встановленої на друкованій платі поруч з мікросхемою FPGA.


Типова блок-схема проекту FPGA

Якщо виробник відеосенсор не надає Interface IP для нашої мікросхеми FPGA, то нам доведеться писати його самостійно на мові RTL, вважаючи такти, біти і байти відповідно до специфікації протоколу передачі даних. Блоки Preprocess, DDR Controller і HDMI IP ми, швидше за все, візьмемо готові і просто з'єднаємо їх інтерфейси. А блок HLS, який виконує пошук і обробку даних, що надходять, ми можемо написати на C ++ і транслювати за допомогою Vivado HLS.

Швидше за все, нам ще потрібно якась готова бібліотека детектора і класифікатора дорожніх знаків, адаптована для використання в FPGA. У цьому прикладі я, звичайно, привожу сильно спрощену блок-схему дизайну, але логіку роботи вона відображає коректно.

Розглянемо шлях проектування від написання коду RTL до отримання конфігураційного файлу для завантаження в FPGA.

шлях проектування

Отже, ви пишете код RTL, який реалізує потрібну вам схему. Перш ніж його перевіряти на реальному залозі, треба переконатися, що він вірний і коректно вирішує необхідну задачу. Для цього використовується RTL-моделювання в симуляторі на комп'ютері.

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

Далі логічно верифікований код подається на вхід програмі-синтезатору. Вона перетворює текстовий опис схеми в зв'язаний список цифрових елементів з бібліотеки, доступної для даного кристала FPGA. У цьому списку будуть відображені такі елементи, як LUT, тригери, і зв'язку між ними. На цій стадії елементи поки ніяк не прив'язані до конкретних апаратних ресурсів. Щоб це зробити, потрібно накласти на схему обмеження (Constraints) - зокрема, вказати, з якими фізичними контактами введення-виведення мікросхеми FPGA пов'язані логічні входи і виходи вашої схеми.

У ці обмеження також потрібно вказати, на яких тактових частотах повинна працювати схема. Вихід синтезатора і файл обмежень віддаються процесору Implementation, який, крім іншого, займається розміщенням і трасуванням (Place and Route).

Процес Place кожен поки що знеособлений елемент з netlist прив'язує до конкретного елементу всередині мікросхеми FPGA. Далі починає роботу процес Route, який намагається знайти оптимальне поєднання цих елементів для відповідної конфігурації комутаційної матриці ПЛІС.

Place і Route діють, виходячи з обмежень, накладених нами на схему: контактами введення-виведення і тактовою частотою. Період тактової частоти дуже сильно впливає на Implementation: він не повинен бути менше, ніж тимчасова затримка на логічних елементах в критичній ланцюга між двома послідовними тригерами.

Часто відразу задовольнити цю вимогу не вдається, і тоді треба повернутися на початковий етап і змінити код RTL: наприклад, спробувати скоротити логіку в критичній ланцюга. Після успішного завершення Implementation нам відомо, які елементи де знаходяться і як вони пов'язані.

Тільки після цього запускається процес створення бінарного файлу прошивки FPGA. Залишається його завантажити в реальне залізо і перевірити, чи працює воно так, як очікувалося. Якщо на цьому етапі виникають проблеми, значить, моделювання було неповним і на цьому етапі не були усунені всі помилки і недоліки.

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

РЕАЛІЗАЦІЯ ПРОЕКТУ НА ПЛІС

Після відпрацювання логічної схеми з використанням функціонального моделювання необхідно помістити її на кристал. Потім виконати моделювання схеми з урахуванням фактичних затримок елементів, отриманих після розміщення схеми на кристалі. При необхідності відкоригувати отримані рішення. Після чого здійснюється завантаження схеми в ПЛІС і відпрацювання її на стенді.

Мал. 82.Етапи проектування цифрового пристрою на ПЛІС

Основні етапи проектування на ПЛІС (з лекцій):

    Розробляється схема пристрою і вводиться в XILINX.

    Виконується IMPLEMENTATION (трансляція, формування схеми шляхом вилучення бібліотечних елементів, оптимізація, розміщення на кристалі).

    Програмування.

  1. Асоціативна пам'ять. Організація, спосіб вибірки, відмінності від адресного зу.

асоціативний доступреалізує пошук інформації за певною ознакою, а не за її розташуванню в пам'яті (адресою або місця в черзі). У найбільш повній версії все збережені в пам'яті слова одночасно перевіряються на відповідність ознакою, наприклад, на збіг певних полів слів (тегів - від англійського слова tag) з ознакою, що задається вхідним словом (тегів адресою). На вихід видаються слова, що задовольняють ознакою. Дисципліна видачі слів, якщо тегу задовольняють кілька слів, а також дисципліна записи нових даних можуть бути різними. Основна область застосування асоціативної пам'яті в сучасних ЕОМ - кешування даних.

В асоціативних запам'ятовуючих пристроях пошук інформації здійснюється за асоціативному ознакою, записаному в кожну клітинку пам'яті.

У регістр маски записується слово, яке дозволяє запит по всім або тільки деяким розрядами асоціативного ознаки, застосування маски дозволяє скоротити або розширити область пошуку.

Пошук інформації проводиться паралельно за всіма осередкам шляхом порівняння запиту з асоціативним ознакою кожного осередку.

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

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

Перевірка розряду зайнятості проводиться по установці n-го розряду (розряду зайнятості) маски. При використанні додаткових комбінаційних схем в асоціативної пам'яті можна виконувати різні логічні операції, визначаючи максимальне або мінімальне число, кількість слів, що мають однаковий асоціативний ознака і т.д. Осередки пам'яті асоціативного пристрою, що запам'ятовує повинні бути елементами статичної пам'яті, в асоціативної пам'яті звернення проводиться до всіх осередків одночасно і не повинно перериватися циклами регенерації. Асоціативна пам'ять найбільш швидкодіюча, але дуже дорога, тому що вимагає введення додатково схеми порівняння, що дозволяє здійснити пошук, для кожного осередку пам'яті. Тому така пам'ять зазвичай не використовується в чистому вигляді, а швидкодіючі пристрої пам'яті типу Кеш зазвичай виконуються як частково асоціативні.

Вповністю асоціативної кеш-пам'яті (FACM, Fully Associated Cache Memory), кожна клітинка зберігає дані, а в поле "тег" - повний фізичну адресу інформації, копія якої записана. При будь-яких обмінах фізичну адресу запитуваної інформації порівнюється з полями "тег" всіх осередків і при збігу їх в будь-якому осередку встановлюється сигнал Hit.

При читанні і значенні сигналу Hit \u003d 1 дані видаються на шину даних, якщо ж збігів немає (Hit \u003d 0), то при читанні з основної пам'яті дані разом з адресою поміщаються в вільну або найбільш давно не використовувану осередок кеш-пам'яті.

При записи дані разом з адресою спочатку, як правило, розміщуються в кеш-пам'яті (в виявлену осередок при Hit \u003d 1 і вільну при Hit \u003d 0). Копіювання даних в основну пам'ять виконується під управлінням спеціального контролера, коли немає звернень до пам'яті.

Пам'ять типу FACM є досить складним пристроєм і використовується тільки при малих ємностях, головним чином в спеціальних додатках. У той же час цей вид кеш-пам'яті забезпечує найбільшу функціональну гнучкість і безконфліктність адрес, т. К. Будь-яку одиницю інформації можна завантажити в будь-який осередок кеш-пам'яті.

З лекцій:

Асоціативні пристрої, що запам'ятовують

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

інформація

Тег - відмітна ознака, за випадковим збігом з яким дістається шматок інформації.

Спрощена схема асоціативного ЗУ:

Зона зберігання - адресне ЗУ з пронумерованими комірками, зберігає в собі інформацію і теги.

Для звернення до асоціативної пам'яті на регістр апроса поміщається зразок шуканого тега. Схема порівняння порівнює запит. Встановлюється збіг на регістрі збігів, де сталося збіг тега з пам'яті зі зразком. Можливі реакції (немає збігів; є хоча б один збіг - в цьому випадку знайдена осередок поміщається в регістр даних; множинне збіг - КС повинна прийняти рішення, яку з осередків дістати для обробки).

Застосування: БД, бази знань, ПК як кеша.

У статті дана спроба визначити склад супровідної документації на розроблені цифрові модулі для програмованих логічних інтегральних мікросхем (ПЛІС). Цю супровідну документацію повинні надати розробники споживачеві / замовнику для успішного подальшого використання розробленого цифрового модуля в своїх проектах на етапі проектування цифрових пристроїв на ПЛІС.

Вступ

Отже, яку ж конструкторську документацію слід питати у розробника, якщо фірма чи підприємство-замовник або інший розробник використовуватимуть надалі «чуже» розроблений пристрій в своїх проектах? Ця стаття може послужити «шпаргалкою», для того щоб спочатку правильно видати технічне завдання на розробку цифрового пристрою для ПЛІС, а потім питати з розробника конструкторську документацію для вже розробленого цифрового пристрою. Виходячи з попереднього досвіду роботи з конструкторською документацією, зазвичай підприємство або фірма користуються такими стандартами і нормативними документами:

  • ГОСТ 2.102-68 ЕСКД. Види і комплектність конструкторських документів.
  • ГОСТ 15.101-98. Система розроблення та поставлення продукції на виробництво. Порядок виконання науково-дослідних робіт.
  • ГОСТ Р 15.201-20-00. Система розроблення та поставлення продукції на виробництво. Продукція виробничо-технічного призначення. Порядок розроблення та поставлення продукції на виробництво.

Як правило, це були файл-прошивки і програма (опис цифрового пристрою на VHDL / Verilog або набір цифрових схем, розроблених в схемотехническом редакторі з використанням бібліотечних елементів цифрової логіки, такі як тригери, регістри, лічильники, дешифратори і т. Д.) На CD або DVD і інструкція по програмуванню. І все.

Автор, наприклад, зіткнувся з такою проблемою. Один із співробітників розробив складне багатомодульні цифровий пристрій. Всі модулі описував на мові VHDL, а циклограми роботи цих модулів і цифрового пристрою в цілому дивився на хорошому і дорогому осциллографе. Про Test Bench файли і про можливість проведення моделювання він не знав або не вмів їх писати, до речі, коментарі до проекту і до описів модулів також були відсутні. Ситуація може бути ще гірше, якщо модулі будуть представленими цифровими схемами, розробленими в схемотехническом редакторі c використанням бібліотечних елементів. Тут і ув'язнений один з головних недоліків: крім самого розробника, навряд чи хтось інший буде розбиратися в цьому цифровому пристрої, особливо якщо проект багатомодульні, а опис кожного модуля становить понад 100 рядків або більше одного екрану монітора. А значить, при бажанні іншого розробника впровадити в нову розробку або проект таке, вже розроблене цифровий пристрій для ПЛІС, йому знову необхідно витратити час на розробку цього цифрового пристрою.

Історія питання проектування для ПЛІС

В даний час ринок ПЛІС - один з найбільш динамічно розвиваються. ПЛІС застосовуються в багатьох галузях техніки. На даний момент немає однозначної, що задовольняє всіх розробників апаратури методології отримання конфігурації ПЛІС з функціональної моделі пристрою на системному рівні. Найбільш популярний підхід щодо вирішення цієї проблеми - застосування технології ІР-ядер (Intellectual Property Cores). IP-ядра - це готові компоненти, що дозволяють легко включати їх в свій проект для створення більш складної системи. У цього підходу є один істотний недолік - прихильність ІР-ядер до елементного базису. Кожне IP-ядро оптимізовано під конкретну серію мікросхем конкретного виробника, що істотно погіршує можливість перенесення вже створених пристроїв з одного елементного базису в інший. Закритість архітектур комерційних САПР унеможливлює додавання власних функціональних моделей пристроїв на системному рівні для отримання на їх основі моделей пристрою на рівні регістрових передач (RTL). Розробка цифрового модуля здійснюється у вигляді цифрової схеми, намальованої в схемном редакторі за допомогою вбудованої в САПР виробника бібліотеки базових схемних елементів, таких як тригери, дешифратори, лічильники, суматори і т. Д.

Інший популярний підхід, що дозволяє здійснити перехід від функціональної моделі на системному рівні до моделі пристрою на рівні регістрових передач, - застосування мов опису апаратури на системному рівні (system-level design languages, SLDLs). До таких мов відносяться SystemC, Handel-C, VHDL, Verilog, System Verilog. Основним плюсом є незалежність від апаратного базису, в якому буде реалізовано пристрій.

Таким чином, з одного боку, при застосуванні технології IP-ядер розробник апаратури отримує якісне рішення, але жорстко прив'язане до апаратного базису, в якому реалізується пристрій. З іншого боку, при застосуванні мов опису апаратури на системному рівні реалізація пристрою є апаратно незалежною. З вищесказаного випливає, що в даний час актуально спільне використання для прискорення процесу проектування цифрових модулів на мові опису апаратури і ІР-ядер виробника (Xilinx, Altera, Actel і ін.) І сторонніх фірм-розробників. При використанні цифрових модулів сторонніх виробників іноді виникає нестача в інформативності супровідної документації.

Надання інформації про розроблений цифровому модулі для ПЛІС

Залежно від методології отримання конфігурації ПЛІС з функціональної моделі пристрою на системному рівні розробником можна виділити наступні види цифрового модуля для ПЛІС:

  • Software - розроблений цифровий модуль, який передається споживачеві у вигляді опису на мові опису апаратури (VHDL, Verilog) або / і розроблений в схемотехническом редакторі Schematic Editor для подальшого використання в програмах автоматизованого синтезу логічних схем і оптимізований за функціональними параметрами.
  • Firmware - розроблений сторонньою фірмою-розробником цифровий модуль, який називається IР-ядром, що передається споживачеві у вигляді логічної схеми (списку ланцюгів - netlist) в базисі бібліотеки логічних елементів виробника ПЛІС і оптимізований за функціональними і електричним параметрам.

На етапі розробки документації, виходячи з особистого досвіду, необхідно оформити на додаток до звичайних КД і ТУ, виконуваних відповідно до ГОСТ 15.101, ГОСТ 15.201, ГОСТ 2.102, ГОСТ 2.114, документацію на всі види моделей (системних, логічних, схемотехнических), створюваних на етапах проектування цифрових пристроїв на ПЛІС.

Іншими словами, в комплект конструкторської документації цифрового пристрою для ПЛІС, крім файлу-прошивки, інструкції з програмування і записаного проекту на CD / DVD, має також входити супровідна документація.

Таблиця. Список розділів супровідної документації

Назва розділу вид
Software Firmware
Загальні відомості
Призначення і область застосування Про Р
Технічні характеристики Про Про
Опис сигналів скидання Про Про
Опис сигналів синхронізації Про Про
опис інтерфейсів Про Р
тимчасові діаграми Р Про
Опис регістрів управління Про Про
Структурна (функціональна) схема Р Р
Керівництво з програмування Про Про
Модель або сімейство ПЛІС,
фірма виробник
Р Про
Подання цифрового модуля
для логічного проектування на ПЛІС
RTL-модель Про немає
логічна модель немає Про
проектні обмеження Про Про

Наведемо список розділів (таблиця), які повинні входити в супровідну документацію проекту цифрового модуля для ПЛІС. Для кожного розділу показані ознаки необхідності включення розділу в комплект документів:

  • «О» - обов'язково поставляється розділ;
  • «Р» - рекомендований для поставки розділ.

Рекомендовані формати файлів для передачі супровідної документації - MS Word, PDF (найкращий формат), HTML. Файли опису на мові опису апаратури (VHDL, Verilog) або / та розроблені в схемотехническом редакторі Schematic Editor надаються в такому вигляді, як вимагає програмне забезпечення САПР для розробки. Винятком може бути додаткове надання в графічному форматі (JPEG, BMP) файлів цифрових схем, розроблених в схемотехническом редакторі Schematic Editor.

Загальні відомості

У цьому розділі описуються загальні відомості про розроблений цифровому модулі у вигляді опису:

  • функціональної схеми і її складових блоків / частин;
  • сигналів скидання, синхронізації;
  • застосовуваних інтерфейсів;
  • регістрів управління;
  • тимчасової діаграми;
  • програмування.

Призначення і область застосування

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

Технічні характеристики

Наводиться опис його основних технічних характеристик, таких як продуктивність, споживана потужність для конкретного кристала ПЛІС, кількість займаних вентилів, тип застосовуваного кристала ПЛІС. Додатково вказується використовується при розробці цифрового модуля САПР виробника ПЛІС і програмне забезпечення, що використовується для моделювання і веріфіцірованія. Для всіх використовуваних програм вказується версія і встановлені оновлення. Наводиться графічне представлення цифрового модуля у вигляді «чорного ящика» з позначенням зовнішніх входів / виходів і дається короткий опис їх призначення.

Опис сигналів скидання

Подається докладна інформація про сигнали скидання:

  • Перелік зовнішніх і внутрішніх сигналів скидання.
  • Тимчасові параметри і тимчасові діаграми сигналів скидання.
  • Схеми формування внутрішніх сигналів скидання, якщо такі входять до складу цифрового модуля.
  • Співвідношення з іншими сигналами (особливо з сигналами синхронізації).

Опис сигналів синхронізації

Подається докладна інформація про сигнали синхронізації:

  • опис зовнішніх сигналів синхронізації;
  • часові параметри сигналів синхронізації;
  • опис внутрішніх сигналів синхронізації і схеми їх формування;
  • тимчасові співвідношення між сигналами синхронізації з різних джерел;

опис інтерфейсів

Наводяться особливості використання всіх інтерфейсів, що входять до складу розробленого цифрового модуля, бажано уніфікованого для організації взаємодії з іншими вузлами системи на кристалі. Додатково наводиться Internet-посилання на повний опис стандартного інтерфейсу або надається саме опис інтерфейсу. На даний момент в якості уніфікованих інтерфейсів цифрових модулів прийняті інтерфейси до шини AMBA, PLB, Wishbone.

тимчасові діаграми

Наводиться необхідна інформація для організації обміну даними через інтерфейси і інші входи / виходи цифрового модуля: графічне представлення тимчасових діаграм, опис протоколів передачі даних, вимоги до зовнішніх сигналів, що подаються на цифровий модуль (тривалість, періодичність і т. Д.), І інша інформація .

Опис регістрів управління

Наводиться опис усіх регістрів управління цифрового модуля. Типове опис регістра управління містить ім'я регістра, адреса регістра у внутрішньому адресному просторі, початкове значення після зняття сигналу скидання, тип доступу (читання / запис), опис внутрішніх полів.

Структурна (функціональна) схема

Наводиться зображення внутрішньої структури з'єднань основних внутрішніх вузлів / блоків цифрового модуля, а також їх короткий текстовий опис. Додатково дається опис основних внутрішніх блоків цифрового модуля. Призначення цього документа - в наданні споживачеві інформації, необхідної для розуміння принципів роботи цифрового модуля.

Кількість описуваних блоків і обсяг опису визначає розробник цифрового модуля. Переважно відповідність мінімальної кількості описуваних модулів кількості елементів структурної (функціональної) схеми цифрового модуля.

Типове опис внутрішнього блоку містить:

  • призначення блоку;
  • структурну (функціональну) схему блоку (при необхідності);
  • режими і алгоритми роботи;
  • тимчасові діаграми роботи;
  • організацію управління блоком;
  • організацію зв'язку з іншими блоками;
  • будь-яку іншу інформацію.

Керівництво з програмування

Надає всю необхідну інформацію про процес програмування c допомогою САПР виробника цифрового модуля в ПЛІС, необхідних інструментах для розробки і налагодження програмного забезпечення, програмних бібліотеках.

Модель або сімейство ПЛІС, фірма-виробник

Для Firmware цифрового модуля вказується фірма-виробник ПЛІС, модель або сімейство ПЛІС і її швидкісні характеристики. Для Software цифрового модуля наводиться інформація про кількість займаних ресурсів, вимоги до застосовуваної ПЛІС.

Подання цифрового модуля для логічного проектування

У статті були розглянуті труднощі у використанні «чужого» проекту на VHDL - брак відповідних вказівок по іменування і правилам написання програм. Також було дано загальні вказівки по іменах, правилам «хорошого тону» для написання програм і керівництва для синтезу. Ці питання якомога детальніше варто обговорювати з розробником, якщо в подальшому ви плануєте продовжити розробку або модернізацію своїми силами, перш ніж він приступить до розробки RTL-моделі цифрового модуля на ПЛІС. Особливо це відноситься до виду Software цифрового модуля на ПЛІС. У цій же частині статті описуються загальні вимоги до всього проекту розробленого цифрового модуля на ПЛІС. Тут наведені питання, на які слід звернути увагу при складанні технічного завдання на розробку цифрового модуля на ПЛІС, і особливо це стосується передачі результатів роботи.

RTL-модель

Цифровий модуль, описаний на синтезованих підмножині мови Verilog або VHDL або / і розроблений в схемотехническом редакторі Schematic Editor, призначений для використання на етапі логічного синтезу ПЛІС. Поставляється для Software у вигляді зібраного проекту цифрового модуля в САПР виробника ПЛІС. Для цифрового модуля Firmware RTL-модель надається за окремою угодою.

Крім файлів RTL-моделі, передаються:

  • Інструкція з використання моделі.
  • Опис блоків пам'яті, що входять до складу моделі, що включає тип пам'яті, розмір, число блоків пам'яті, ієрархічне ім'я блоку пам'яті.
  • Опис процесу створення готових ядер при використанні програм для їх створення (наприклад, CoreGenerator для Xilinx ISE). При відсутності описів можуть виникнути обмеження для повторного проектування і застосування через залежність від технології і виробника.
  • У разі використання мікропроцесора від виробника (наприклад, від фірми Altera - процесор Nios; від фірми Xilinx - мікропроцесори Microblaze, PowerPC) потрібно опис процесу конфігурування ядра процесора і його периферії.
  • Набір тестів (Test Bench файлів) для проведення верифікації та моделювання цифрового модуля, написаних на мові Verilog або / і на VHDL, або / і на System Verilog.
  • Будь-яка інша додаткова інформація.

логічна модель

Модель є списком ланцюгів, описаним за допомогою мов Verilog або VHDL в базисі бібліотеки виробника ПЛІС, і поставляється для Firmware цифрового модуля.

Крім файлів логічної моделі, передаються:

  • Інструкція з використання цієї моделі.
  • Набір тестів (Test Bench файлів) для проведення верифікації та моделювання цифрового модуля, написаних на мові Verilog або / і на VHDL, або / і на System Verilog.
  • Керівництво по роботі з набором тестів для проведення моделювання і верифікації цифрового модуля.
  • Будь-яка інша додаткова інформація.

проектні обмеження

Проектні обмеження надаються у вигляді файлу з описом набору обмежень, що накладаються на цифровий модуль при його включенні в логічну модель системи на кристалі. У цей набір входять обмеження для сигналів синхронізації (clock constrains), тимчасові обмеження (timing constrains), обмеження на взаємодію цифрового модуля з іншими модулями і умови роботи цифрового модуля. Кращий формат опису проектних обмежень Synopsis Design Constraints (SDC) або формат для САПР виробника ПЛІС.

Приблизний список обмежень для сигналів синхронізації:

  • тимчасова діаграма (Clock waveform);
  • нестабільність тактової частоти (Jitter);
  • зміна фази тактової частоти;
  • тривалість часів перемикання (Transition times);
  • тимчасові діаграми похідних синхросигналов (Generated clock waveforms);
  • будь-яка інша додаткова інформація.

Набір обмежень для сигналів синхронізації обов'язковий для Software і Firmware цифрових модулів.

Приблизний список тимчасових обмежень:

  • час появи сигналів на входах (Arrival times at inputs);
  • час появи сигналів на виходах (Required times at outputs);
  • многотактовие шляху (Multi-cycle paths);
  • помилкові шляхи (False paths);
  • тривалість часів перемикання сигналів даних (Data signal transition times);
  • будь-яка інша додаткова інформація.

висновок

Наведений склад супровідної документації на розроблені цифрові модулі для ПЛІС надається за домовленістю між споживачем і розробником. Найчастіше розробник надає просто цифровий модуль, описаний на мові VHDL, Verilog, System Verilog і / або розроблений в схемотехническом редакторі. З приводу додаткової документації відповідь у розробника найчастіше буває таким: «Цифровий модуль працює, так беріть і користуйтеся. В описі схеми на мові апаратури нічого складного немає: розберетеся самі ».

На погляд автора, розібратися можна в чому завгодно, все залежить від бажання і витраченого часу, а час, витрачений на те, щоб розібратися в «чужому» проект на вже розроблений цифровий модуль, прямо пропорційно досвіду опису апаратури на мовах VHDL, Verilog і знань цифровий і мікропроцесорної схемотехніки. Цього можна уникнути, якщо спочатку домовитися з розробником про склад супровідної документації, тоді використання цифрового модуля в своєму проекті стає простіше, і швидше відбудеться його впровадження.

Підводячи підсумки, автор хотів би відзначити, що при формулюванні завдання на розробку цифрового пристрою на ПЛІС слід дотримуватися наведених в статті рекомендацій, тоді проблем при повторному використанні або при модернізації раніше розробленого цифрового пристрою не виникне.

література

  1. Денисов А. Кілька порад з проектування цифрових пристроїв на VHDL для ПЛІС // Компоненти та технології. 2009. № 12.
  2. ГОСТ 2.102-68 ЕСКД. Види і комплектність конструкторських документів.
  3. ГОСТ 2.114-95 ЕСКД. Технічні умови.
  4. ГОСТ 15.101-98. Система розроблення та поставлення продукції на виробництво. Порядок виконання науково-досліджень-нізації робіт.
  5. ГОСТ Р 15.201-20-00. Система розроблення та поставлення продукції на виробництво. Продукція виробничо-технічного призначення. Порядок розроблення та поставлення продукції на виробництво.

Поки були свята, зробив невеличкий проект на Verilog, який давно хотів спробувати.

Суть проекту в наступному: до FPGA підключено швидкодіючий (відносно, звичайно) АЦП з двома каналами і паралельним інтерфейсом (14-16 біт на канал). FPGA читає дані з АЦП і складає в буфер (свою внутрішню пам'ять BRAM). Коли буфер заповнений, читання зупиняється, і зовнішній пристрій (мікроконтролер) може вважати дані з буфера по інтерфейсу SPI. Також можна по SPI конфігурувати деякі параметри (про це буде написано в наступному пості).

Тест проекту (картинка клікабельні).

Результат синтезу для Cyclone IVE

Результат я синтезував в Quartus II, для FPGA сімейства Cyclone IVE (EP4CE6E22A7). Це одна з найпростіших і недорогих FPGA в корпусі QFP144 на 6272 логічних елемента. Мікросхема має пам'ять об'ємом 30K * 9 біт. Призначених для користувача пинов - 92.

мікросхема EP4CE6E22A7
логічних елементів - 301 (5%)
пинов - 41 (45%)
пам'ять - 65536 біт (24%)
частота для найгіршого випадку (125 С) - 151 МГц.

Пам'ять 8 Кб, це власне буфер, куди відбувається запис даних. При двох каналах по 16 біт виходить 32 біта на відлік, і 2048 відліків. Я вирішив, що цього цілком вистачить, хоча буфер можна розширити хоч на весь обсяг.

Частота цілком влаштовує, я розраховував, що буде частота тактирования 50 МГц, і АЦП на 25 МГц. Тобто виходить триразовий запас по частоті.

Кількість логічних елементів зовсім небагато для такої FPGA, тобто можна при бажанні багато чого ще туди приробити, тим більше, що і пинов залишається цілих 51.

Є більш нове сімейство Cyclone 10.

Результат синтезу для Cyclone 10

Вибираємо чіп 10CL006YE144C8G. Він має стільки ж логічних елементів (6272), що і варіант на Cyclone 4, і стільки ж пам'яті (30К х 9). Корпус такий же, QFP144, призначених для користувача пинов навіть менше - 89.

мікросхема 10CL006YE144C8G
логічних елементів - 289 (5%)
пинов - 41 (46%)
пам'ять - 65536 біт (24%)
частота для найгіршого випадку (85 С) - 145,5 МГц.

Цікаво те, що проект став компактніше по логічним елементам. Тобто при тій же ємності логіки в Cyclone 10 влізе складніший проект. Все інше приблизно на тому ж рівні.

Виникає резонне питання: чи можна заощадити, поставивши іншу FPGA або CPLD?

Давайте спробуємо FPGA MAX10.

Результат синтезу для MAX 10

Тут читач (якщо він в темі) може вигукнути: немає, все не так! Сімейство MAX - це CPLD, а не FPGA, а плутати ці поняття - кричущий непрофесіоналізм!

Однак стараннями маркетологів Intel (все ж в курсі, що мова про чіпи Intel?) Сімейство MAX10 перетворилося в FPGA, хоча і має внутрішню незалежну пам'ять конфігурації, як будь-яка CPLD.

Отже, вибираємо чіп, наприклад, 10M02SCE144A7G (2304 LE, 101 GPIO, 12Kx9 BRAM), корпус QFP144.

мікросхема 10M02SCE144A7G.
логічних елементів - 298 (13%)
пинов - 41 (41%)
пам'ять - 65536 біт (59%)
частота для найгіршого випадку (125 С) - 153 МГц.

Ми бачимо, що абсолютні показники залишилися практично тими ж, збільшилася тільки ступінь заповнення кристала, що й зрозуміло - 2304LE проти 6272 LE.

Чи можна використовувати MAX II?

Тепер питання: а чи можна використовувати будь-яку зовсім дешеву CPLD, типу MAX II? Тут все складніше. У них немає пам'яті BRAM, тобто потрібна буде ще й зовнішня швидка SRAM.

Для підключення SRAM потрібна буде додаткова логіка, звичайно. Якщо ми використовуємо пам'ять об'ємом 4K x 16, то нам буде потрібно додатково 16 пінів для даних, 12 для адреси і 3 для управління (/ cs, / we, / oe), всього 31 додатковий пін.

Логіка також збільшиться в розмірах. На скільки точно, складно сказати, але в CPLD на 240 LE вона не влізе спочатку, а в 570 LE може бути, і влізе.

Вибираємо CPLD EPM570 в корпусі QFP100. Нам потрібно всього 72 Піна, корпус має 76 пінів для GPIO, тобто має вистачити на все, але для розширення вже зовсім мало місця.

Плюси такого рішення: можливо, більш низька ціна (навіть з урахуванням додаткової мікросхеми SRAM), мінуси: більша складність схеми і площа плати.

Ціна питання

Ось що я знайшов за допомогою efind. Мікросхеми трохи інші, але цифра і буква в кінці - це індекс швидкодії і температурний діапазон (комерційний). Так як у нас триразовий запас по частоті, нам ці цифри абсолютно не важливі.

EP4CE6E22C8N - 456,55 Р (Промелектроніка, Екб, розн.)
10CL006YE144C - 754,71 (П'ятий елемент, Спб, опт)
10M02SCE144C8G - 456 Р (Елітан, Екб, опт)
EPM570F100C5N - 368 Р (Хайтек, Спб) + пам'ять (CY7C1021DV33-10ZSXI, SRAM 1MBIT 10NS 44TSOP) - 92,51 Р (Промелектроніка, Екб, розн.)

Звичайно, можна знайти і дешевше, це просто роздрібні ціни в магазині, але співвідношення буде приблизно тим же.

Видно, що варіант з CPLD ніяк не вигравав за ціною, при цьому маючи безліч недоліків. Решта варіантів приблизно рівноцінні, хіба що Cyclone 10 поки трохи дорожче і мало у кого є в наявності. Однак це зовсім нове сімейство, поки що все дистриб'ютори його не привезли.

Особисто мені найбільше подобається варіант на MAX 10. Він має одну перевагу: не потрібно завантажувати конфігурацію FPGA при старті. У варіанті на Cyclone 4 потрібно буде завантажувати конфігурацію FPGA, що можна зробити або за допомогою додаткової мікросхеми конфигурационной пам'яті, або за допомогою мікроконтролера. Є ще третій варіант: прошити через JTAG і ніколи не знімати харчування з чіпа. Я чув, що хтось так робив, не знаю, жарт це чи ні, але я так робити точно не буду.

Втім, у випадку з прошивкою Cyclone 4 через мікроконтролер є перевага: можливість оновлювати прошивку FPGA через інтерфейси: USB, Ethernet, etc.

Можливий ще один нетривіальний варіант: взагалі не ставити мікроконтролер, а прошити в FPGA будь-якої вбудовується процесор. Але це не дуже хороший варіант, можливо, тому що при цьому однозначно знадобиться зовнішнє ПЗУ і ОЗУ, а також, як мінімум, міст USB. Завідомо відмовлятися від цього варіанту не потрібно, звичайно, але він мені здається більш складним в реалізації, ніж з мікро контролером.

Про те, які функції виконує ця прошивка, я напишу в наступному пості.

Вступ

ЯзикVHDL є фактично міжнародним стандартом в області автоматизації проектування цифрових систем, це вхідна мова багатьох сучасних систем автоматизованого проектування (САПР) як замовних, так і програмованих логічних інтегральних схем (ПЛІС) і програмованих користувачами вентильних матриць. VHDL призначений, в першу чергу, для специфікації - точного опису проектованих систем і їх моделювання на початкових етапах проектування - алгоритмічній і логічному. За допомогою VHDL можна моделювати електронні схеми з урахуванням реальних часових затримок.

Останнім часом досить успішно розробляються і системи синтезу схем по специфікаціям на цій мові. Наприклад, використовуючи САПР Xilinx Foundation Series 2.1i, можна провести моделювання вихідного опису схеми на мові VHDL, а потім синтезувати схему і отримати файл настройки (конфігурації) мікросхеми типу FPGA фірми Xilinx. Використання САПР MAX + PLUSII дозволяє вирішувати аналогічні завдання для програмованих мікросхем, що випускаються фірмою Altera.

VHDL - це потужна мова, він дозволяє описувати поведінку, тобто алгоритми функціонування цифрових систем, а також проводити ієрархічне функціонально-структурний опис систем, має кошти для опису паралельних асинхронних процесів, регулярних (систолических) структур і в той же час має всі ознаки мови програмування високого рівня - дозволяє створювати свої типи даних, має широкий набір арифметичних і логічних операцій і т.д.

3 4
Мова VHDL розвивається, йому присвячуються міжнародні конференції, виходять наукові журнали, в яких вивчаються проблеми використання VHDL. Він став мовою розробки міжнародних проектів, в тому числі здійснюваних за допомогою всесвітньої комп'ютерної мережі Internet. Знайомство з цією мовою необхідно для ефективної роботи зі створення найрізноманітнішої електронної апаратури на сучасній елементній базі надвеликих інтегральних схем.

Лабораторна робота № 1

Отладчиков FPGA EXPRESS

1. Загальний опис роботи

1.1. Мета роботи - отримання навичок для роботи з отладчиком FPGA EXPRESS.

Лабораторна робота складається з родинної злагоди і лабораторного завдань. Домашнє завдання полягає в самостійному освоєнні найбільш простих можливостей відладчика і ознайомленні з його призначенням. Лабораторне завдання включає введення вашого варіанту прикладу програми, написаної на VHDL, і освоєння на її прикладі принципів роботи з отладчиком FPGA EXPRESS.

З методичного керівництва ознайомитися з призначенням і можливостями відладчика моделей цифрових пристроїв на мові VHDL.

3. Теоретична частина

FPGA Express транслює і оптимізує опису VHDL у внутрішній формат, еквівалентний рівню примітивних логічних елементів. Цей формат потім компілюється в технологію FPGA.

Для роботи з VHDL необхідно ознайомитися з наступними поняттями:

Мови апаратного опису.

Використання FPGA Express.

Модель процесу проектування.

Міністерство оборони США в 1982 році розробило VHSIC HDL(VHDL) як частина програми розвитку супершвидкісної ІС (VHSIC). VHDL описує поведінку, функції, входи і виходи цифровий схеми. VHDL по стилю і синтаксису аналогічний сучасних мов програмування, проте, він включає багато специфічних апаратних конструкцій. FPGA Express читає і аналізує підтримуваний синтаксис VHDL ..

Мови апаратного опису

Мови апаратного опису (HDL) використовуються для опису архітектури і поведінки дискретних електронних систем. Ці мови розроблені для побудови складних проектів. Часто проводять історичну аналогію на предмет того, як можуть називатися програмні мови опису, від машинних кодів (транзистори і пайка) до асемблерним мов (списки ланцюгів) і далі до мов високого рівня (HDL).

HDL-орієнтовані системи корисні при розробці великих проектів, коли кілька розробників або навіть кілька команд працюють спільно. HDL забезпечують структурне програмування. Після того, як прийняті основні архітектурні рішення, а основні компоненти і зв'язки між ними ідентифіковані, робота над підпроекту може відбуватися абсолютно незалежно.

Типові застосування HDL

5 6
HDL зазвичай підтримують змішані опису, в яких структурні конструкції або списки ланцюгів можуть з'єднуватися з алгоритмічними описами і описами поведінки. При наявності таких змішано-рівневий описів можливо відображати архітектуру системи на вищому рівні абстракції; потім проект деталізується по наростаючій для приватного компонентно-рівневого виконання. В якості альтернативи використовують опис проекту HDL в FPGA Express, а потім змушують компілятор автоматично синтезувати виконання на рівні логічних примітивів.

переваги HDL

Методологія проекту, що використовує HDL, має кілька фундаментальних переваг перед традиційною компонентно-рівневої методологією проектування. Серед цих переваг слід зазначити такі:

Ви можете дуже рано перевірити функціональні можливості проекту і негайно промоделювати його. Моделювання проекту на такому вищому рівні до трансляції в елементарне виконання дозволяє протестувати багато архітектурних і проектних рішень.

FPGA Express забезпечує логічний синтез і оптимізацію, так що можливо автоматично перетворити опис VHDL у виконання елементарного рівня для обраної технології. Така методологія усуває вузькі місця компонентного рівня і зменшує час проектування, а також кількість помилок, що вносяться при ручному трансляції програми VHDL в конкретні елементи. За допомогою логічної оптимізації FPGA Express можливо автоматично перетворити синтезований проект в найменшу і найшвидшого схему. Крім того, допускається призначити інформацію, отриману при синтезі і оптимізації схем, знову до існуючого опису VHDL, що призводить до більш точної підстроювання архітектурних рішень.

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

VHDL, як і більшість мов високого рівня, виробляє жорстку перевірку типів. Компоненти, тип яких оголошено четирехбітовим сигналом, не можуть з'єднуватися з трьох або пятібітовим сигналом; таке неузгодженість призведе до помилки при компіляції. Якщо діапазон змінних визначено від 1 до 15, то помилка виникне при призначенні їм значення 0. Неправильне використання типів є основним джерелом помилок при складанні описів. Перевірка типів виявляє такі помилки навіть перед генерацією проекту.

Налагодження в FPGA Express

Для налагодження необхідно здійснити наступні дії:

7 8
Створити опис проектованого пристрою (компонента) на мові VHDL в будь-якому текстовому редакторі. При цьому необхідною умовою є те, що розширення даного файлу повинна бути: * .vhd. (Наприклад, для створення файлу можна використовувати вбудований редактор Norton Commander за допомогою поєднання клавіш SHIFT - F4.)

2. Підключити створений файл до проекту в FPGA Express.

Для підключення файлу до проекту необхідно створити сам проект:

Вибрати меню File / New.

Ввести назву проекту.

При запиті файлів проекту необхідно знайти файл (и), створений в 1 пункті з уже готовим описом пристрою (компонента).

При коректному підключенні файлу (ів) проекту з'являється вікно, розділене на дві частини: Design Sources і Chips (рис. 1). Де Design Sources - вікно для роботи з файлами проекту, Chips - вікно для роботи з синтезованими пристроями.


Рис.1. вікно проекту

Для зручності роботи з файлом (ами) проекту у вікні Design Sources виводяться назва (ія), розташування (ія) файлу (ів), а також наявність синтаксичних і лексичних помилок або неточностей.

При наведенні курсор і одночасному натисканні правої кнопки миші на будь-який з назв в даному вікні з'являється наступне контекстне меню (рис. 2):

Update Project - аналіз проекту на наявність неточностей або помилок.

Force Update Project - повний аналіз всіх фалів проекту на наявність помилок або неточностей.

Create Implementation - створення моделі пристрою.

Edit File - редагування файлу.

Identify Sources - підключення файлу до проекту.

New library - підключення власної бібліотеки до проекту.

Project Report - звіт проекту (короткий опис у вигляді зовнішнього текстового файлу).

Remove - видалити файл або бібліотеки з проекту.


Як і у всіх додатках з дружнім інтерфейсом, кожен пункт контекстного меню дублюється простим меню і кнопками на панелі.
Рис.3. Частина файлу з помилкою

Редагування файлу відбувається аналогічно текстовим редакторам, а єдиною відмінністю є те, що видалення символів або рядків можна робити тільки за допомогою клавіші Back Space.

Після виправлення для пошуку інших існуючих помилок в даному вікні необхідно натиснути праву кнопку миші і в активному контекстному меню вибрати пункт Analyze File (пошук неточностей або помилок). Далі після успішного редагування бажаним є збереження поточних змін.

Якщо помилки відсутні, то відповідний файл буде мати свій синтезований варіант (тобто модель пристрою, описану у внутрішньому форматі FPGA Express, як показано на рис. 4).

Рис.4. Знак синтезованого варіанту пристрою CODER

Синтезований варіант є проміжною ланкою для успішного створення моделі цифрового пристрою.

4. Хід роботи

4.1 За допомогою будь-якого текстового редактора набрати опис цифрового пристрою відповідно до вашим варіантом. Для попередження помилок необхідно, щоб файл мав розширення * .vhd.

4.2 Створити проект в отладчике FPGA Express і підключити до нього набраний файл.

4.3 Після коректного підключення файлу опису, створити за допомогою FPGA Express звіт по вашому проекту.

Найменування;

Мета роботи;

Обладнання, що використовується;

Теоретичну частину;

Опис послідовності дій при налагодженні вашого варіанту;

Роздруківку звіту за проектом;

1. Що собою являє додаток FPGA Express і які його основні функції?

2. Які на ваш погляд переваги і недоліки мови HDL як мови апаратного опису?

3. Яка послідовність дій при налагодженні VHDL опису вашого пристрою?

11 12

Лабораторна робота № 2

ОСНОВНІ МОЖЛИВОСТІ отладчиков FPGA EXPRESS

1. Загальний опис роботи

1.1. Мета роботи - вивчення можливостей синтезу і оптимізації отладчика FPGA EXPRESS.

Лабораторна робота складається з родинної злагоди і лабораторного завдань. Домашнє завдання полягає в повторенні принципів налагодження VHDL описів. Лабораторне завдання включає введення вашого варіанту прикладу програми, написаної на VHDL, і вивчення принципів синтезу і оптимізації проектованого пристрою за допомогою відладчика FPGA EXPRESS.

1.3. обладнання, що використовується

Для виконання лабораторної роботи використовується ПЕОМ типу IBM PC, кольоровий монітор з графічним адаптером VGA і вище, принтер.

2. Домашнє завдання і методичні вказівки по його виконанню

З методичного керівництва ознайомитися і повторити призначення і можливості відладчика моделей цифрових пристроїв на мові VHDL.

3. Теоретична частина

Методологія проектування

На рис. 5 приведена типова процедура проектування, яка використовує FPGA Express і симулятор VHDL. Кожен крок такої моделі проектування описаний докладно.



Мал. 5. Структурна -схема етапів проектування

13 14
1. Запис опису проекту на мові VHDL. Це опис може бути комбінацією структурних і функціональних елементів. Даний опис використовується симуляторами FPGA Express і Synopsys VHDL.

2. Забезпечення мовних тестових драйверів VHDL для симулятора. Драйвера забезпечують тестові вектора для моделювання і збирають вихідні дані.

3. Моделювання проекту за допомогою симулятора VHDL. Перевірка правильності опису проекту.

4. Використання FPGA Express для синтезу і оптимізації опису проекту VHDL в елементарний список ланцюгів. FPGA Express генерує оптимізовані списки ланцюгів, що задовольняють тимчасовим обмеженням обраної архітектури FPGA.

5. Використання системи проектування FPGA (Design Manager) для зв'язку певної технологічної версії FPGA з симулятором VHDL. Система проектування включає в себе моделі симуляції і інтерфейси, необхідні для наскрізного проектування.

6. Моделювання певної технологічної версії проекту за допомогою симулятора VHDL. Допускається використовувати оригінальні драйвери моделювання VHDL з пункту 2, оскільки визначення модулів і портів зберігаються в процесі трансляції та оптимізації.

7. Порівняння виходу моделювання на елементному рівні (п. 6) з виходом моделювання оригінального опису VHDL (п. 3) для перевірки того, що виконання є коректним.

ієрархія проекту

FPGA Express підтримує ієрархічні кордону, що визначаються при використанні структурних конструкцій VHDL. Ці кордони призводять до двох основних результатів:

1. Кожен проектний об'єкт, який визначається в описі VHDL, синтезується окремо і підтримується у вигляді незалежного проекту. При цьому враховуються проектні обмеження, і кожен об'єкт може бути оптимізований окремо в FPGA Express.

2. Компонентні реалізації всередині описів VHDL підтримуються протягом введення. Ім'я реалізації, яке присвоюється кожному призначеному для користувача об'єкту, зберігається аж до виконання на елементному рівні.

Примітка. FPGA Express не підтримує і не створює автоматично ієрархію інших неструктурних конструкцій VHDL, таких, як блоки, процеси, цикли, функції і процедури. Ці елементи опису VHDL транслюються в контексті своїх проектів. Після читання проекту VHDL ви можете згрупувати разом логіку процесу, функції або процедури всередині вікна виконання FPGA Express (Implementation Window).

Вибір ієрархічних кордонів робить значний вплив на якість синтезованого проекту. За допомогою FPGA Express ви можете оптимізувати проект, зберігаючи його ієрархічні кордону. FPGA Express тільки частково оптимізує логіку поперек ієрархічних модулів. Повна оптимізація можлива в тих частинах ієрархії проекту, які стиснуті в FPGA Express.

Приклад ієрархічної структури складного пристрою показаний на рис. 6

Мал. 6. Ієрархічна структура

типи даних

У VHDL необхідно призначати тип всіх портах, сигналам і змінним. Тип даних об'єкта визначається операцією, яка може бути йому призначена. Наприклад, оператор AND визначається для об'єктів типу BIT,але не для об'єктів типу INTEGER. Типи даних важливі і при синтезі проекту. Тип даних об'єкта визначає його розмір (ширину в бітах) і бітову організацію. Правильний вибір типів даних значно покращує якість проекту і допомагає мінімізувати кількість помилок.

проектні обмеження

Необхідно описати якісні обмеження модуля проекту всередині FPGA Express Implementation Window.

вибір регістру

Розміщення регістрів і тактуючих схем є дуже важливим архітектурним рішення. Існує два способи визначення регістрів в вашому описі VHDL. У кожного з цих методів існують певні переваги:

1. Реалізувати регістри безпосередньо в описі VHDL, вибравши будь-який потрібний елемент з бібліотеки FPGA. Тактирующие схеми можуть бути довільної складності. Вибирається архітектура, що базується на тригерах або засувках. Основними недоліками такого підходу є:

Опис VHDL тепер прив'язана до певної технології, оскільки ви вибрали структурні елементи з технологічної бібліотеки. Однак можливо ізолювати цей розділ проекту у вигляді окремого об'єкта, який потім буде пов'язаний з іншою частиною проекту.

Програма пишеться більш складно.

15 16
2. Використовувати структури ifі wait, Щоб вивести тригера і засувки з опису. Переваги такого підходу прямо протилежні недоліків попереднього. При використанні логічного опису регістра програма VHDL стає технологічно незалежної і легшою для написання. Цей метод дозволяє FPGA Express вибирати тип описуваного компонента в залежності від обмежень. Таким чином, якщо необхідний специфічний компонент, повинна використовуватися його реалізація. Проте, деякі типи регістрів і засувок не можуть бути описані логічно.

асинхронні проекти

Можливо використовувати FPGA Express для конструювання асинхронних проектів з кратними і керованими синхроімпульсами. Однак, хоча ці проекти є логічно (статистично) коректними, вони можуть неправильно моделюватися або працювати в зв'язку з умовами змагання.

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

Іншим компонентом політики синтезу VHDL є набір конструкцій, які описують проект, вони визначають його архітектуру і дають послідовно хороші результати. Регістри реалізуються за допомогою компонентних конструкцій.

Лабораторна робота № 3

Симулятор VHDL МОДЕЛЕЙ MODELSIM

1. Загальний опис роботи

1.1. Мета роботи - знайомство з симулятором VHDL моделей ModelSim.

Лабораторна робота складається з родинної злагоди і лабораторного завдань. Домашнє завдання полягає в повторенні принципів налагодження, синтезу та оптимізації VHDL описів за допомогою відладчика FPGA Express. Лабораторне завдання включає введення варіанта прикладу програми написаної на VHDL і здійснити моделювання та аналіз вашого пристрою за допомогою симулятора ModelSim.

1.3. обладнання, що використовується

Для виконання лабораторної роботи використовується ПЕОМ типу IBM PC, кольоровий монітор з графічним адаптером VGA і вище, принтер.

2. Домашнє завдання і методичні вказівки по його виконанню

З методичного керівництва ознайомитися і повторити призначення і всі основні можливості відладчика моделей цифрових пристроїв на мові VHDL.

3. Теоретична частина

21 22
ModelSim - це система моделювання, яка дозволяє провести моделювання описів, представлених на мовах VHDL і HDL. При цьому необхідною умовою для простого моделювання є наявність опису активної моделі пристрою, тобто протягом певного періоду часу на вході і відповідно на виході даної моделі повинні відбуватися зміни логічних станів. Наприклад: існує опис елементарного елемента Шеффера (рис. 10).

Мал. 10. Схема активного цифрового пристрою

То тут крім опису структури і функції самого елемента необхідно створити додатково пристрій, що генерує певну послідовність логічних станів входів (можливо вхідну частину таблиці істинності) елемента Шеффера.

Моделювання в ModelSim

При відсутності помилок на етапах підключення файлу з вихідним активним пристроєм для моделювання можна почати сам процес моделювання.

Залежно від цілей моделювання в системі ModelSim передбачені: Конолі за тимчасової дискретизацією моделювання, а також можливість безпосереднього спостереження практично за всіма ключовими процесами, що відбуваються пристрої (останнє буде розглянуто в наступній лабораторній роботі).

Розглянемо засоби контролю за моделюванням. У цьому сенсі для повноцінного контролю за процесом моделювання необхідні: головне меню Run і Options. В меню Run для контролю призначені всі пункти, а в меню Options - пункт Simulate Options (установка приватних параметрів моделювання).

При активізації пункту Simulate Options з'являється панель введення параметрів моделювання (рисунок 14).

У даній панелі міститься три вкладки:

VSIM - безпосередньо параметри моделювання. Тут встановлюються такі параметри:

Default Run length - установка мінімальної тимчасової дискретизації процесу моделювання.

27 28
Iteration Limit - максимальна тривалість ітерації.

Suppress Warnings - відключення / включення реакції системи на попередження, пов'язані з різного роду неточностями.

Default Force Kind - установка можливості управління процесу моделювання (Freeze (відсутність контролю) / Drive (управління) / Deposit (повністю під контролем)).

Default Radix - вид сигналу за замовчуванням (Symbolic (символьний) / binary (двійковий) / octal (восьмеричний) / decimal (десятковий) / hex (шістнадцятковий)).

Малюнок 14 - панель Simulate Options

Aseащітний дії системи на різного роду помилки (рис. 15):

rtion- Break On моделювання. (Note (коментар) / warning (помилка)).

Ignore Assertions for - установка кордонів зневаги системою захисту. (Note (коментар) / warning (неточність) / error (- установки параметрів виведення вихідного файлу у вікні Source помилка) / failure ( "провал")).

дій системи


4. Хід роботи

5. Вказівки

Теоретичну частину;

Опис послідовності дій при установці опису пристрою для моделювання;

Висновки по виконану роботу.

5.2. Контрольні питання до лабораторної роботи

1. У чому полягає необхідність використання систем моделювання подібних ModelSim.

2. Які недоліки системи, якщо такі присутні?

3. Яка на ваш погляд область застосування системи ModelSim?

29 30

Лабораторна робота № 4

симулятор MODELSIM

1. Загальний опис роботи

1.1. Мета роботи - отримання навичок для моделювання проектованих пристроїв в системі ModelSim.

Лабораторна робота складається з родинної злагоди і лабораторного завдань. Домашнє завдання полягає в повторенні принципів роботи з симулятором ModelSim, освоєних в попередній лабораторній роботі. Лабораторне завдання полягає в підключенні вашого варіанту прикладу програми, написаної на VHDL, і в проведенні повноцінного моделювання та аналізу проектованого пристрою за допомогою ModelSim.

1.3. обладнання, що використовується

Для виконання лабораторної роботи використовується ПЕОМ типу IBM PC, кольоровий монітор з графічним адаптером VGA і вище, принтер.

2. Домашнє завдання і методичні вказівки по його виконанню

Повторити матеріал, освоєний на попередніх заняттях.

3. Теоретична частина


і виведення) / Internal Signals (внутрішні сигнали)).

Для цього в ModelSim була створена система інформаційних і функціонально-інформаційних вікон (головне меню View). Головною умовою роботи всіх вікон є коректно підключений вихідний файл з VHDL описом моделируемого пристрою.

Розглянемо принципи роботи з ним:

1. Source - вікно з вмістом вихідного VHDL - файлу (рис. 16). Дозволяє встановлювати точки зупинки (для цього необхідно подвійне натискання лівою кнопкою миші на номері рядка). Для зміни вмісту вікна потрібно активізувати пункт Select Source File ... головного меню File (поміняти вихідний файл можна тільки на файл, підключений до проекту), або подвійне натискання лівою кнопкою миші у вікні з оформлення звіту і Контрольні питання

5.1. Звіт з лабораторної роботи повинен містити:

Найменування;

Мета роботи;

використовуване обладнання; Structure на назві необхідного файлу. Зауваження: вікно не дозволяє редагувати вихідні файли.


Рис.16. вікно Source

2. Structure - вікно містить структуру і підпорядкованість файлів проекту (рис. 17). Несе допоміжну функцію для вікна Source.

Мал. 17. Вікно Structure


3. Variables - вікно містить всі внутрішні змінний конструкції мови VHDL використовувані для опису поточної підключеної моделі (рис. 18). Несе тільки інформаційну функцію.

4. Signals - вікно, що містить список і значення всіх портів введення / виводу і сигналів (рис. 19). Вікно фіксує будь-які зміни вмісту всіх портів введення / виводу і сигналів. Існує можливість видалення, додавання або установки обмеженого числа сигналів або портів в даному вікні залежно

Value - поточне значення сигналу.

Мал. 21. Вікно Force Signal

Delay - час затримки поточного значення сигналу (масштаб значення вказується праворуч від поля введення).

Second Value значення - наступного стану даного сигналу або порту вводу / виводу.

: Для вводити саме той тип затримки перед зміною текущкомендуется значення, який Примітка попередження помилок, пов'язаних з моделюванням пристрої, ре Delay for second Value - значення передбачений для проектованого пристрою.

його стану на наступне (Second Value). Примітка: значення даного поля повинне бути обов'язково обоех затримок сигналів.


Repeat Every -дане поле є необов'язковим параметром для проведення моделювання, тому що має на увазі період повторень змін стану порту введення / виведення або значення сигналу. Поле є включеним в основні параметри змін при активізованому навпроти нього прапорці.

Примітка: значення даного поля повинне бути обов'язково більше значення в поле Delay for second Value, оскільки початкова точка тимчасового відліку процесу моделювання є спільною для всіх затримок сигналів.

Kind - установка ступеня автономності вироблених змін. (Freeze (система автономно управляє змінами) / Drive (можливість управління) / Deposit (безконтрольне управління проектувальником)).

Для підтвердження введених параметрів змін сигналу або порту вводу / виводу слід натиснути кнопку Apply.

Для установки параметрів змін іншого сигналу, його попередньо необхідно вибрати у вікні Signals.

Є можливість установки обмеженого переліку сигналів за допомогою вікна Signal, де можна виділити найнеобхідніші з них, і пункту Add to List (підпункт Selected Signals (здійснює додавання виділеної групи в вікно List)). Крім цього в список можуть бути внесені всі сигнали поточного проекту (за допомогою підпункту Signals in Design), всі активні сигнали в даний момент моделювання (за допомогою підпункту Signals in Region) або сигнали, які беруть участь в будь-якому інформаційному потоці (за допомогою вікна Dataflow (виділення необхідної кількості) та підпункту Signals from DataFlow ...).

Примітка.

Mінімальний крок реєстрації змін значень сигналів встановлюється в параметрах процесу моделювання (Options ... / Simulate Options ...). У вікні передбачені різні опції пов'язані з фіксуванням змін сигналів і збереження отриманої таблиці в окремому файлі.

6. Process - вікно, що містить назву і стан VHDL-процесів поточного моделируемого пристрої (рис. 23). Є можливість обмеженого виведення процесів при використанні пункту Processes в головному меню Options (можливо вивести всі активні процеси (View Active Processes) або активні процеси на поточному кроці (ітерації) моделювання).

Мал. 23. Вікно Process

7. Wave - вікно, необхідне для виведення тимчасових діаграм певного набору сигналів або портів введення / виводу (рис. 24).

Мал. 24. Вікно Wave

Вікно має всі властивості гнучкого засоби спостереження за змінами сигналів у часових рамках самого процесу моделювання. У сукупності з вікном Signals і пунктом Add to Waveform головного меню Signals дане вікно має можливість визначення обмеженого переліку сигналів підпункт Selected Signals (установка в робочий список сигналів, виділених у вікні Signals), підпункт Signals in Region (спостереження за активними сигналами на поточній ітерації моделювання ), підпункт Signals in Design (установка всіх сигналів проекту), підпункт Signals from DataFlow (встановлення тонів, що беруть участь в обраному інформаційному потоці, з вікна DataFlow)). Як і всі функціональні вікна, це вікно має можливості для роботи зі списком виводяться сигналів (меню вікна Cursor і Edit), дозволяє управляти виведенням тимчасових діаграм (меню вікна Zoom і Options). Додатковим допоміжним засобом є бігунок (встановлюється в будь-якій точці на діаграмі за допомогою миші), що фіксує час моделювання в поточному положенні. Крім цього при зміні положення бігунка, якщо в наступному положенні змінюються значення будь-якого з сигналів, відповідні зміни реєструються в списку зображуваних сигналів (зліва від діаграм, як це показано на рис. 24).

8. DataFlow - вікно, що виводить організацію всіх інформаційних потоків, присутніх в моделируемом пристрої (рис. 25).

Мал. 25. Вікно DataFlow

Як і більшість функціональних вікон, це вікно працює в сукупності з іншими вікнами:

Signals (дане вікно дозволяє вибрати розглянутий (і) сигнал (и) для подальшої візуалізації пов'язаних з ним (ними) інформаційних потоків у вікні DataFlow).

Process (за допомогою цього вікна можна вибрати процес для подальшої демонстрації його інформаційних потоків).

4. Хід роботи

4.1. За допомогою будь-якого текстового редактора набрати опис цифрового пристрою відповідно до вашим варіантом. Для попередження помилок необхідно, щоб файл мав розширення * .vhd.

4.2. Створити проект в системі моделювання ModelSim і підключити до нього набраний і налагоджений в FPGA Express файл.

4.3. Після коректного підключення файлу опису здійснити установку системи для тестування вашого пристрою.

4.4. Провести тестування і повний аналіз вашого цифрового пристрою відповідно до вашим варіантом.

5. Вказівки з оформлення звіту і Контрольні питання

5.1. Звіт з лабораторної роботи повинен містити:

Найменування;

Мета роботи;

Обладнання, що використовується;

Теоретичну частину;

Опис послідовності дій при процесі аналізу і моделювання вашого варіанту;

Роздруківку всіх станів, всіх сигналів;

Роздруківку вашого вихідного файлу;

Роздруківку тимчасових діаграм і процесів;

Висновки по виконану роботу.

5.2. Контрольні питання до лабораторної роботи

1. Які основні функції вікон Signals і Wave?

2. Наскільки важлива візуалізація структури інформаційних потоків в пристрої при проектуванні?

37 38
3. Пристрої з якими типами сигналів, на ваш погляд, можуть бути протестовані в симуляторі ModelSim?

Лабораторна робота № 5

ЗНАЙОМСТВО З МОВОЮ VHDL

1. Загальний опис роботи

THE BELL

Є ті, хто прочитали цю новину раніше вас.
Підпишіться, щоб отримувати статті свіжими.
Email
ім'я
Прізвище
Як ви хочете читати The Bell
без спаму