1.3 Пайдаланушы бағдарлайтын вентилді матрицалар
Пайдаланушы бағдарлайтын вентилді матрицалар (FPGA, Field
Programmable Gate Arrays) топологиясы жағынан арналы GA құрылымдарына
ұқсас келеді. Олардың ішкі аймағында, араларында жол жүргізу арналары
ескерілген, көптеген бірдей құрылымды, конфигурацияланатын логикалық
блоктардың (LB, Configurable Logic Block) реттелген жинамы, ал кристалл
перифериясында енгізу/шығару блоктары (IOB, Input/Output Blocks)
орналасқан.
FPGA қасиеттері мен мүмкіндіктері алдымен олардың құрамындағы LB
сипатына және арабайланыс жүйесіне байланысты.
1.3.1 FPGA құрамындағы логикалық блоктар
FPGA құрамындағы LB ретінде келесі құрылымдар пайдаланылады:
транзистор жұптары;
қарапайым логикалық ЖӘНЕ-ЕМЕС, НЕМЕСЕ-ЕМЕС вентилдері
(SLC, Simple Logic Cells);
мультиплексорлар негізіндегі логикалық модулер;
PROM негізіндегі логикалық модулер (LUT, Look-Up Tables).
LB-ның маңызды сипаттамаларына оның “түйіршіктілігі” (Granularity)
мен “іскерлігі” (Functionality) жатады. Біріншісі қажетті сұлбалар
“жиналатын” бөліктемелердің “уақтылығы” қандай болатындығымен, ал
екіншісі LB-ның логикалық мүмкіндігінің қаншама үлкен болатындығымен
байланысты.
20
LB-ның уақтүйіршіктілігі шығарылатын функцияларды әртүрлі тәсілмен
жүзеге асыруға кең мүмкіндік береді, бірақ кристалда бағдарламалы байланыс
нүктелерінің көп болатындығынан, ол FPGA-ның арабайланыс жүйесін
күрделендіреді.
Ірітүйіршікті LB-ларда күрделірек функциялар жүзеге асырылады,
сондықтан арабайланыс бағдарлануын жеңілдетеді. Триггерлі жадымен
реконфигурациялатын FPGA-да, әдетте, ірітүйіршікті блоктар қолданылады.
р- және n-арналы транзисторлар тізбесі түрінде құрылған, ал олардың
арасына жол жүргізу арналары орналастырылған, ең уақтүйіршікті LB
Crosspoint Solutions фирмасының микросұлбаларында пайдаланылады (1.4-
суретті қара). Өткізгіштігі әртүрлі транзистор жұптарынан КМТШ–
сұлбаларындағы жиналым тәсілдері дәстүрлі, логикалық элементтер
жиналады.
1.4 Сурет
1.5, а-суретте F = x1x2Vx3x4 функциясын жүзеге асырушы
арабайланыстар көрсетілген. Үзбе сызықты төртбұрыштардағы транзисторлар
жұбының жаппаларына берілген тұрақты кернеулер оларды жабық жағдайда
ұстайды, сондықтан олар транзисторлар тізбесін бір-бірінен оқшауланған
бөліктерге бөледі. ЖӘНЕ-ЕМЕС түрінде жиналған (1.5, б-суретті қара) үш
сұлбаның суретте көрсетілген өзара жалғануы (1.5, в-суретті қара) қажетті
нәтижеге әкеледі.
21
1.5 Сурет
Түйшіктері ірілеу келетін LB Actel фирмасының ACT микросұлба-
ларында пайдаланылады. 1.6, а-суретте АСТ1 микросұлбасындағы, үш “2 – 1”
мультиплексорынан және НЕМЕСЕ элементінен тұратын LB көрсетілген. Бұл
блоктың іскерлік сипаттамасы келесі түрде болады:
)
B
VS
B
S
)(
VS
V(S
)
S
VS
S
S
)(
VS
S
(
F
1
B
0
B
1
0
1
A
0
A
1
0
.
1.6 Сурет
Бұдан да ірірек LB Spartan фирмасының ХС4000Е микросұлбаларында
пайдаланылады (1.7-суретті қара). Оның негізін үш кестелі логикалық
түрлендіргіш (G, F және Н), бірнеше бағдарламамалы мультиплексор мен екі
триггер қалайды.
22
1.7 Сурет
Кестелі түрлендіргіштер (LUT-блоктар) PROM түрінде құрылған, логи-
калық функцияның аргументтері оған адрес ретінде пайдаланылады. Логии-
калық G және F түрлендіргіштері (ұйымдастырылымы 16х1, бағдарламалы
жады блоктары) 4-аргументті функцияларды шығарады да, олардың шығыс
сигналдарын Y және X шығыстарына 4 және 6 мультиплексорларының сәй-
кесті бағдарлануымен тікелей жіберуге болады немесе оларды өзгеше пайда-
лануға болады. 1 және 2 мультиплексорларын төменгі кірістерінен жіберуге
бағдарлау арқылы, G және F түрлендіргіштерінің шығыстарын Н
түрлендіргішінің кірістеріне беріп, “функциядан функция” өндіру арқылы
аргументтер саны төрттен көбірек болатын нәтижелік функция алуға болады.
1 және 2 мультиплексорларын өзгеше бағдарлау арқылы Н түрлендіргішін
жеке функция генераторы ретінде пайдалануға болады.
Блок кірістеріне тұрақтылар мен кіріс айнымалыларының берілім
бағытын өзгерте отырып, көптеген ауыстырым функцияларын жүзеге асыруға
болады. Мысалы, блок кірістеріне тұрақтылар мен айнымалыларды 1.6, б-
суреттегідей берсек,
c
abV
F
функциясын аламыз.
LB-ның ішкі сұлбаларын басқаруға жіберілетін HI, DIN, SR, ЕС
сигналдары мультиплексорлар тобы арқылы сыртқы басқару желісіндегі
С1...С4 сигналдарынан қалыптастырылады. 3...6 мультиплексорлары қажетті
басқару деректерін 1 және 2 триггерлеріне бағыттайды.
Триггерлерді тактілеу сигналының активті фронтын 7 және 8 мульти-
плексорларымен өзгертуге және тактілеуге рұқсат беруші ЕС сигналын 9 жә-
не 10 мультиплексорларымен бағдарлауға болады. Триггерлердің асинхронды
23
қойылым және тазартылымкірістері триггеров (SD – Set Direct и RD – Reset
Direct) S/R коммутаторы арқылы С1...С4 сигналдарынан анықталады.
1.3.2 FPGA-ның енгізу/шығару блоктары
1.8-суретте көрсетілген, ХС4000Е микросұлбасының құрамындағы енгі-
зу/шығару блогы (Input/Output Block) оның сыртқы шықпалары мен ішкі логи-
калық сұлбаларының арасындағы интерфейсті қамтамасыз етеді. Микросұлба-
ның әрбір шықпасын кіріс, шығыс немесе қосбағытты шықпа ретінде құруға
болады.
Блоктың сигналдарды енгізуге және шығаруға арналған екі жіберім
трактісі
болады.
Әрбір
трактіде
сигналдарды,
7
және
4
мультиплексорларының бағдарлануымен, тікелей немесе триггерде бекіту
арқылы жіберуге болады. Шығарылатын сигналдың тура немесе теріс
жіберілуі 2 мультиплексорымен қойылады.
Енгізілетін немесе шығарылатын сигнал қосылмаған шықпаларға (яғни,
1 буферінің үшінші жағдайға ауыстырылғанында) нақтылы потенциалдар
беру Pull-Up/Pull-Down сұлбасымен жүргізіледі, ол ажыратылған шықпаның
потенциалын жоғарғы деңгейге көтереді немесе оны нөл нүктесіне қосады.
Бұл варианттардың арасындағы таңдалым U/D (Up/Down) сұлбасындағы
конфигурация жадысының элементтерімен бағдарланады. Фронт тіктілігін
өзгерту (Slew Rate) SLR сұлбасындағы сәйкесті жады элементін бағдарлаумен
іске асырылады.
1.8 Сурет
Триггерлердің кірістік және шығыстық синхросигналдарының (CLKI
және CLKO) бағытын да сәйкесті мультиплексорлармен бағдарлауға болады.
Триггерлерді деңгеймен немесе фронтпен тактіленетін етіп құруға болады.
Сигналдың 2 триггерге жіберілетін жолына кідіріс элементтерін орналастыру
(сигналдың 8 мультиплексорының төменгі кірісі арқылы жіберілгенінде)
сигналдар арасындағы қажетті уақыт қатынасын қамтамасыз етеді.
24
1.3.3 FPGA-ның арабайланыс жүйелері
FPGA-дағы байланыс жолдары әдетте сегменттерге (кілттер болмайтын
бөліктерге) бөлініп құрылады да, қажетті байланыс осы сегменттерді өзара
бағдарламалы байланыс элементтерімен (кілттермен) жалғау арқылы жүзеге
асырылады. Арабайланыс жүйесі иерархиялық сипатпен құрылады, онда
сегменттердің бірнеше түрі (негізгі байланыстар, екі есе ұзындықты жолдар,
жуық блоктардың арасындағы тура жолдар, кристалдың ана шетінен мына
шетіне созылған ұзын жолдар) болады.
Actel фирмасының FPGA-ларының логикалық блоктары горизонталь
қатармен орналастырылып, олардың арасында жол жүргізу арналары
қалдырылған. Арналарда ұзындығы әртүрлі горизонталь сегменттер
орналасқан. LB мен жол арналары арқылы вертикаль сегменттер өтеді. Әрбір
LB кірісі мен шығысы жуық жердегі жеке вертикаль сегменттерге қосылған.
Сегменттердің әрбір қиылысында оларды өзара жалғауға мүмкіндік
беруші бағдарламалы жалғамдар ескерілген. Бұндай байланыс жүйесі LB-
ларды өзара әртүрлі варианттармен қосуға мүмкіндік береді.
1.4
Бағдарламалы күрделі логикалық сұлбалар
Бағдарламалы
күрделі
логикалық
сұлбалар
(CPLD,
Complex
Programmable Logic Devices) архитектурасы жағынан PLD (PAL, GAL) құры-
лымдарынан шыққан. Оның құрамында (1.9-суретті қара), саны микросұл-
баның жиналым деңгейіне байланысты, көптеген іскерлік блоктар (FB,
Functional Blocks), бағдарламалы байланыс матрицасы (PIA, Programmable
Inerconnect Array) және кристалдың перифериясына орналастырылған енгі-
зу/шығару блоктары (IOBs, Input/Output Blocks) болады. Әрбір іскерлік блокта
бірнеше макроұяшық (MC, Macrocells) болады. PIA іскерлік блоктардың өзара
жалғанымындылығын, яғни оларға кіріс сигналдарының түсуімен қатар,
шығыс сигналдарының PIA-ға да (кері байланыс ұйымдастыру үшін), в IOBs-
қа да (құрылғыдан шығаруға) жіберілуін толықтай қамтамасыз етеді.
Енгізу/шығару блоктары, бағдарлануына байланысты кіріс немесе
шығыс ретінде пайдаланылатын, сыртқы қосбағытты шықпалармен (I/О,
Input/Output)
байланысқан. Кейбір шықпалар іскерлік блоктардың
матрицасына
жалпы
тактілеу
(GCK,
Global
Clocks),
жалпы
қойылым/тазартылым (GSR, Global Set/Reset) және шығыс буферлерінің
үшінші жағдайын жалпы басқару (GTS, Global 3-state Control) сигналдарын
қоюға арналған.
CPLD құрамында суретте көрсетілген блоктардан басқа бағдарлау
операцияларын тікелей жүйеде басқаруға арналған контроллерлер (ISP, In
System Programmability), JTAG интерфейсімен жұмыс істеу контроллерлері
және т.б. болуы мүмкін.
25
1.9 Сурет
1.4.1 CPLD-ның іскерлік блоктары
Классикалық PLD құрылымындағы сияқты, CPLD-ның іскерлік
блоктарында, кірістеріне түскен айнымалылардан конъюнктивті термдер
тудыратын, көпкірісті (wide) бағдарламалы ЖӘНЕ элементтерінің матрицасы
(М
AND
), өндірілген термдер арасында таралатын, НЕМЕСЕ элементтерінің
тобы және құрылымның іскерлік мүмкіндіктерін байытушы (алдында
қарастырылғандай) қосымша элементтер болады.
CPLD құрылымындағы НЕМЕСЕ элементтерінің матрицасы PAL
құрылымындағыдай, бекітілген болса да, бұнда өндірілетін функциядағы
термдер санын құбылту мүмкіндіктері ұлғайтылған, мысалы, функция
өндіріліміне қажетті темдерді басқа арнадан алу немесе оған беру
мүмкіндіктері ескерілген.
Термдердің FB арналарының арасындағы таралымы, термдер тарату
матрицасының құрамына кіретін (TAM, Terms Allocation Matrix), тізбекті
және параллель түрлі логикалық кеңейткіштер арқылы жүзеге асырылады.
Тізбекті логикалық кеңейткіштер осы арнадағы термнің теріс мәнін қайтадан
М
AND
матрицасының кірістерінің біреуіне беру арқылы құрылады да, бұл
термді енді арналардың барлығында да пайдалануға болады. Параллель
кеңейткіш бір арнаның термдерін екіншісіне жіберуге мүмкіндік береді.
Термдер TAM-нан әрі негізін бағдарламалы мультиплексорлар мен
триггер (немесе триггерлер) қалайтын, макроұяшықтарға (MC, Macrocell)
түседі де, оларда іскерлік блоктардың шығыс сигналдарының әртүрлі
26
варианттағы топтарын (тура немесе теріс сигналдар, қиыстырма шығыс
немесе регистрлік шығыс және т.б.) қалыптастырады.
1.10-суретте Xilinx фирмасының CPLD түрлі XC9500 микросұлбасының
макроұяшығының құрамы көрсетілген.
M
AND
матрицасында өндірілген және ақырғы түрінде TAM арқылы
жиналған термдер логикалық функциияның құрылуы үшін НЕМЕСЕ
элементіне түседі. Жеке термдер арқылы триггерді басқару сигналдары PTSet,
PTClock, PTReset және енгізу/шығару блогының буферінің үшінші жағдайын
басқаруға арналған РТОЕ сигналы өндіріледі.
1.10 Сурет
НЕМЕСЕ элементінің шығысында өндірілген ДНФ түріндегі
функцияның мәні одан әрі екілік қосу (М2) элементі арқылы жіберіледі. Бұл
элемент өндірілген функцияны тура немесе теріс түрінде жібереді.
Микросұлба шығысына функцияның өндірілген мәнінің тікелей
жіберілуі (қиыстырма шығыс) әлде триггерде алдыңғы тактіде сақталған
мәнінің жіберілуі (регистрлік шығыс) MUX5 мультиплексоры арқылы
бағдарланады. Триггердің тактілену сипаты MUX4 мультиплексорының
бағдарлануымен анықтап, оған жалпы синхросигналды (GCK, Global Clock)
немесе терм арқылы тудырылатын PTClock сигналын пайдалануға болады.
Триггердің асинхронды қойылымы мен тазартылымының жалпы сигналмен
(GSR, Global Set/Reset) әлде терм арқылы тудырылатын PTSet и PTReset
сигналдарымен жүргізілуі MUX2 және MUX3 мультиплексорларының
бағдарлануымен анықталады. Триггердің өзі кідіріс (D түрлі) немесе санау (Т
түрлі) режиміне бағдарланады.
27
Макроұяшықтың негізгі шығыс сигналын, оны жан-жақты таратуға
мүмкіндік беретін PIA-ға, немесе оны шығыс сигналы ретінде тікелей IOB-қа
жіберуге болады.
1.4.2 CPLD-ның енгізу/шығару блоктары
Енгізу/шығару блоктары микросұлба шықпаларын оның ішкі
тізбектерімен байланыстырады. Мысалға Xilinx ХС9500 микросұлбасының
құрамындағы енгізу/шығару блогын қарастырайық (1.11-суретті қара).
1.11
Сурет
IOB негізін екі буфер – кірістік (1) және шығыстық (2) қалайды. Кіріс
буферіне түсетін кернеу деңгейлерінің тұрақтылығы мен олардың кіріс
сигналдарының амплитудасына тәуелсіздігі екі бекіту диодынан тұратын
тізбекпен қамтамасыз етіледі.
Бағдарланымды ортақ нүкте сұлбасы (PCP, Programmable Common
Point) пайдаланушының қажетті жағдайда қосымша “жерге қосылған” шықпа
құруы арқылы микросұлбадағы бөгеуіл деңгейін кемітіп, оның жұмыс
сапасын көтеруіне мүмкіндік береді.
Шықпаға оның жұмыстан тыс режимінде қосылатын бағдарланымды
резистор (PR, Programmable Resistor) онда қалқыма потенциал тумауы үшін
қойылады.
Шығыс буферіне 2 жұмысына рұқсат беру ОЕ және шығыс кернеуінің
тіктілігін басқару (SRC, Slew Rate Control) сигналдары түседі. ОЕ сигналын
бағдарланымды мультиплексор MUX3 арқылы бірнеше вариантта өндіруге
болады: макроұяшықтан алынатын РТОЕ термінен, үшінші жағдайды
басқаратын жалпы GOE1 немесе GOE2 сигналдарынан, 1 және 0
тұрақтыларынан. Үшінші жағдайды басқарушы жалпы сигналдар бастапқы
28
GTS1 және GTS2 сигналдарының кез келген бағытын қою мүмкіндігімен
құрылады.
1.4.3 CPLD-ның байланыс жүйелері
Қалыпты FPGA құрылымындағы сегментті байланыс жүйесінен ерекше
CPLD құрылымында үздіксіз байланыс жүйесі пайдаланылады және бұндағы
байланыстардың барлығы бірдей болады да, сигнал кідірістерін дұрыс
болжауға мүмкіндік береді.
Кез келген FB шығысы басқаларының кірістерімен PIA арқылы
байланыстырылады.
FB кірістері PIA құрамындағы барлық вертикаль жолдармен қиылысқан
горизонталь жолдарға байланысқан. Кез келген кірісті кез келген шығысқа
вертикаль және горизонталь жолдардың арасындағы байланыс нүктелерін
бағдарлау арқылы қосуға болады. Өзгеше айтқанда, PIA блоктардың толықтай
қосылымдылығын қамтамасыз етеді. FB-нің өзінің ішінде, қажетті ішкі
байланыстарын жүзеге асырушы, жергілікті байланыс жүйесі болады.
1.5
Қиыстырма архитектуралы БЛЖС
БЛЖС архитектурасының дамуы FPGA және CPLD ұтымдылықтарын
біріктірген қиыстырма құрылымдарға әкелді. Бұндай архитектураларға Altera
фирмасының FLEX (Flexible Logic Element matriX) микросұлбаларын
келтіруге болады. Күрделілігі аса жоғары микросұлбаларды CPLD және FPGA
сипаттарын біріктірген архитектурамен ғана емес, жаңа ерекшеліктер енгізуші
айрықша архитектуралармен құрылады. 1.12-суретте конфигурациясы
триггерлік жадымен берілетін FLEX 10K микросұлбасының құрылымы
келтірілген.
FLEX 10K микросұлбасының құрамындағы логикалық блоктардың
құрамында жергілікті PIA (LPIA, Local PIA) және кестелі түрдегі логикалық
элементтер (LE, Logic Element), жалпы PIA (GPIA, Global PIA) жолдары мен
бағаналары және оларға қосылған енгізу/шығару элементтері (IOE,
Input/Output Elements) орналастырылған. Бұлардан басқа, микросұлба
құрамында қайтақұралымды жады модулдері (EABs, Embedded Array Blocks)
болады.
29
1.12 Сурет
1.5.1 Логикалық блок
FLEX микросұлбаларында деректерді логикалық түрлендіру құралдары
екі деңгеймен жүргізілетіндей етіп жүзеге асырылған. Логикалық
операцияларды орындаушы ең кіші құрылым бірлігіне логикалық элемент
(LE, Logic Element) жатады. Сегіз LE тобы логикалық блок (LAB, Logic Array
Block) құрады. Логикалық блоктар келесі иерархия деңгейіндегі жеке
құрылым бірліктері ретінде пайдаланылады (1.13-суретті қара)
.
1.13 Сурет
Логикалық
блок
LUT
түрлі
төрткірісті
кестелі
қызметтік
түрлендіргіштен (FG-4) (сыйымдылығы 16 бит жады), алмастыру сұлбасынан
(Car, Carry Circuit), каскадтау сұлбасынан (Cas, Cascading Circuit),
бағдарланымды триггерден, триггер тазартылымын/қойылымын басқару
сұлбасынан және бірнеше бағдарланымды мультиплексордан тұрады.
Қызметтік түрлендіргіш FG-4 үш айнымалылы екі функция өндіруге де істей
30
алады (16 бит жады бұл жағдайда 8 биттен тұратын екі блокқа таралады).
Олардың біреуі – санауыштар немесе тізбекті тасымалды қосуыштар сияқты
сұлбаларға қажет болатын тасымал функциясы.
Каскадтау тізбесі аргументтер саны төрттен көбірек функциялар алуға
қолданылады. Мысалы, көршілес үш LE арқылы кішігірім функцияларды
өндіріп, сосын каскадтау тәсілімен осы функциялардан ақырғы нәтиже
қалыптастыруға болады (1.14-суретті қара).
Көпайнымалылы функцияны кері байланыс пайдалану арқылы алуға да
болады. Бұл кезде алдымен төрт айнымалылы бір функция өндіріліп, сосын ол
келесі LE кірістерінің біреуі ретінде енгізіледі және т.б. Нәтижесінде аргумент
саны төрттен жоғары болатын “функциядан функция” есептеледі (1.15-суретті
қара).
1.14 Сурет
1.15 Сурет
Қарастырылушы микросұлбадағы (1.13-суретті қара) триггер D, T, RS,
JK триггерлерінің бір түрі ретінде істей алады. Бағдарлау арқылы триггерге S
және R арқылы асинхронды әрекет жасаудың бірнеше режимін (тазартылым,
қойылым, енгізудің әртүрлі варианты) қоюға болады.
31
Триггерді FG арқылы өндірілген функцияның мәндерін бекіту үшін
немесе D жолдарының біреуінен тікелей қабылдайтын жеке элемент ретінде
пайдалануға осы жолдағы мультиплексор арқылы бағдарлауға болады.
Логикалық
элементтің
шығыс
сигналын
бағдарланымды
мультиплексорлар арқылы жалпы және жергілікті арабайланыс матрицасына
қиыстырма (триггерді айналып өтетін ) вариантында немесе регистрлік
шығыстардан (триггерден) беруге болады.
1.5.2 Енгізілген жады блоктары
FLEX 10K микросұлбаларының құрамына жалпы сыйымдылығы 6 ... 20
Кбит шамасындағы қайтақұрастырмалы жады матрицалары енгізілген (EABs,
Embedded Array Blocks). Олар сыйымдылығы 2 Кбит жеке блоктар түрінде
орналастырылған.
EAB құрамында орналасқан жады модулін 2048х1, 1024х2, 512х4 және
256х8 түрінде ұйымдастырып, оны деректерді сақтауға ғана емес, онымен қа-
тар аргумент саны 8–10 болатын күрделі функцияларды жүзеге асырушы кес-
телі функциялық түрлендіргіш (FG, Function Generator) ретінде пайдалануға
болады. Мысалы, ЕАВ блоктары арқылы тезәрекетті арифметикалық-
логикалық құрылғы АЛҚ, 4x4 көбейткіштері және т.б. құрылады.
Сыйымдылығы жоғарырақ жады блоктарын құру үшін жеке EAB блоктарын
біріктіруге болады. Жады блоктары кристалда сұлбаның логикалық бөлігімен
бірге орналасқандықтан, бұндай жадымен жұмыс істеу өте тез жүргізіледі.
1.16 Сурет
Енгізілген жады блоктарының құрылымында (1.16-суретті қара)
RAM/ROM түріндегі жады модулінен басқа бірнеше синхронды D-триггер
32
мен бағдарланымды мультиплексорлар болады. Бағдарланымды жергілікті
байланыстар матрицасы LPIA сигналды жалпы матрицаның GPIA жолынан
алады. 1 және 2 регистрлері жады модуліне, оның конфигурациясына
байланысты, әртүрлі разрядты деректер мен адрестерді жіберуге
бағдарланады. Жадыға жазу 4 – 6 мультиплексорларының бағдарлануына
байланысты синхронды (регистрден тактілеу сигналдарымен) немесе
асинхронды (тікелей LPIA-дан) болуы мүмкін.
1 – 3 регистрлерін басқару сигналдарының таңба бағытын 1 – 3 мульти-
плексорларымен өзгертуге болады. Жады блогының шығыс сигналдары 7 – 9
мультиплексорлары арқылы GPIA жолдарына немесе бағаналарына
тактіленген немесе асинхронды вариантта жіберіледі.
Достарыңызбен бөлісу: |