Міністерство освіти І науки України
національний університет “Львівська політехніка”
Кафедра ЕОМ
Проектування ПЛІС xilinx
Методичні вказівки
до лабораторних робіт з дисципліни
"Методи та засоби автоматизованого
проектування комп’ютерних систем"
для студентів спеціальності 7.091503
“Спеціалізовані комп’ютерні системи”
Затверджено
на засідання кафедри
“Електронні обчислювальні машини”.
Протокол № 3 від 18.10.2001 р.
Львів - 2002
Методичні вказівки до лабораторних робіт “Проектування ПЛІС Xilinx” з дисципліни "Методи та засоби автоматизованого проектування комп’ютерних систем" для студентів спеціальності 7.091503 “Спеціалізовані комп’ютерні системи” /Укл.: Глухов В.С. - Львів: Видавництво Національного університету “Львівська політехніка”, 2002.- 39 с.
Укладач Глухов В.С., канд. техн. наук., с.н.с., доц.
Відповідальний за випуск Глухов В.С., канд. техн. наук., с.н.с., доц.
Рецензенти: Голембо В.А., канд. техн. наук., доц.
Цмоць І.Г., канд. техн. наук., доц.
1 Мета роботи
Метою роботи є ознайомлення з технологічним процесом і принципами схемотехнічного проектування цифрових вузлів на програмованих логічних інтегральних схемах (ПЛІС), засвоєння методів і засобів моделювання, а також розробки топології кристала ПЛІС.
2 Очікуваний результат роботи
В ході роботи необхідно розробити і задокументувати схеми електричні функціональні вузлів генерації та перевірки циклічних контрольних сум, провести поведінкове моделювання їхньої роботи і задокументувати його результати, розробити і задокументувати топологію кристала, після чого провести логічне моделювання розроблених вузлів і задокументувати його результати.
3 ТЕОРЕТИЧНА ЧАСТИНА
3.1 Програмовані логічні інтегральні схеми
3.1.1 Типи програмованих логічних інтегральних схем
В даний час до складу мiкропроцесорних систем входять:
високоiнтегрованi малопотужні по виходах вузли (микропроцесори, пам'ять, контролери);
низькоінтегровані, розраховані на великий вихідний струм вузли (приймально-передаючi, буфери);
унiкальнi логiчнi схеми власної розробки, що, як правило, реалiзуються на програмованих логiчних iнтегральних схемах (ПЛІС).
Визнаним лiдером у виробництвi ПЛІС є фiрма Xilinx. Також оозробкою ПЛІС займаються багато інших відомих фірм – Altera, Atmel та ін.
Фірма Xilinx пропонує сім серій ПЛІС двох типів:
1. FPGA - Field Programmable Gate Array
2. CPLD - Complex Programmable Logic Device.
Кожен тип містить від одного до декількох родин, які в свою чергу складаються з ряду кристалів різної місткості, швидкодії, типів корпусів.
Основні особливості ПЛІС Xilinx :
значний об’єм ресурсів – до 4 млн системних вентилів на кристал;
висока продуктивність з системними частотами до 300 МГц;
технологічні норми - до 0.18 мкм на шести шарах металу;
висока гнучкість архітектури з великою кількістю системних особливостей:
внутрішнє розподілене та блочне ОЗП;
логіка прискореного переносу;
внутрішні буфери з третім станом;
можливість ініціалізації та перевірки через порт JTAG;
можливість програмування безпосередньо в системі;
широкий асортимент кристалів за типом виконання;
конкурентоздатна вартість;
низьке енергоспоживання;
короткий цикл проектування та малий час компіляції;
розвинуті та недорогі засоби проектування;
можливість переведення проектів у замовлені схеми Xilinx.
Спектр кристалів, що випускає Xilinx [1...3], дуже широкий, тому можливості використання ПЛІС Xilinx майже необмежені, починаючи від реалізації серійних логічних проектів, розповсюджуючись на високошвидкісну цифрову обробку сигналів, різноманітні інтерфейси та багато інших пристроїв.
При виготовленні ПЛІС фірмою Xilinx використовуються три основні технології:
на основі SRAM (тип FPGA), при цьому конфігурація ПЛІС зберігається у внутрішньому “тіньовому” ОЗП, а ініціалізація здійснюється із зовнішнього масиву пам’яті. За даною технологією виконані серії: Spartan, Virtex, XC3000, XC4000, XC5200;
на основі FLASH (тип CPLD), в даному випадку конфігурація зберігається у внутрішній енергонезалежній FLASH – пам’яті і у будь-який момент часу може бути перезавантажена безпосередньо з ПК. За даною технологією виконана серія XC9500;
на основі EEPROM (тип CPLD), в даному випадку конфігурація зберігається у внутрішній енергонезалежній EEPROM-пам’яті і у будь-який момент часу може бути перезавантажена безпосередньо з ПК. За даною технологією виконана серія CoolRunner.
Мікросхеми типу FPGA після виключення живлення не зберігають конфігурацію, тому для зберігання конфігураційної інформації випускаються конфігураційні ПЗП (серії XC1700 і XC1800) и програматор HW-130 для них. На етапі відлагодження конфігурація може завантажуватися з комп’ютера за допомогою засобів завантаження:
Parallel Cable III
XChecker Cable
MultiLinx Cable
Для створення конфігурації випускаеться програмне забезпечення проектування у складі:
Xilinx Foundation Series
Xilinx Alliance Series
WebPack
WebFitter
Також Xilinx розробляє спеціалізовані модулі, так звані COREs, які можуть бути використані як бібліотечні елементи при проектуванні кристала.
3.1.2 ПЛІС типу FPGA
ПЛІС типу FPGA фiрми Xilinx виконані по SRAM кМОН технологiї. Характеризуються високою гнучкiстю структури i достатком на кристалi тригерiв. При цьому логiка реалiзується за допомогою матрицi так званих LUT-таблиць (Look Up Table) Xilinx, а внутрiшнi з’єднання - за допомогою розгалуженої iєрархiї металевих лiнiй, комутованих спецiальними швидкодiючими транзисторами.
Вiдмiнними системними особливостями є:
внутрiшнi буфера з можливiстю переключення у високоомний стан i тим самим дозволяючи органiзувати системнi двонаправлені шини, iндивiдуальний контроль високоомного стану i часу наростання фронту вихiдного сигналу по кожному зовнiшньому виводу;
наявнiсть загального скидання/установки всiх тригерiв ПЛІС;
множина глобальних лiнiй iз низькими затримками поширення сигналу;
наявнiсть внутрiшнього розподіленого ОЗУ Xilinx, що реалiзується за допомогою тих же LUT - таблиць (серiї Spartan, Virtex, XC4000).
3.1.3 Процес конфiгурацiї
Конфігураційна послiдовнiсть (bitstream) може бути завантажена в прилад безпосередньо в системi i перевантажена необмежене число разів. Iнiцiалiзацiя ПЛІС провадиться автоматично (iз завантажувального ПЗУ Xilinx) при подачi напруги живлення або примусово по спецiальному сигналi. Процес iнiцiалiзацiї займає вiд 20 до 200 мс, протягом яких виводи ПЛІС знаходяться у високоомному станi (пiдтягнутi до логiчної одиницi).
3.1.4 Споживання енергiї
Статичне споживання енергiї достатньо мале i для деяких серiй складає одиницi мікроват. Динамiчне ж споживання пропорцiйно зростає з частотою функцiонування проекту i залежить вiд ступеня заповнення кристала, характеру логiчної структури проекту на кристалi, параметрiв режиму зовнiшнiх виводiв ПЛІС i т.д.
3.1.5 Корпуси
Для кожного окремо узятого сiмейства ПЛІС Xilinx iснує уніфікація кристалiв по типу корпуса i, вiдповiдно, функціональне призначення виводів, тобто в тi самi корпуса пакуються ПЛІС рiзноманiтного логiчного об’єму. Наприклад, у корпусi PQ/HQ240 є ПЛІС iз ємністю вiд 50 тис. (XCV50XLA) до 100 тис. вентилiв (XCV100XLA), що дозволяє розроблювачу, задавшись на етапi проектування друкарської плати визначеним типом корпуса, надалi встановлювати ПЛІС найбiльш відповідного об’єму.
В даний час випускаються такi серiї ПЛІС FPGA: Virtex, Spartan, XC4000, XC5200, XC3000.
3.1.6 ПЛІС сімейства Virtex
Випуск у жовтні 1998 року нової серії FPGA - Virtex значно розширив область застосування мікросхем FPGA. У першу чергу це торкнулося застосування FPGA Virtex як заміни в проектах замовлених спеціалізованих мікросхем (ASICs). Це стало можливо завдяки поліпшенням в архітектурі Virtex і застосуванні нових технологій виробництва “кремнію” (0.18мкм кМОН із шестишаровою металізацією). Нові технології дозволяють робити кристали ємністю до 3.2 мільйона системних вентилів, що працюють на системних частотах до 311 МГц і дозволяють управляти тактовими сигналами всієї системи.
Для роботи в системах із високою продуктивністю в архітектурі FPGA серії Virtex передбачені дві функції: керування системними тактовими сигналами і функція вибору стандарту логічного сигналу блока вводу/виводу.
Одним із чинників обмежуючих швидкодію FPGA є затримка поширення тактового сигналу по кристалі. Ті ж проблеми з затримками виникають і на друкованих платах. Для рішення цієї проблеми на кристалі організовані спеціальні тактові модулі, що вирівнюють часові параметри елементів плати. Багато виробників мікросхем FPGA організують на кристалі модулі називані PLL (phase-locked loop), що підбудовують часові параметри внутрішніх тактових ліній. Xilinx використовує модулі називані DLL (digital delay-locked loop), що можуть бути використані для мінімізації як усередині кристальних затримок тактових сигналів так і тактових затримок на платі.
Кожний DLL-модуль може стабілізувати частоти до 320МГц. DLL-модуль має 6 виходів і може бути використаний для подвоєння або ділення частоти. Множення частоти на число більше 2-х досягається шляхом каскадування DLL-модулів, яких на кристалі знаходиться 4 (сімейство Virtex) або 8 (сімейство Virtex-Е). Перевага DLL перед PLL полягає у відсутності дребезга фронтів.
Іншою проблемою при розробці високошвидкісних систем є застосування в системі різноманітних стандартів логічних сигналів і напруг живлення елементів системи. В даний час можна зустріти системи що одночасно складаються із елементів з напругою живлення 5В, 3.3В, 2.5В, 1.8В, які повинні сприймати і передавати сигнали один одному. Більшістю виробників ПЛИС FPGA для рішення даної проблеми застосовується метод при якому використовуються різноманітні напруги живлення логічного ядра і блоків вводу/виводу. Xilinx у серії Virtex застосовує більш досконалий метод - технологію Select/O, що дозволяє запрограмувати кожний блок вводу/виводу на визначений стандарт. Технологія Virtex Select/O підтримує до 20 різноманітних стандартів.
Архітектура серії Virtex по організації логічних блоків і комутаційних ресурсів значно відрізняється від архітектури попередніх серій ПЛИС FPGA Xilinx. Логічна комірка Virtex ідентична логічній комірці серій Spartan і XC4000 і являє собою 4-и входовий функціональний генератор + D-тригер, але конфигурований логічний блок складається з 4-х комірок, а не з 2-х. У кристалі є декілька блоків ОЗП кожний по 4КБіти, також можлива реалізація 16біт пам'яті на кожному 4-и входовому функціональному генераторі.
3.1.7 Основні особливості сімейства Virtex
Програмовані користувачем логічні інтегральні схеми, що рекомендуються для заміни ASIC (applications specific integrated circuit - спеціалізована інтегральна схема)
Логічна ємність від 50К до 1М системних вентилів
Системна частота до 200МГц
Підтримка функції Hot-swap для Compact PCI
Технологія Virtex Select/O підтримує 17 різноманітних стандартів по вводу/виводу, серед котрих LVTTL, LVCMOS2, PCI33_5, PCI66_5, PCI33_3, PCI66_3, GTL, GTL+, SSTL2(I), SSTL2(II), SSTL3(I), SSTL3(II), HSTL(I), HSTL(II), HSTL(III), AGP, CTT
Чотири спеціальних схеми автопідстроювання затримок (DLL) для поліпшеного керування тактуванням.
Чотири основні мережі глобального розподілу сигналів тактування з малими розбігами фронтів, плюс 24 додаткові локальні тактові лінії
Ієрархічна 3-и рівнева система елементів пам'яті: реалізація на базі 4-и входового функціонального генератора (4-LUT - LookUp Table) конфигурує або як 16 бітову RAM (Random Access Memory), або як 16 бітову двопортову RAM, або як 16-и бітовий регістр зсуву
Умонтована блокова пам'ять, кожний блок конфігурується як 4К-біт синхронний двопортовий RAM
Швидкі інтерфейси до зовнішньої високопродуктивної RAM
Спеціальна логіка прискореного переносу для високошвидкісних арифметичних операцій
Велике число регістрів із дозволом тактування і синхронні/асинхронні входи установки і скидання
Внутрішні шини з трьома станами
Логіка периферійного сканування у відповідності зі стандартом IEEE1149.1
Підтримується системами проектування Foundation Series і Alliance Series
Виготовляються за технологією 0.22мкм SRAM кМОН із 5-и шаровою металізацією
100% фабричне тестування
3.1.8 Програмне забезпечення Foundation Series
Програмне забезпечення Foundation Series було розроблено з метою дати користувачу повний пакет програмних засобів для проектування ПЛІС Xilinx. Для досягнення цієї мети до трасувальника з пакету Alliance Series були додані засоби схемного вводу, моделювання, а також редактор HDL (Abel, VHDL, Verilog) і засоби синтезу з HDL.
3.1.9 Основні модулі пакета Foundation Series
Project Manager – графічний засіб керування файлами проекту і основними модулями пакету.
Synthesis Constraints Editor - редактор обмежень, що накладаються на проект написаний на VHDL/Verilog перед синтезом.
Synthesis Timing Analyzer - аналізатор часових параметрів синтезованих проектів.
Synopsys FPGA Express Synthesis - програма синтезу проектів, написаних на VHDL/Verilog
HDL Design Tools - набір утиліт для спрощення вводу проекту на мовах високого рівня VHDL/Verilog, що містить в собі текстовий редактор, майстер готових шаблонів основних конструкцій мови, перевірку синтаксису, редактор діаграм станів.
ABEL Synthesis - модуль синтезу проектів, написаних на Abel.
Schematic Editor - графічний редактор, що дозволяє вводити проекти у схемному вигляді на основі бібліотек логічних елементів (прості вентилі, регістри, лічильники, елементи пам’яті і т.д.)
Simulator (Functional and Timing)- графічний редактор, що дозволяє провести моделювання до трасування і після.
Design Manager - інтерфейсний модуль, що здійснює керування всіма засобами автоматичного трасування та дає доступ коритувачу до них.
Flow Engine – відображає та виконує всі етапи по розміщенню проекту в кристал, що складаються з:
трансляції вхідного файлу універсального формату у внутрішній формат;
розбиття логіки по КЛБ;
розміщення по кристалу елементів логіки та зв’язків;
створення конфігураційного файлу для завантаження у кристал;
створення звіту про статичні часові параметри і створення файлу для моделювання з врахуванням часових затримок у форматі VHDL, Verilog, EDIF чи XNF.
LogiBLOX - графічний засіб створення параметризованих та оптимізованих під конкретну архітектуру логічних елементів (лічильники, пам’ять, регістри, мультиплексори і т. д.)
CORE Gen – вбудований модуль генерації параметризованих і оптимізованих під конкретну архітектуру модулів, що виконують складні функції, наприклад такі модулі як корелятори, фільтри, спектральні перетворення, елементарні блоки ЦОС і т.д.
Floorplanner – графічний засіб, що дозволяє контролювати процес автоматичного розміщення логіки в кристал FPGA чи повністю "вручну" провести розміщення.
FPGA Editor – графічний засіб, що дозволяє переглянути і відредагувати результати розміщення логіки та зв’язків, а також “вручну” спроектувати кристал FPGA на рівні КЛБ і ліній зв’язку.
Hardware Debugger - програма завантаження та верифікації проекту з комп’ютера.
PROM Files Formatter - програма створення конфігураційного файлу для зберігання у послідовних чи паралельних ПЗП. Доступними є три формати MCS, EXO, TEX. Для мікропроцесорного завантаження формуєтся файл в форматі HEX.
3.1.10 Конфігурації пакету
Foundation Series поставляється в чотирьох конфігураціях:
Base (FND-BAS)
Base Express (FND-BSX)
Express (FND-EXP)
Elite (FND-ELI)
Конфігурації відрізняються логічним об’ємом кристалів що підтримуються пакетом, модулями вводу проекту та вартістю.
Приведена вище класифiкацiя вузлiв мiкропроцесорних систем вiдповiдає структурi розроблювального пристрою, тому основною задачею при розробцi буде проектування ПЛІС сiмейства Virtex фiрми Xilinx iз використанням програмного забезпечення Foundation Base цiєї ж фiрми.
3.2 Циклічні контрольні суми
3.2.1 Принцип утворення і використання циклічних контрольних сум
При передачі інформації в локальних мережах можливі помилки, тобто спотворення інформації, що передається. Ці помилки необхідно виявляти і виправляти. Контроль правильності передачі інформації може виконуватись як приймачем, так і передавачем.
Контроль передавачем на відміну від контролю приймачем не потребує практично ніякого додакового часу. Але як приймаючий абонент може взнати, чи є помилки в прийнятій інформації? Ідея в полягає наступному: до інформації добавляються додаткові контрольні біти, в які входить в згорнутому вигляді характеристика всіх інформаційних бітів. Вважається, що ймовірність спотворення цих додаткових бітів набагато менша, ніж інформаційних бітів (менша у стільки ж разів, в скільки разів кількість додаткових бітів менша кількості інформаційних бітів). А далі приймач перевіряє відповідність прийнятих інформаційних і контрольних бітів, і на основі цього і робиться висновок про наявність помилок. Потім він повідомляє передавачеві, чи виявив він помилки чи ні, а передавач при необхідності повторює свою передачу.
Дуже часто додаткові контрольні біти формуються як циклічна контрольна сума. Її використання викликане прагненням підвищити якість контролю, тобто збільшити ймовірність виявлення помилок. Цю суму не можна просто обрахувати програмно, однак надійність такого методу контролю набагато нижча ніж при його апаратній реалізації. Даний метод часто називають “циклічним контролем за надлишковостю” (скорочено СRС - Сусliс Radundanсу Сheсk). Зміст його заключається в наступному: весь інформаційний пакет розглядається як М-розрядне двійкове число, де M - кількість біт в пакеті. Для обчислення контрольної суми це число ділиться на деяке постійне число, вибране спеціальним чином (але ділиться не просто, а по модулю 2). Частка від ділення відкидається, а залишок використовується як контрольна сума.
Обчислення і використання коду CRC проводиться у відповідності з наступною послідовністю дій:
до вмістимого кадра, що описується поліномом F(x), добавляється набір одиниць (поліном L(x) степені n-1)
L(x) = EMBED Equation.2 xi = 11...1,
кількість котрих рівна довжині поля CRC. Утворене таким чином число хn(F(x) + xkL(x)), де k - степінь F(x), знак “+” означає додавання по модулю 2, а множення на xi відповідає зсуву на i розрядів вліво, ділиться на твірний поліном g(x) степені n. Залишок O(x) від такого ділення, що визначається з співвідношення Q(x)g(x) = xn(F(x) + xkL(x)) + O(x), де Q(x) - частка від ділення xn(F(x) + xkL(x)) на g(x), в інвертованому вигляді O’(x) = Q(x) + L(x) поміщається в контрольне поле кадра. На прийомній стороні виконується ділення вмістимого кадра з полем CRC F*(x) = xn(F(x) + xkL(x)) + O’(x) (кодова комбінація, що передається), на поліном g(x). Результат такого ділення можна привести до вигляду: [xn(F(x) + xk L(x)) + O(x)]/ g(x) + L(x)/ g(x) = [Q(x)g(x)]/ g(x) + L(x)/ g(x). Доданок першої складової ділиться на g(x), тому в приймача, якщо при передачі не було помилок, залишок получається рівним залишку від ділення постійного доданка другої складової L(x) і , так як L(x) < g(x), має вигляд xn-1 + xn-2 + xn-3 + ... + x3 + x2 + x + 1 = 111...111 = L(x).
Таким чином, якщо результат обчислень на стороні приймача рівний деякому визначеному числу (в наведеному вище прикладі 11..11, в деяких системах нулю чи іншому числу, що не співпадає з приведеним вище), то вважається, що передача проведена без помилок.
Можливі й інші алгоритми формування і перевірки контрольного поля кадра. Однак відмінності їх від розглянутого носять частковий характер.
Технічна реалізація обчислень CRC базується, як правило, на використанні регістрів зсуву з логічними елементами “виключне АБО” (сума за модулем 2). Наприклад, схема ділення вхідної послідовності на поліном g(x) = x6 + x3+1 (який відповідає двійковому запису дільника 1001001) наведена на рис. 3.1.
Вхід
0
1
2
3
4
5
Рисунок 3.1 Схема ділення на поліном g(x) = x6 + x3 +1
Після зсуву всього вихідного кадра в комірках пам’яті регістра зсуву залишається результат ділення (залишок). В подальшому він використовується як контрольне поле кадра.
3.2.2 Формувач циклічних контрольних сум
Схема формування циклічних контрольних сум (передавач) наведена на рисунку 3.2.
RG_CRC
RG_delay
+data/-crc
D_out
D_in
0
1
2
3
4
5
0
1
2
3
4
5
&
&
&
1
Рисунок 3.2 Схема формування циклічних контрольних сум (передавач)
Схема функціонує наступним чином: інформація на вхід формувача подається через вхід D_in. Циклічні контрольні суми формуються у тригерах регістру RG_CRC, у кожен з яких при подачі сигналу скиду записується значення ‘1’, паралельно інформація поступає до буферного регістра Rg_delay, якbq при початковому скиді встановлюються в ‘0’. Пакет вихідної інформації складається з інформаційних розрядів та розрядів циклічних контрольних сум. На вихід формувача інформація поступає через вивід D_out з мультиплексора. Робота мультиплексора керується сигналом +data/-crc, який подається на його адресний вхід та переключає його після проходження останнього біту вхідного повідомлення..
Максимальну кількості залишків при діленні дають так звані прості поліноми, які визначаються аналогічно тому, як визначаються прості числа у звичайній арифметиці (табл. 3.1). Відміна полягає лише в тому, що при визначенні поліномів використовується модульна арифметика (за модулем 2 - ⊕).
Таблиця 3.1
Прості поліноми
3.2.3 Вузол виправлення помилки
Cхема блоку виправлення помилки (приймача) приведена на рисунку 3.3.
RG_error
Error
&
5
4
3
RG_CRC
RG_delay
D_out
D_in
Рисунок 3.3 Cхема блоку виправлення помилки (приймач)
561
551
541
2
1
0
2
1
0
5
4
3
2
1
0
На вхід D_in надходять дані з лінії передачі інформації. Для виправлення помилки необхідно віднайти номер біту, який є зіпсований, та у подальшому інвертувати його. Циклічна контрольна сума формуються у регістрах RG_CRC при цьому замість серії нулів після подачі інформаційного повідомлення (як це відбувалося в передавачі) на вхід подається контрольна сума. У випадку відсутності помилки результатом, що зформується у регістрі RG_CRC, буде серія одиниць. Якщо ж у повідомленні мала місце помилка, то результат буде ненульовим. Його необхідно інвертувати і переслати на вузол визначення помилкового біта RG_err. Схема цього вузла аналогічна схемі вузла RG_CRC при умові подачі на її вхід нулів. Синдром помилки (комбінація бітів результату) виникає у випадку наявності зіпсованого біту. Для кожного конкретного твірного поліному синдром помилки є величиною постійною. Його значення визначається розрахунком, а сам сигнал індикації помилки формується за допомогою схеми “&”, вихід якої сигналізує про помилку у поточному біті. Для виправлення помилки необхідно зберігати в допоміжному буфері саме повідомлення. Для цього використовується регістр Rg_delay, кількість тригерів у якому залежить від довжини повідомлення. Виправлення помилки реалізується за допомогою побітового додавання за модулем 2 розряду повідомлення і сигналу Error наявності помилки в даному біті. Відновлена інформація поступає на вихід блоку Data_out.
3.2.4 Приклад визначення контрольної суми
Для виправлення однократної помилки контрольна сума повинна однозначно кодувати номер зіпсутого двійкового розряду повідомлення (якщо він є) або кодувати ознаку відсутності помилок. Тобто, n-розрядна контрольна сума кодує ознаку відсутності помилки і 2n-1 двійкових розрядів, у яких може бути помилка. Серед цих розрядів знаходятся і n розрядів самої контрольної суми. Таким чином кількість інформаційних розрядів у повідомленні складає максимум 2n-n-1. Для 3 розрядної контрольної суми кількість інформаційних розрядів повідомлення дорівнює 23-3-1=4.
Нижче наведено приклад визначення 3-розрядної контрольої суми, яка утворюється приймачем за допомогою полінома g(x) = x3 + x+1 (рис. 3.4). На вхід приймача подається інформаційний двійковий код 1001 і закінчення 000. Початковий стан тригерів передавача - одиничний. Зміна інформації у тригерах передавача показана на рис. 3.4.
На вхід приймача подається інформаційний двійковий код 1001 інвертована контрольна сума 110. Зміна інформації у тригерах приймача показана на рис. 3.5.
Результат першого зсуву
Початковий стан тригерів
Рисунок 3.4 Схема ділення на поліном g(x) = x3 + x +1
Вхід
0
1
2
1
0
0
1
0
0
0
1
1
1
0
1
0
0
1
1
1
0
1
1
1
1
0
0
1
0
1
1
1
1
0
Результат останнього зсуву
0
1
10
Інверсія результата - CRC
Результат першого зсуву
Початковий стан тригерів
Рисунок 3.5 Схема визначення ознаки відсутності помилки
Вхід
0
1
2
1
0
0
1
1
1
0
1
1
1
0
1
0
0
0
0
1
0
1
1
1
1
1
1
1
0
1
1
1
1
1
Результат останнього зсуву
0
0
00
Ознака відсутності помилки
4 Характеристика робочого місця
Робота виконується за допомогою пакета Foundation Series v2.1i [2] ф.Xilinx, призначеного для проектування програмованих логічних інтегральних схем (ПЛІС). Розширення і призначення основних файлів пакета наведені у таблиці 4.1.
Таблиця 4.1
Розширення файлів
5 Завдання на лабораторну роботу
5.1 Завдання на роботу
В ході роботи необхідно розробити програмовану логічну інтегральну схему (ПЛІС) для пересилання інформації по послідовному каналу і її контролю за допомогою циклічних контрольних сум. ПЛІС повинна містити:
вузол формування циклічної контрльної суми (передавач);
вузол виправлення помилок (приймач).
В ході роботи необхідно:
створити, провести поведінкове моделювання і документування макроелемента формувача циклічної контрольної суми (передавача) – лабораторна робота 1;
створити, провести поведінкове моделювання і документування макроелемента вузла виправлення помилки (приймача) - лабораторна робота 2;
створити і провести поведінкове моделювання роботи схеми лінії передачі даних “приймач - передавач” - лабораторна робота 3;
розробити топологію кристала ПЛІС - лабораторна робота 4 ;
провести логічне моделювання роботи передачі даних “приймач - передавач” без помилки у лінії передачі - лабораторна робота 5;
провести логічне моделювання роботи передачі даних “приймач - передавач” з імітацією однократної помилки у лінії передачі- лабораторна робота 6.
5.2 Варіанти завдання
Варіанти завдання – утворюючий поліном для циклічної контрольної суми обирається з табл.5 простих поліномів викладачем.
Таблиця 5
6 Порядок роботи
6.1 Запуск менеджера проектів Project Manager
6.1.1 З основного меню Windows зайти у пакет Project Manager.
EMBED Package
При вході з’явиться вікно Getting Started (рис. 6.1).
Рис. 6.1
EMBED MSPhotoEd.3
1) При першому входженні потрібно встановити ознаку створення нового проекту – “Create a New Project” і натиснути клавішу OK у вікні. У результаті виконання останньої команди на екрані повинне з’явитися вікно основного меню пакета (рис. 6.2).
Рис. 6.2
Необхідно:
задати ім’я свого проекта (Name);
визначити серію ПЛІС у нижньому лівому вікні – XC4000XLA;
визначити тип мікросхеми у серії у середньому нижньому вікні – 4013XLABG256;
визначити швидкодію мікросхеми у нижньому правому вікні– 7;
встановити робочий каталог (Directory:) – D:\PROJECTS;
задати схематичний тип проекта – Flow: Schematic;
натиснути клавішу “OK”.
2) При входженні до менеджера проектів з вже існуючим проектом необхідно у вікні рис. 6.1 виділити назву потрібного проекта і натиснути клавішу OK.
3) При входженні до менеджера проектів з вже існуючим заархівованим проектом необхідно його разархівувати - послідовно обрати з меню такі команди:
File
Restore Project… (у вікні, що відкриється, вказати файл потрібний zip-файл)
Open (наступні 2 дії виконуються у вікні Restore Project Wizard – Setup)
Next
Finish
4) Відкрити існуючий проект можна також за допомогою меню менеджера проектів:
File
Open Project… (у вікні рис.6.4, що відкриється, у лівому віконці Projects (Schematic) вказати ім’я щойно створеного проекту)
Open (OK).
EMBED MSPhotoEd.3
Рис. 6.3.
Після відкриття проекта на екрані з’явиться вікно менеджера проекта (рис. 6.4).
вікно показника ієрархії проекта
вікно карток проходження технологічного процесу
вікно повідомлень
рядок стану проекта
Рис. 6.4
лінійка інструментів
EMBED MSPhotoEd.3
6.1.6. Перейти в графічний редактор проекта:
на картці “Design Entry” (рис. 6.5) натиснути на клавішу графічного редактора “Schematic Editor” (“Schematic Capture”).
EMBED MSPhotoEd.3
Рис. 6.5
На екрані з’явиться чиста сторінка графічного редактора (рис. 6.6).
Рис. 6.6
6.2 Створення, поведінкове моделювання і документування макроелемента формувача циклічної контрольної суми (передавача)
6.2.1 Відкрити бібліотеку елементів клавішою . На екрані з’явиться вікно бібліотеки сімейства мікросхем серії XC4000(рис. 6.7).
Рис. 6.7
6.2.2 Вибрати з бібліотеки потрібні елементи і розмістити їх по полю схеми.
6.2.3 Натиснути на позначку і перейти до режиму вводу вхідних і вихідних контактів ієрархічних схем. Ієрархічний принцип проектування ілюструється рис. 6.8.
Ввести до складу схему вхідні і вихідні ієрархічні контакти, визначивши їхній тип і ім’я.
Рис. 6.8
6.2.4 Натиснути на позначку , перейти в режим вводу зв’язків, зробити необхідні з’єднання на схемі, подібні до наведених на рис. 6.9.
Рис. 6.9
6.2.5 Присвоїти імена усім зв’язкам на схемі. Це можна зробити двома шляхами.
При закінченні малювання будь-якого зв’язка натиснути праву клавішу миші. З меню обрати режим AddLebel…. У вікні (рис. 6.9) задати ім’я зв’зку і натиснути позначку OK.
За допомогою позначки перейти до режиму вибору. Двічі клацнути лівою клавішою миші на потрібному зв’язку. У вікні (рис. 6.10) задати ім’я зв’зку і натиснути позначку OK.
Рис. 6.10
6.2.6 Аналогічно введеню поодиноких зв’язків і їхніх імен здійснюється введеня до складу схеми шин і присвоєння імен шин. Перехід до режиму малювання шин здійснюється натисненням позначки . Під’єднання до шини окремих контактів здійснюється після натискання позначки . Рис. 6.11 ілюструє використання шин і елементів з шинними входами і виходами, а рис. 6.12 - вікно завдання імені шини.
Рис. 6.11
Рис. 6.12
6.2.7 Створення макроелемента і його занесення до бібліотеки здійснюється таким чином:
обрати команду роботи з ієрархічними структурами Hierarchy;
з меню команди Hierarchy обрати і виконати команду Create Macro Symbol from Current Sheet…, яка створює макроелемент з даного аркуша (екрана) схеми;
у діалоговому вікні задати ім’я символа і натиснути позначку OK.
Після цього утворюється власна бібліотека користувача і до неї заноситься новостворений макроелемент. Такий елемент можна тепер використовувати нарівні з іншими бібліотечними елементами.
Розкривати внутрішню схему ієрархічного елемента можна після натиснення позначки пересування по рівням ієрархії . Після цього, двічі клацнувши лівою клавішою миші на обраному ієрархічному елементі, можна перейти до аркуша з його внутрішньою схемою або описом (перехід по ієрархічним рівням вниз). Повернення на верх здійснюється після натискання правої клавіши миши і обрання режиму Hierarchy Pop.
6.2.8 Запам’ятовування розроблених файлів здійснюється:
під новим ім’ям або перший раз – вибором меню File/Save As… . Після цього у вікні, що відкриється, треба задати бажане ім’я файла, який треба запам’ятати, каталог, у якому це треба зробити, і натиснути клавішу OK;
запам’ятовування під старим ім’ям – натисканням позначки .
6.2.9 Документування (роздрук) розроблених схем здійснюється створенням відповідних PDF-файлів, які потім можуть бути роздруковані на доступному прінтері. Для цього необхідно обрати такі команди меню:
File/Print….
Після цього у вікні, що відкриється, за допомогою позначки Setup перейти до вікна вибору прінтера, обрати тип прінтера Acrobat PDFWriter або Acrobat Distiller. Натисканням клавіші Options… перейти до вікна завдання режимів роботи прінтера і встановити формат аркуша A4. Після чого запустити обраний прінтер на друк.
6.2.10 Провести поведінкове (функціональне) моделювання схеми для знаходження помилки в її роботі. Для цього послідовно виконати команди:
перейти до режиму поведінкового (функціонального) моделювання:
при находженні у графічному редакторі натиснути клавішу EMBED MSPhotoEd.3 на лінійці інструментів або
в основному меню пакета натиснути клавішу Simulation (рис. 6.13).
EMBED MSPhotoEd.3
Рис. 6.13
Після цього відкривається вікно моделюючої програми (рис. 6.14);
EMBED MSPhotoEd.3
Рис. 6.14
створити командний файл з завданням на моделювання (сценапрій моделювання). Для цього послідовно натиснути клавіші:
Tools
Script Editor (Create Empty Script)
OK
Після цього здійснюється перехід до текстового редактора, за ддопомогою якого потрібно створити сценарій моделювання, який у загальному вигляді повинен мати наведену нижче структуру (команди сценарія виділені):
| - позначення коментарів
delete_signals | - знищення попередніх результатів
restart | - переведення схеми в початковий стан
set_mode functional | - завдання режиму функціонального моделювання
vector S S[3:0] | - групування двійкових сигналів у шини (вектори)
vector A A[15:0]
vector B B[15:0]
vector F F[15:0]
vector E E[15:0]
radix hex A B S F E | - завдання 16-кової системи числення при виводі даних | сигналів
stepsize 5 ns | визначення тривалості цикла (0 або 1) тактового генератора
clock clk_100m 0 1 | визначення форми сигнала тактового генератора
| далі - завдання значень вхідних сигналів з прив’язкою до часу.
AFTER 0ns DO (assign S 0\h; assign M 0)
AFTER 10ns DO (assign S 0\h; assign A ffff\h; assign e 0000\h; assign M 0)
AFTER 250ns DO (wfm adci_sli (200ns=1 200ns=0)*6) |після 250 нс 6 разів звормувати |послідовні сть імпульсів з тривалістю фаз 200 нс
wfm adci @300ns=1 @800ns=0 | визначення абсолютного часу зміни стану сигналу
watch S A B F E CIN CRIN CO CE CRO CRE ERR | - вивести на індикцію дані сигнали
sim 200ns | - провести моделювання на протязі 200 нс
У лабораторній роботі необов’язково використовувати всі типи наведених вище команд.
Детальний опис найбільш уживаних команд сценарію моделювання наведений у Додатку 1.
Утворений файл потрібно запам’ятати (бажано під ім’ям Simul.cmd), після чого мінімізувати вікно графічного редактора ( _ );
Для моделювання схеми необхідно повернутися у вікно моделюючої програми і послідовно натиснути клавіші:
File
Run Script File…
вказати файл SIMUL.CMD
OK
Після появи на екрані повідомлення
“End of macro file encountered
End of macro file execution”
закрити вікно с повідомленням (Х). На екрані з’являються результати модулювання, приблизний вигляд яких показаний на (рис. 6.15).
Рис. 6.15
EMBED PBrush
Для зменшення або збільшення масштабу зображення по часовій осі необхідно користуватися клавішами EMBED MSPhotoEd.3 .
6.2.11 Після аналізу результатів моделювання зкоректувати командний файл SIMUL.CMD і провести повторне моделювання. Повторити даний процес до підтвердження правильної роботи розробленої схеми.
6.2.12 Документування (роздрук) отриманих часових діаграм здійснюється створенням відповідних PDF-файлів, які потім можуть бути роздруковані на доступному прінтері. Для цього необхідно обрати такі команди меню:
File/Print….
Після цього у вікні, що відкриється, за допомогою позначки Printer перейти до вікна вибору прінтера, обрати тип прінтера Acrobat PDFWriter або Acrobat Distiller. Натисканням клавіші Options… перейти до вікна завдання режимів роботи прінтера і встановити формат аркуша A4. Після чого запустити обраний прінтер на друк.
6.2.13 Під’єднання результатів моделювання до файла текстового редактора Word здійснюється копіюванням часових діаграм до поштової скринькі за допомогою команд
Waveform/Copy Bitmap
з наступним їх під’єднанням до текстового файлу за допомогою команди Paste.
6.3 Створення, поведінкове моделювання і документування макроелемента вузла виправлення помилки (приймача)
Створення, поведінкове моделювання і документування макроелемента вузла виправлення помилки (приймача) здійснюється аналогічно до створення, поведінкового моделювання і документування макроелемента формувача циклічної контрольної суми (передавача) – п.6.2.
6.4 Створення і поведінкове моделювання роботи схеми лінії передачі даних “приймач - передавач”
6.4.1 Створення і логічне моделювання роботи схеми лінії передачі даних “приймач - передавач” здійснюється аналогічно до створення, поведінкового моделювання і документування макроелемента формувача циклічної контрольної суми (передавача) – п.6.2 з деякими особливостями.
6.4.2 Дана схема є схемою найвищого рівня ієрархії, тому всі її вхідні, вихідні і двонаправлені сигнали мають закінчуватися і починатися не їєрархічними з’єднувачами , а вхідними (IPAD), вихідними (OPAD) і двонаправленими (IOPAD) контактами мікросхеми разом з відповідними буферами (IBUF, OBUF) – рис. 6.10. Синхроімпульси повинні подаватися с контактів IPAD ПЛІС на її внутрішні вузли через спеціалізований вхідний буфер IBUFG. Вихід цього буфера під’єднаний до прокладених по всій площі кристала провідників імпульсів синхронізації, що гарантує одночасне надходження цих імпульсів до всіх вузлів ПЛІС.
6.5 Проектування топології кристала
6.5.1 Проектування топології кристала проводиться після отримання задовільних результатів поведінкового моделювання розробленої схеми.
6.5.2 Для переходу в режим проектування топології кристала необхідно повернутися до екрану менеджера проектів (рис. 6.1.4) і натиснути позначку. При першому входженні в даний режим на екрані повинно з’явитися вікно визначення режиму проетування топології, загальний вигляд якого показаний на рис. 6.5.1.
Рис. 6.5.1
6.5.3 У даному вікні потрібно:
встановити тип кристалу, який проектується (Device – XC4013XLABG256);
визначити набір правил, якими буде керуватися програма розробки топології – натиснути позначку .
6.5.4 На екрані повинно з’явитися вікно варіантів (рис. 6.5.2). У цьому вікні можно обрати якість і (або) швидкість проектування топології, а також визначити набір правил проектування топології – натиснути позначку в рядку .
6.5.5 На екрані повинно з’явитися вікно завдання параметрів етапу розкроювання розробленої схеми на частини, кожна з яких може бути реалізована або в одному реконфігурованому логічному блоці (CLB) або в одному блоці вводу-виводу (IOB) – етапу Map (рис. 6.5.3).
6.5.6 Після натиснення позначки на екрані повинно з’явитися вікно завдання параметрів етапу автоматичного розміщення і трасування елементів топології кристала, в якому задається кількість спроб трасування (по замовченню – визначається автоматично), та кількість спроб покращення результатів трасування (по замовченню – 0).
Також в цьому вікні задається режим використання файлу з часовими обмеженнями (Timing Constrains) на трасування.
Швидко
Якісно
Рис. 6.5.2
6.5.6 Після натиснення позначки на екрані повинно з’явитися вікно завдання параметрів етапу визначення часових параметрів розробленої топології (рис. 6.5.4). У верхній частині цього вікна дозволяється оцінка часових параметрів до розведення топології – будуть отримані ідеальні чисельні значення усіх затримок сигналів і робочих частот (для найкращого, недосяжного на практиці варіанта топології). У нижній частині - дозволяється оцінка часових параметрів після розведення топології – будуть отримані реальні чисельні значення усіх затримок сигналів і робочих.
6.5.7 Після завершення завдання варіантів проектування топології необхідно запустити власне процес автомтизованого проектування, натиснувши позначку у вікні 6.5.1.
6.5.8 На екрані повинно з’явитися вікно рис.6.5.5, на якому відображаються етапи процеса проектування топології кристала:
Вилучення елементів схеми, у яких незадіяні входи або виходи
Рис. 6.5.3
Рис. 6.5.4
- розкриття ієрархічних елементів, трансляція схеми у вигляд, зручний для виконання подальших етапів, ...