Лекция No 5 Преглед на архитектурните и схемотехнически особености на съвременните fpga чипове



Дата27.09.2016
Размер119.78 Kb.
#10898

Проектиране на СГИС Лекция No 5

Преглед на архитектурните и схемотехнически особености на съвременните FPGA - чипове
Програмируемите матрични кристали FPGA (Field Programmable Gate Array) представляват засега най-усъвършенствуван вид в развитието на електрически конфигурируемите (програмируемите) интегрални схеми. Те имат най-сложна структура и най-голям брой логически елементи в структурата си от всички досега разгледани видове електрически конфигурируеми интегрални схеми и обикновено са чипове с голяма и свръхголяма степен на интеграция (LSI, VLSI).

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

Многократно програмиране (конфигуриране) на FPGA - чиповете, използвайки SRAM (FLASH) памет.

При тази технология на конфигуриране, използвана често в FPGA - чиповете, програмируемите връзки в чипа се осъществяват с помощта на трансмисионни транзистори, CMOS ключове или мултиплексори също от чипа, управлявани от SRAM клетки пак от чипа, както е показано по-долу:



Фигура 15.



RAM - клетката задава състоянието на трансмисионния транзистор. Когато е запушен, той представлява много голямо съпротивление между двата проводника. Когато се отпуши, се формира относително ниско съпротивление и двата проводника се свързват заедно. При CMOS ключа двата транзистора се отпушват или запушват едновременно. Така се осигурява по-малко съпротивление на ключа и не се понижават логическите нива.

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


По-долу е показана типична архитектура на примерна фамилия от FPGA – чипове:

По-долу е показан относителният обем на паметта, съставена от SRAM- клетките за конфигуриране (означена като Configurable Logic) и отново логическите блокове (CLB), входноизходните блокове(IOB), блоковете за управление на тактовия сигнал (DCM), функционалните блокове (Block Select RAM, Multiplier):



В настоящата лекция ще бъде разгледана по-подробно архитектурата и някои схемотехнически особености на FPGA -чиповете от една представителна, често използвана фамилия – Spartan 3E.


Описание на примерна фамилия Spartan-3E от FPGA – чипове.
Тази фамилия има 5 представителя, които предоставят от 100 000 до 1,6 милиона системни логически елемента. Фамилията Spartan-3E е създадена на основата на Spartan-3. Новите възможности подоборяват производителността и улесняват конфигурирането. Spartan-3E FPGA- чипове се произвеждат по 90nm технология и с по-ниска цена.


  1. Архитектура

Архитектурата на фамилията Spartan-3E включва пет основни програмируеми функционални елемента:

Програмируеми логически блокове (CLBs) реализират множество логически функции както и съхраняване на данни.

Входно/изходни блокове (IOBs) контролират предаването на данни между входно/изходните изводи и вътрешната логика на чипа. Всеки от тези блокове поддържа двупосочно предаване на данни както и трето високоимпедансно състояние.

Блокове RAM предоставя съхраняване на данни под формата на 18 Кbit двупортова памет.

Блокове за умножение на входа си приемат две 18-битови двоични числа и изчисляват тяхното произведение.

Блокове за управление на тактовия сигнал (DCM) предоставят възможност за разпростаняване, закъснение, умножение, деление и дефазиране на тактови сигнали.
Тези елементи са разположени върху чипа както е показано на фигура 1.1. Пръстен от входно/изходни блокове огражда масива от програмируеми логически блокове. Всеки чип има две колони от блокове RAM с изключение на XC3S100E, който има само една колона. Всяка колона RAM съдържа няколко 18-Kbit RAM блока. Всеки блок RAM е свързан със съотведен блок за умножение. Блоковете за управление на тактовите сигнали са 4 и са разположени по два както е показано на фигурата. Чипът XC3S100E има само два такива блока, докато XC3S1200E и XC3S1600E имат допълнително още 4 блока в лявата и дясна част на чипа.

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




фигура 1.1 Spartan-3E архитектура


  1. Конфигуриране

FPGA – чиповете Spartan-3E се програмират чрез зареждане на конфигурационните данни в статични CMOS конфигурационни тригери (CCLs) които контролират всички функционални елементи и връзките между тях. Практика е конфигурационните данни за FPGA се съхраняват извън чипа в PROM или друг тип енергонезависима памет. След включване на захранването конфигурационните данни се записват в FPGA – чипа.




  1. Входно-изходни блокове (IOBs)

Входно-изходните блокове предоставят възможност за еднопосочен или двупосочен интерфейс между пиновете на FPGA – чипа и вътрешната логика. Тези блокове са подобни на блоковете при фамилията Spartan-3 със следните разлики:

• Добавени са изцяло входни блокове

• На всички блокове са добавени програмируеми закъснения

• DDR тригери могат да се споделят между съседните IOB блокове

Едно посочните изцяло входни блокове притежават само част от възможностите на стандартните входно/изходни блокове. Броят на входните блокове е различен за различните чипове, но не надвишава 25% от общия брой входно-изходни блокове.

На фиг.5 е показана опростена схема на вътрешната структура на входно-изходен блок. Има три основни пътища на сигнали през тези блоквое: входен, изходен и с три състояния. Всеки от тези пътища има собствена двойка запомнящи елементи, които могат да служат както за регистри такта и за тригери.



фигура 1.2 Входно-изходен блок
Закъснение на входно-изходните сигнали
Всеки входно/изходен блок има блок за програмируемо закъснение на сигнала. На Фиг. 1.3 са показани елементите за закъснение:


  • един с голямо закъснение, който може да бъде включен или излключен;

  • 6 елемента с по-малко закъснение управлявани поотделно от мултиплексор

Това дава възможноста за изменение на закъснението в 12 стъпки. Стойността на закъснение се задава при конфигурирането на FPGA – чипа и не може да се изменя по време на работа. Основното приложение на това закъснение е да се компенсира закъснението между входните сигнали. Стойността по подразбиране на тези закъснения се определя от развойния софтуер Xilinx ISE и се посочва в MAP рапорта.



фигура 1.3 Програмируеми закъснители

Има три двойки запомнящи елементи във всеки входно/изходен блок, по една двойка за всеки път. Възможно е всяка от тези двойки да бъде конфигурирана като D – тригер (управляван по фронт или по ниво).




  1. Програмируеми логически блокове (ПЛБ)

Програмируемите логически блокове (CLBs) са основните логически ресурси за реализиране на комбинационни или синхронни схеми. Всеки блок съдържа 4 дяла (slice), всеки дял съдържа две функционални таблици (Look-Up Tables (LUTs)) и два запомнящи елемента. Функционалните таблици могат да се ползват като памет 16х1 (RAM16) или като 16 – битов преместващ регистър (SRL16). Допълнителните мултиплексори и логика за управление на преноса улесняват реализацията на множество аритметични и логически функции. Повечето логически функции с общо предназначение в проекта автоматично се реализират чрез дяловете (slices) от програмируемите логически блоквое.


Масив от програмируеми логически блокове
Програмируемите логически блокове в FPGA чипа са подредени в двумерен масив както е показано на фигура 1.4.



фигура 1.4 Разположение на програмируемите логически блокове


фигура 1.5 Схема на програмируем логически блок


Дялове на ПЛБ (slices)
Всеки програмируем логически блок съдържа 4 дяла като показания на Figure 1.6. Тези дялове са групирани в двойки, всяка двойка е организирана като колона със самостоятелна верига за пренос. Лявата двойка дялове изпълнява както логически функции така и функции на памет (SLICEM). Дясната двойка може да изпълнява само логически функции и се нарича SLICEL. SLICEL заема по-малко място върху силициевия кристал и съответно намалява цената на FPGA – чипа, като същевременно има по-голяма производителност в сравнение с SLICEM.

фигура 1.6 Разположение на дяловете в един ПЛБ

Софтуерът за разработка идентифицира дяловете по техните Х и У координати започвайки от долния ляв ъгъл (фигура 1.6).



фигура 1.7 Ресурсите в един дял (Slice)



  1. Блокове RAM

Чиповете Spartan-3E имат от 4 до 36 блока RAM, които са организирани като двупортови конфигурируеми 18Кбитови блокове. Функционално тези блокове памет са идентични като тези в чиповете Spartan-3. Блоковете RAM се ползват за синхронно съхраняване на голям обем данни, докато разпределената памет RAM, е по-добра за буфериране на малки обеми данни навсякъде по пътищата на сигнала. Всеки блок RAM може да бъде конфигуриран чрез запис на данни, режим на работа. Тези блокове може да се използват като еднопортова и двупортова.


Вътрешна структура на блоковете RAM
Блоковете RAM имат двупортова структура. Двата порта наречени А и В позволяват независим достъп до общия блок RAM, който има капацитет 18,432 бита, или 16,384 бита без битовете за четност. Всеки порт има собствен набор от сигнали за синхронизация, четене и запис. Има 4 основни потока от данни както е показано на фигура 1.8:

1. Четене и запис чрез порт A

2. Четене и запис чрез порт B

3. Предаване на данни от порт A към порт B

4. Предаване на данни от порт B към порт A


фигура 1.8 Блок RAM - потоци от данни
Всеки порт на блоковете RAM може да бъде конфигуриран да приема различна дължина на думата която записва (DI) или чете (DO) от паметта. Ако дължината на думата на двата порта е различна, блокът памет автоматично съвместява двете думи.

Умножители
Чиповете Spartan-3E имат от 4 до 36 умножителя, разположени заедно с блоковете RAM в една или две колони, в зависимост от конкретния чип.

Умножителите основно изпълняват умножение на две двоични числа, но могат също да изпълняват и други функции като съхраняване на данни или преместване. Логическите блокове също могат да реализират умножение.Блоковете за умножение на фамилията Spartan-3E имат допълнителни възможности в сравнение с тези от фамилията Spartan-3. Всеки умножител пресмята израза P=A×B, където ‘A’ и ‘B’ са 18-битови думи, а ‘P’ е 36-битовото произведение. А и В могат да представят числа от -131,07210 до +131,07110, а произведението - от -17,179,738,11210 до +17,179,869,18410.

Умножение на числа с по-малка разрядност се реализира чрез разпространение на знаковият бит. Умножението на числа с по-голяма разрядност се извършва чрез обединяване умножител и дялове от логически блокове, или чрез време делене на един умножител.
Регистри
На фигура 1.9, всеки умножител има регистри за всеки вход и за изхода. Регистрите са наименовани AREG, BREG, и PREG. Тактовият сигнал е общ за всички регистри в умножителя, но всеки регистър има независим сигнал за разрешение на тактовия сигнал и синхронен сигнал RESET, което прави тези регистри удобни за съхраняване на малки обеми данни.

фигура 1.9 Умножител - портове и функционалност

За да се инстанцира умножител в дизайна трябва да се използва MULT18X18SIO (фигура 1.10). При подаване на ‘1’ на AREG, BREG, или PREG добавя съответния регистър към умножителя, а ако се подаде ‘0’ се премахва съответния регистър и схемата става комбинационна.




фигура 1.10 Примитив MULT18x18SIO

Каскадно свързване на умножители

Примитивът MULT18X18SIO има два допълнителни порта наречени BCIN и BCOUT, които служат за каскадно свързване на няколко умножителя. 18-битовият BCIN входен порт предоставя алтернатива на стандартния входен порт ‘В’. Параметърът B_INPUT избира дали да се използва BCIN или ‘B’. Задавайки B_INPUT = DIRECT се избира входа ‘B’. Ако се зададе B_INPUT = CASCADE, избран ще бъде входът BCIN. BCOUT е 18-битов изходен порт, който винаги приема стойността на втория операнд на умножителя, независимо дали е избран входен порт ‘В’ или BCIN.



фигура 1.11 Четири възможни режима за вход В

Връзка между умножителите и блоковете RAM
Всеки умножител е разположен в съседство с блок RAM 18 Kbit и споделя с тази памет общи връзки. Ако се конфигурира 18 Kбитовият блок RAM за 36-битови думи (512 x 36), няма да е възможно използването на съответния умножител. Старшите 16 бита от множимото ‘A’ са споделени със старшите 16 бита на входа за данните на порт А на блока RAM. Същото е и за множителя ‘В’.


  1. Блокове за управление на тактови сигнали (БУТС )

Блоковете за управление на тактови сигнали в чиповете Spartan-3E предоставят възможност за пълен контрол над честотата, фазата и несиметричността на тактовите сигнали. За да изпълнява тези функции се използва Delay-Locked Loop (DLL), което представлява цифрово управлявана систама за контрол на закъснението, използваща обратна връзкаa за да осигури тактов сигнал с прецизно зададени характеристики. Блоковете за управление на тактовите сигнали изпълняват три основни вункции:

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

Генериране на честоти: Блоковете за управление на тактовите сигнали могат да генерират сигнали с широк спектър от честоти, получени от входния тактов сигнал чрез деление или умножение на входната честота.

Фазово отместване: Блоковете за управление на татковите сигнали могат да дефазират всички изходни сигнали спрямо входния.

Блоквоте за управление на тактовите сигнали съдърва четири взаимосвързани функционални единици:



  • Управление закъсненията Delay-Locked Loop (DLL);

  • Генератор на честоти Digital Frequency Synthesizer (DFS);

  • Управление на фазата Phase Shifter(PS);

  • Схема за следене на състоянието Status Logic.

Всеки от тези компоненти има собствени сигнали (фигура 1.12).


фигура 1.12 БУТС – функционални блокове и сигнали


фигура 1.13 Управление на закъсненията – опростена функционална диаграма



  1. Вътрешни връзки

Вътрешните връзки представляват мрежа от лигнални линии между входовете и изходите на функционалните елементи в FPGA – чипа, като входно/изходни блокове, програмируеми логически блокове, блокове за управление на тактовите сигнали и блоковете RAM памет.

Функционално, вътрешните връзки са идентични с тези на чиповете oт фамилията Spartan-3. Има четири типа връзки: дълги линии, шесткратни линии, двойни линии и директни линии.
Превключващи матрици
Свързани са с различните типове връзки в чипа. Комбинацията от превключваща матрица и функционален елемент (CLB, IOB, или DCM) представлява възел от комуникационната мрежа от вътрешни връзки в FPGA - чипа. Ако функционалният елемент взаимодейства с повече от една превключваща матрица (както блоковете RAM), тогава комуникационният възел обхваща функционалния елемент и всички превключващи матрици, които ползва.


фигура 1.14 Четири типа комуникационни възли

Един чип от фамилията Spartan-3E може да се разглежда като масив от комуникационни възли, където комуникационните ресурси служат за реализиране на хоризонтални и вертикални канали между всеки два възела, както е показано на схемата.



фигура 1.15 Масив от комуникационни възли в FPGA-чип Spartan-3E




фигура 1.16 Типове връзки между комуникационни възли





Каталог: KST%202%20kurs%20Mag -> 2%20sem -> PSGIS -> Lekcii
Lekcii -> Лекция №2 Проектиране на сгис
Lekcii -> Интегрални Схеми. Определения. Процеси на проектиране и производство. Основни елементи и технологии
Lekcii -> Лекция №4 Проектиране на сгис памети в компютърните системи архитектура, логически и схемотехнически характеристики
Lekcii -> Лекция No7 Основни типове данни и операции при vhdl описания на цифрови устройства. Реализа
PSGIS -> Проектиране на сгис упражнение No 6
Lekcii -> Стъпки в процеса на проектиране на цифрови устройства върху конфигурируеми чрез маски сгис. Пример за проектиране “отгоре-надолу”


Сподели с приятели:




©obuch.info 2024
отнасят до администрацията

    Начална страница