Н. Ұзаққызы
Программаланатын логикалық интегралды схемаларды программалау және конфигурациялау
(Л.Н. Гумилев атындағы Еуразия ұлттық университеті, Астана қаласы)
Бұл мақалада программаланатын логикалық интегралды схемаларды программалау және конфигурациялау технологиялары қарастырылған.
Белгілі бір әрекетті орындау мақсатында микросхеманы программалау үшін оған жүктелетін файлдар конфигурациялық немесе биттік файлдар деп аталады.
Егер микросхема өзінің конфигурациясы үшін статикалық ОЗУ ұяшықтарын қолданса, онда конфигурациялық файл құрамында программаланатын логика және конфигурациялық командалар элементтерінің күйін анықтайтын конфигурациялық деректерді немесе биттерді қамтиды, яғни құрылғыға не істеу керектігін айтатын нұсқаулар. Конфигурациялық файлды ақпарат тасымалдайтын құрылғыға жүктеуде конфигурациялық екілік ағын деп атайды.
ЭСППЗУ және Flash жады негізіндегі құрылғыға конфигурациялық файлды жүктеу іспетті жүргізіледі. Тек мұндағы конфигурациялық деректер қосылыстарды өсіру үшін қажет.
Конфигурациялық ұяшықтар. ПЛИС-ды програмалау конфигурациялық файлды құрылғыға жүктеуде жүзеге асады.
Программаланатын құрылғылардың барлық мүмкіндіктері арнайы конфигурациялық ұяшықтар көмегімен жүзеге асады. ПЛИС-дың көбісі статикалық ОЗУ ұяшықтарын қолданады.
Құрылғының ішкі қосылыстары конфигурацияда қолдануға болатын көптеген байланыс ұяшықтарын қамтиды. Бұл байланыс ұяшықтары микросхеманың кірістері мен шығыстарын және логикалық блоктарды өзара байланыстырады. 1 суретте көрсетілмеген барлық енгізу/шығару блоктары конфигурациясы белгілі бір енгізу/шығару интерфейс стандарттарына сәйкес бірнеше байланыс ұяшықтардан тұрады.
Статикалық ОЗУ ұяшықтары негізіндегі ПЛИС. Конфигурациялық статикалық ОЗУ ұяшықтарын ұзын жылжымалы регистр түрінде көрсетуге болады. Бұл статикалық ОЗУ ұяшықтарының көрсетілімі 1 суретте көрсетілген.
Осы суретте көрсетілгендей бұл регистрлік тізбектің кірісі мен шығысы сыртқы контактілері тікелей микросхемаға жалғанған деп ұйғарылған. Алайда бұл программалау тек программалау конфигурациялық порт көмегімен тізбекті жүктелу режимінде жүргізілгенде ғана мүмкін. ПЛИС-дың тізбекті жүктеу екі режимде болуы мүмкін: жетекші (master) және жетелеуші (slave).
1 суретте конфигурациялық ұяшықтар бір программаланатын тізбек ретінде көрсетілген. Конфигурациялық ұяшықтар саны бірнеше миллиондаған болуы мүмкін. Бұл тізбек өте ұзақ болуы мүмкін. Кейбір микросхемаларда тізбек бөліктерге бөлінеді. Мұндай шешім құрылғының бөлек бөліктерін конфигурациялауға мүмкіндік береді.
Айтылып кетілгендей, программаланатын логикалық блоктар регистрлері олардың бастапқы мәні сақталған (логикалық 0 және 1) конфигурациялық ұяшықтармен байланысқан [1].
Статикалық ОЗУ ұяшықтарын ұзын жылжымалы регистр түрінде
көрсету
Сурет 1
Конфигурациялық порт. Бірінші ПЛИС конфигурациялық порт деп аталатын құралды пайдаланған. Тіпті қазіргі уақытта JTAG-интерфейсі секілді күрделі әдістер жетімді бола тұрса да, конфигурациялық порт кең ауқымды қолданыста.
Құрылғы конфигурациясы режимін орнатуда қолданылатын шығыстарды қарастырайық. Бірінші ПЛИС-да осындай мақсаттар үшін конфигурацияның төрт режимін орнататын тек екі шығыс қолданылатын (1 кестені қара).
Кесте 1 - Конфигурацияның бірінші төрт режимі
Режим орнатылуының шығысы
|
Режим атауы
|
00
|
ПЛИС жетекші режимінде тізбекті жүктеу
|
01
|
ПЛИС жетелеуші режимінде тізбекті жүктеу
|
10
|
ПЛИС жетекші режимінде параллельді жүктеу
|
11
|
ПЛИС жетелеуші режимінде параллельді жүктеу
|
Бұл кестедегі режимдер атауы, сонымен қатар режим орнату шығысының оларға сәйкес кодтары тек мысал үшін ғана келтірілген. Шын мәнінде. Әрбір өндірушінің өзінің шынайы кодтары мен режим атаулары бар.
Режим орнату шығыстары, әдетте 0 немесе 1 логикалық мәндерге қосылады. Бұл шығыстар программалау режимін өзгерте алатын басқа логикалық құрылғыларға қосыла алады. Бірақ мұндай схемалар өмірде өте сирек кездеседі.
Режимді орнату шығыстарынан басқа конфигурациялау үрдісінің басталуы туралы ақпаратты беретін қосымша шығыс, конфигурациялау үрдісінің аяқталуын білдіретін сигналдары шығаратын шығыс қолданылады. Сонымен қатар, конфигурация барысында пайда болатын қателерді орнату сигналдары бар.
Конфигурациялық порт микросхеманың қосымша шығыстарын деректерді жүктеу мен енгізуді басқару үшін қолданады. Бұл шығыстар саны конфигурация режиміне байланысты.
ПЛИС жетекші режимінде тізбекті жүктеу. Бұл режим программалау режимдерінің ішінде ең қарапайымы. Ертерек кезде мұндай режимде жасау үшін ППЗУсыртқы микросхемалары қолданылатын. Сонан соң олардың орнына ЭСППЗУ және СППЗУ келді. Енді қазіргі кезде flash-жадыда қолданылады. Бұл арнайы жады компоненттері алынған деректерді шығаратын шығысты қамтиды (2-ші сурет) [2].
ПЛИС жетекші режимінде тізбекті жүктеу
Сурет 2
Сонымен қатар, сыртқы жадыны басқару үшін ПЛИС бірнеше сигналдарды қолданады. Оларға қайтан іске қосу сигенлы, синхросигнал мысал бола алады.
Бұл режимде ПЛИС тізбекті адресациялы сыртқы жадыны қажет етпейді. Мұндай режимде қарапайым қайтадан іске қосу сигнал импульстары қолданылады, сосын конфигурациялық деректерді жадыдан шығару үшін синхроимпульс тізбегі іске асады.
Қажет болған жағдайда ПЛИС шығыс сигналы құрылғының конфигурациялық деректерін оқу үшін қолдануға болады. Мұндай әдіс бір платада бірнеше ПЛИС микросхемаларын қолданғанда жүзега асады (сурет 3).
FPGA микросхемаларын тізбектей қосу
Сурет 3
3-ші суреттегі схемада тізбектегі бірінші ПЛИС жетекші (master) болып тізбекті режимде конфигурацияланады. Бұл тізбектегі барлық қалған ПЛИС тізбекті режимде жетелеуші болады.
ПЛИС жетекші режимінде параллельді жүктеу.
Басқару сигналадарын қамтамасыз етуден басқа ПЛИС сыртқы жадыға келесі тактіде жүктелетін конфигурациялық деректерді нұсқау үшін адрес сигналдарын ұйымдастырады (сурет 4).
ПЛИС жетекші режимінде параллельді жүктеу (бірінші әдіс)
Сурет 4
4-ші суреттегі схема ПЛИС адрес генерациясын қамтамасыз ететін ішкі есепшісі болған кезде ғана мүмкін. Бірінші ПЛИС-дың 16 миллион байт деректерді адрестейтін 24-битті есепшілері болған. Конфигурациялық тізбектің есепші 0-ге түсіріледі. Адрес есепшісіның деректер байты оқылғаннан кейін есепші кобейеді. Бұл үрдіс конфигурациялық деректердің толығымен микросхемағажүктелмегенінше жүреді.
Параллельді жүктеудің мұндай әдісі алдындағы тізбектей жүктеумен салыстырғанда жылдамдығы жоғары сияқты. Алайда, шын мәнінде олай емес. Бірінші микросхемаларда деректер байты оқылған мезеттен бастап жылжымалы регистр бойымен қозғала береді. Бірақ бұл жайт соңғы құрылғыларда жөндетілді [3, 408].
Шын мәнінде бұл микросхемалардың белгілігі – конфигурациялық деректердің жетекші режимінде тізбекті жүктелуі үшін арнайы жады құрылғылары өте қымбат болған. Бұлармен салыстырғанда параллельді әдіс құрылғыларының бағасы едәуір төмен.
Қазіргі кезде ПЛИС-мен бірге қолданылатын арнайы жады құрылғылары салыстырмалы арзан және Flash-технологиясы бойынша құрылады, яғни бірнеше рет қолданылады. Соңғы ПЛИС параллельді жүктеудің соңғы әдістерін қолданады. Осы жағдайларда сыртқы жады сыртқы адресацияны қажет етпейтін арнайы құрылғы болып келеді, яғни ПЛИС-ға ішкі есепшіні қажет етпейді (сурет 5).
ПЛИС жетекші режимінде параллельді жүктеу (жаңа әдіс)
Сурет 5
Бұл жағдайда тізбекті режим сияқты ПЛИС конфигурациялық тізбектің басынан деректерді оқуға дайын екендігін білдіретін сыртқы жады түсірілуі жайлы сигнал береді. Сонан соң конфигурациялық деректердің синхронизациясы үшін сыртқы жадыдан келіп түсетін синхроимпульсті береді.
ПЛИС жетелеуші режимінде параллельді жүктеу. Алдындағы айтылып кеткен конфигурация режимдерінде ПЛИС жетекші орында тұрды. Бұлар өзінің қарапайымдылығы мен қойылатын талаптардың кемдігімен тартымды. Себебі жұмыс үшін ПЛИС мен жадының бір микросхемасы ғана қажет.
Алайда көптеген баспа платаларында әр түрлі ішкі есептерді шешуге арналған микропроцессорлар бар. Мұндай жағдайда инженерлер микропроцессорларды конфигурациялық деректерді ПЛИС-на енгізу үшін қолданады. Бұл жағдайдың көрнекі түрі 6-ші суретте көрсетілген [5].
ПЛИС жетелеуші режимінде параллельді жүктеу
Сурет 6
Бұл жердегі ең басты идея – микропроцессор басқарушы құрылғы. Мұндай режимде микропроцессор ПЛИС-на оның конфигурация үрдісін белгілі бір жады құрылғысынан немесе сыртқы құрылғысынан бастауға дайындығы жайлы сигнал жібереді. Сонан соң конфигурациялық деректерді оқуды бастайды. Бұл конфигурация үрдісі аяқталғанға дейін жүреді.
Осындай әдістің көптеген артықшылықтары бар. Соның бірі – микропроцессор көрші жүйеге қатысты құрылғыны сұрау үшін қолданылады, яғни конфигурациялық деректерді белгілі бір белгісі бойынша жүктеуге болады.
ПЛИС жетелеуші режимінде тізбекті жүктеу. Бұл режим өзінің параллельді туысына іспеттес. Бірақ бұл жағдайда ПЛИС-на деректерді жүктеу үшін бір бит қана қолданады. Микропроцессор жадыдан бір байт деректерді жүктейді, сонан соң бұл байтты ПЛИС-на жазу үшін биттер тізбегіне айналдырады.
Бұл әдістің ең басты артықшылығы – ПЛИС- да шығыстар санынан аз шығысты қажет етеді. Басқа сөзбен айтқанда, конфигурация үрдісі кезінде микропроцессордың деректер шинасына қосымша өткізгіш көмегімен жалғанатын тек бір енгізу/шығару контактісі қолданылады [6, 320].
JTAG-порт. Көптеген құрылғылар, сонымен қатар ПЛИС да JTAG порт деп аталатын арнайы интерфейспен жабдықталған. Бұл порт IEEE 1149.1 стандарты атпен мәлім тестілеудің автоматизациясы бойынша біріктірілген жұмыс тобы (Joint Test Automation Group, JTAG) қолдайды. Бұл стандарт біріншіде баспалық платалар мен санық микросхемаларды тестілеу үшін перифириялық сканирлеу әдісін құру үшін жасалына бастаған.
Бұл порттың маңызды идеясына тоқталып кетейік. ПЛИС-дың белгілі бір мөлшерде шығыс контактілері бар. Мұндағы осы шығыстардың бірі деректерді енгізу үшін, екіншісі шығару үшін, ал қалғандары JTAG-регистрлерімен немесе триггерлерімен тізбектей жалғанған байланыстары үшін қолданылады (сурет 7).
Тізбекті сканирлеу JTAG-регистрлері
Сурет 7
Тізбекті сканирлеу идеясы мынада: JTAG порт арқылы микросхеманың кірістерімен байланысқан JTAG-регистрлеріне деректерді беруге болады. Нәтижесінде құрылғы, ПЛИС, осы деректермен жұмыс жасауға, осы жұмыстың нәтижесін JTAG-регистрлеріне сақтауға және нәтижені JTAG портқа тізбектей беру мүмкіндігі болады.
JTAG құрылғы әр түрлі қосымша басқарушы логиканы қамтиды. ПЛИС жағдайында JTAG-порт тізбекті сканирлеуден басқа операцияларды орындайды. Мысалы, арнайы командалық JTAG-регистрлеріне жүктелетін арнайы командаларды JTAG-порттың кірісі арқылы беруге болады. Осындай командалардың бірі ПЛИС-дың өзінің ішкі конфигурациялық регистрін JTAG-порт тізбегіне қосылуын нұсқайды. Бұл жағдайда JTAG-порт ПЛИС программалау үшін қолданады. Сонымен, қазіргі кездегі ПЛИС программалаудың бес әр түрлі режимінін қолдайды. Демек, олардың қайсысы қолданатынын анықтау үшін үш шығыс қажет болады (2 кестеде көрсетілген) [8, 576]
Кесте 2- Қазіргі заманғы бес конфигурациялық режимі
Режимді орнату шығыстары
|
Режим атауы
|
000
|
ПЛИС жетекші режимінде тізбекті жүктеу
|
001
|
ПЛИС жетелеуші режимінде тізбекті жүктеу
|
010
|
ПЛИС жетекші режимінде параллельді жүктеу
|
011
|
ПЛИС жетелеуші режимінде параллельді жүктеу
|
1xx
|
JTAG-порт қана қолданылады.
|
JTAG-порт әрқашан да қол жетімді, яғни құрылғы ең алдымен стандартты конфигурациялық режимдерді қолдана отырып, дағдылы конфигурациялық порт арқылы конфигурациялана алады, сосын, егер қажет болса JTAG-порт арқылы реконфигурацияланады. Сонымен қатар құрылғы JTAG-порт арқылы ғана да программалана алады.
Кірістірілген процессорлар. Кейбір ПЛИС-нда кірістірілген процессорлық ядроларды қамтиды. Әрбір ядроның өзінің арнайы JTAG-тізбегін қамтиды.
Егер ПЛИС-ның тек бір кірістірілген процессоры болса, онда бұл жағдайда ПЛИС тек бір сыртқы JTAG-портын қамтиды. Қажет болған жағдайда осы порт арқылы JTAG-тізбегіне нұсқау беретін командаларды енгізе аламыз.
Осы ойдың негізгі идеясы: JTAG-порт ішкі микропроцессорлық ядро және белгілі бір қалыпқа дейін онымен байланысқан перифирияны иницализациясы үшін қолданылуы мүмкін. Осыдан кейін процессор конфигурациялық деректердің негізгі бөлігін өз бетінше жүктейді. Кейбір жағдайларда процессорлық ядро сыртқы ортаға сұраныс жіберу үшін және ПЛИС-на жүктеуге арналған конфигурациялық деректерді таңдауға да қолданыла алады [7, 126].
Осы мақаланы қорытындылай келе ПЛИС-дің қазіргі кездегі қарқынды дамып келе жатқан салалардың бірі екендігін көруге болады, себебі оларға деген сұраныс артуда. ПЛИС көптеген интерфейстті түйіндерді құруда, басқару және бақылау құралдарын жасауда және т.б. салаларда қолданыс табады. Егер осыдан 15 жыл бұрын ПЛИС электронды компоненттер нарығында төменгі деңгейлерде болса, ал қазір тіптен басқаша. Расында да ПЛИС болашағы зор екенін байқау қиын емес.
ӘДЕБИЕТТЕР
-
Палташев Т.Т. Введение в проблему разработки и производства СБИС//Статья 2009 ж.
-
Палташев Т.Т., Матвеев М. Иерархия памяти в современных макропроцессорах. 2010 г. С. 36-52.
-
Максфилд К. Проектирование на ПЛИС. Курс молодого бойца. – М. Издательский дом «Додека-XXI», 2007. – 408 с.
-
Зотов В.Ю. Проектирование цифровых устройств на основе ПЛИС фирмы Xilinx в САПР WebPACk ISE. – М.: Горячая линия-Телеком, 2003. – 624 с.
-
Уэйкерли Дж.Ф. Проектирование цифровых устройств. Том 1,2. – М.: Постмаркет, 2002
-
Морелос-Сарагоса Р. Искусство помехоустойчивого кодирования. Методы, алгоритмы, применение. - М.: Техносфера, 2006. – 320 с.
-
Золотарёв В.В., Овечкин Г.В. Помехоустойчивое кодирование. Методы и алгоритмы: Справочник/Под. ред. чл.-кор. РАН Ю.Б. Зубарева. - М.: Горячая линия-Телеком, 2004. – 126 с.: ил.
-
Суворова Е.А., Шейнин Ю.Е. Проектирование цифровых систем на VHDL. – СПб.: БХВ-Петербург, 2003. – 576 с.: ил.
Узаккызы Н.
Программирование и конфигурирование программируемых логических интегральных схем
В этой статье рассмотрены технологии программирования и конфигурирования программируемых логических интегральных схем.
Uzakkizi n.
Programming and configuration of field programmable gate arrays
In this article technologies of programming and a configuration of field programmable gate arrays are considered
Достарыңызбен бөлісу: |