Жас ғалымдардың VII халықаралық Ғылыми конференциясының материалдары 25-26 сәуір 2011 жыл


ПРОГРАММАЛАРДЫ ӚҢДЕУ ЖӘНЕ ТЕСТІЛЕУ ӘДІСТЕРІ



Pdf көрінісі
бет17/26
Дата09.03.2017
өлшемі8,59 Mb.
#8570
1   ...   13   14   15   16   17   18   19   20   ...   26

ПРОГРАММАЛАРДЫ ӚҢДЕУ ЖӘНЕ ТЕСТІЛЕУ ӘДІСТЕРІ 
 
Альжанов Ильяс Айтуганович 
Студент, Л.Н.Гумилев атындағы Еуразия ҧлттық университеті, Астана 
Ғылыми жетекші – п.ғ.д., профессор М.Серік 
 
Берілген ӛрнектің мәніне тәуелді бір немесе бірнеше оператор орындалатын жағдайда 
таңдау  операторы  пайдаланылады.  Таңдау  операторы  алгоритмдік  тілдегі  таңдау 
командасына ҧқсағанымен бірге, аз ӛзгешелігі бар. Алгоритмдік тілде таңдау шарт бойынша 
орындалса, Паскаль тілінде тҧрақтылар бойынша іске асырылады. 
Жазылу тҥрі: 
Таңдау                    CASE ӛрнек ОF             CASE -жағдай 
жағдай 1-шарт: 1-серия 1-тҧрақты: 1-оператор; OF -солар, 
жағдай 2-шарт: 2-серия 2-тҧрақты: 2-оператор; тӛмендегілер. 
жағдай n-шарт: n-серия n-тҧрақты: n-оператор 
бітті END. 
Таңдау операторы былай орындалады: ӛрнектің мәні берілген тҧрақтының қайсысына 
тең  болса,  оған  сәйкес  оператор  орындалады  да,  басқару  таңдау  операторының  соңындағы 
операторға беріледі. 
Егер  ӛрнектің  мәні  тҧрақтылардың  ешқайсысымен  тең  болмаса  да,  басқару  таңдау 
операторынан кейінгі операторға беріледі. 
Ӛрнектің  мәні  және  тҧрақтылар  әрқашанда  бҥтін  сан,  тҧрақты  типі  мен  ӛрнек  типі 
бірдей болу керек. [1] 
Мысалы: 
CASE K+1 ОҒ 
5: у:=sqr(x); 
11: у:=sqrt(x); 
4: z:=у*(а-b); 
7: write(а,b) 
END. 
Мысал: Апта кҥндерінің нӛмірі бойынша аттарын анықтауға программа қҧрыңдар. 
(*-------------------! апта кҥндері !-----------------------*) 
       Ргоgram АРТА (input, output); 
       Vаr N: ; (*аптадағы кҥн нӛмірі*) 
       Веgіn 
           Writeln ('кҥн нӛмірін енгіз:'); 
           Read(n) 
           Case n of 
               1:WRITELN('дҥйсенбі'); 
               2:WRITELN('сейсенбі'); 
               3:WRITELN('сәрсенбі'); 
               4:WRITELN('бейсенбі'); 
               5:WRITELN('жҧма'); 
               6:WRITELN('сенбі'); 
               7:WRITELN ('жексенбі') 
        END 
Экранда: 
кҥн нӛмірін енгіз: 5 
жҧма 

 
115 
Мысал. Кез келген жыл мерзімін енгізіп, сол жылдың шығыс календары (қазақша жыл 
санау) бойынша қай жануардың атына сәйкес келетінін анықтайтын программа қҧрайық. [2] 
          Program jil 
          Vаг g : іnteger; 
          Begin 
              Write ('жыл мӛлшерін енгіз:') 
              Read1n(g); 
              Write(g:4,'жыл'); 
              CASE n (g mod 12) OF     
                    0:WRITE ('мешін'); 
                    1:WRITE('тауық'); 
                    2:WRITE('ит'); 
                    3:WRITE('доңыз'); 
                    4:WRITE('тышқан'); 
                    5:WRITE('сиыр'); 
                    6:WRITE('барыс'); 
                    7:WRITE('қоян'); 
                    8:WTRITE(ҧлу'); 
                    9:WRITE('жылан'); 
                  10:WRITE('жылқы'); 
                  11:WRITE('қой'); 
             END; 
             WRITELN('жыл болды'); 
 
ЦИКЛДІК АЛГОРИТМДЕР 
Есептерді  шешу  барысында  біртипті  әрекеттерді  кӛп  рет  қайталау  қажеттілігі  жиі 
кездеседі. Бҧл әрекеттерді анықтайтын параметрлердің мәндері әртҥрлі болады. 
Осындай әрекеттерді жҥзеге асыратын алгоритмдер циклдік, ал әрекеттердің кӛп рет 
қайталанатын бірізділігі (циклдің денесі) циклдер деп аталады. Циклдерді пайдалану ықшам 
программалар  кӛмегімен  есептеулердің  ҥлкен  кӛлемдерін  орындауға  мҥмкіндік  береді. 
Алдын-ала берілген және белгісіз сандар қайталауларымен циклдер ажыратылады. 
Қайталану саны белгісіз циклдер 
Циклді  қанша  рет  қайталау  керек  екені  алдын-ала  белгісіз  болады,  бірақ  бір  шарт 
орынды болып тҧрғанда ол орындалуға тиіс. [3] 
1-мысал.1,2,3,…,15 сандар квадраттарының кестесін қҧру. 
Шешуі: 
Егер  Х  цикл  айнымалысының  басқарушысын  (параметрді)  алғашқы  мәнінен  -  1-ден 
ақырғы мәніне - 15-ке дейін, формуласын пайдаланып қадаммен (2) ӛзгертіп отырса, сандар 
квадраттары кестесін қҧруға болады. 
Кестенің бірінші жолын қҧру ҥшін мынандай әрекеттерді орындау қажет: 
1. Х-ке алғашқы мән беру: 
            Х:=1 
2. Y-ті анықтау: 
3. Пайда болған нәтижені шығару. 
Алгоритмнің одан арғы қҧрылуы ҥшін қайталанатын әрекеттерді ерекшелеу және егер 
сондай әрекеттер бар болса, оларды орындау ҥшін цикл ҧйымдастыру қажет. Берілген есепте 
қайталанатын әрекеттерге мыналар жатады: 
1. Формуласы бойынша есептеу . 
2. Нәтижені шығару. 
3. Параметрдің келесі мәнін анықтау. 
Егер алғашқы мәні X=1 болса, Х-тің алғашқы мәнін қадам шамасына ӛзгерте отырып, 
Х-тің келесі мәндерін меншіктеу командасы арқылы алуға болады:X:=X+2 

 
116 
Бҧл  цикл  ақырсыз  деп  аталады  және  елеулі  кемшілігі  бар  -  ол  аяқтала  алмайды, 
ӛйткені  циклдің  аяқталу  шарты  берілмеген.  ЭЕМ-де  алгоритм  орындаудағы  мҧндай  қате 
циклдің аяқталмай қалуы деп аталады. 
Егер Х 15-тен ҥлкейіп кетсе, циклді аяқтау керек, Х-15 болса - цикл орындалуы керек. 
Алгоритмнің блок-схемасы суретте кӛрсетілген: 
Осылайша циклдің дҧрыс ҧйымдастырылуы ҥшін мыналар қажет: 
1. Параметрдің алғашқы мәнін беру. Циклдің аяқталу шартын тексеру. 
2. Циклдің жаңадан қайталануы алдында параметрді ӛзгерту. Алгоритмдік тіл:  
алг квадраттар кестесі (нәт.бҥтін) 
басы бҥтін Х 
                        X:=1   
                        әзірше        15 
                     цб 
                    
         шығару X,Y 
         X:=X+2 
                 цс 
соңы 
Программа:       
        REM      квадраттар кестесі 
            DIM  X,Y AS INTEGER 
              X=1 
               DO WHILE   15 
                          Y=X^2 
             PRINT  X,Y 
                        X=X+2 
         LOOP 
Қызмет  етуші  сӛздер  арасында  -  цб  (цикл  басы)  және  цс  (цикл  соңы)  -  кӛрсетілген 
командалар  сериясы  (цикл  денесі)  берілген  шарт  сақталмай  қанша  рет  орындалуы  қажет 
болса,  сонша  рет  орындалады.  Егер  шарт  басынан  бастап  орындалмаса,  серия  бір  ретте 
орындалмайды. 
Циклдік алгоритмдер бойынша Бейсик тілінде программалар қҧрастыру ӛте жауапты 
жҧмыс,  ӛйткені  цикл  ҧйымдастыру  ережелерінің  біреуі  бҧзылуы  тҥсінуге  де,  жӛндеуге  де 
болмайтын  шатасып  біткен  программалардың  пайда  болуына  әкеледі.  Кӛбіне  мҧндай 
программлардың логикалық қателері болады. 
Ең жиі кездесетін қателер: 
1.  Циклдің  аяқталуын  тексеру  шарты  жоқ.  Айтып  кеткеніміздей,  бҧл  циклдің 
аяқталмай қалуына әкеледі. 
2.  Циклдің  жаңадан  қайталануы  алдында  параметрді  ӛзгертетін  команда  жоқ.  Бҧл 
жағдай да циклдің аяқталмай қалуына әкеледі, бірақ алдыңғы қатеден ӛзгешелігі - квадраттар 
кестесі  шексіз  басыла  беретіндігінде,  бҧл  жағдайда  кестеде  тек  X=1  ғана  Y-тің  мәндерінің 
есептеулері болады. 
3.  Параметрдің  алғашқы  мәнін  (Х  =1)  қоятын  команда  қалып  кеткен.  Келесі  жолды 
орындағанда,  Х-ке  мән  берілмегендіктен,  ЭЕМ  Х  айнымалысына  нӛл  жазады,  яғни  X=0 
командасын  орындайды.  ЭЕМ  экранында  қате  нәтиже  -  0,2,4,…14  сандар  квадраттарының 
кестесі пайда болады. [4] 
2-мысал.  1,3,5,…,15  сандар  квадраттарының  кӛбейтіндісін  анықтайтын  программаны 
Бейсик тілінде қҧрастырыңыз. 
Қайталану саны белгілі циклдер 
Параметрлі  қайталау  командасы  циклдік  қҧрылымның  алгоритмдерін  кӛрнекілеу 
жазуға мҥмкіндік береді. 
Іске асыру пішіндері: 

 
117 
Цикл параметрі - Х айнымалысы, ол жҥйелі тҥрде Х қадамына сәйкес мәнін ӛзгертіп 
отырады.  Параметрлі  қайталау  командасының  орындалу  механизмі  қайталау  командасына 
ҧқсайды  (әзірше  циклі).  Параметрлі  қайталау  командасын  (ҥшін  циклінің)  қайталау 
командасының орнына пайдалану алгоритм жазуын оңайлатуға мҥмкіндік береді. [5] 
3-мысал. 1,3,5…15 сандар квадраттары кестесін қҧру. 
Шешуі: 
Параметрінің алғашқы мәні Хбасы =1 Хсоңы =15 ақырғы мәні, қадам мәні Хқад=2. 
алг квадраттар кестесі (нәт,бҥтін) 
басы бҥтін Х 
               Х ҥшін 1-ден 15 қадамға дейін 
цб 
Y:=X2 ; шығару Х,У 
цс 
соңы 
         REM Квадраттар кестесі 
         DIM X,Y AS INTEGER 
         FOR X=1 TO 15 STEP 2 
         Y=X^2: X,Y 
         NEXT X  
         END 
Алдымен  FOR  операторы  параметрдің  алғашқы,  ақырғы  мәндерін  және  қадамын 
белгілейді.  Содан  кейін  параметрдің  кӛрсетілген  алғашқы  мәні  ҥшін  цикл  денесі 
орындалады. Әрі қарай NEXT алдымен параметрді  қадам шамасына  ӛзгертіп, цикл аяқталу 
шартын  тексереді.  Егер  параметрдің  ағымдағы  мәні  ақырғы  мәнінен  басым  болмаса,  онда 
NEXT  есептеу  процесін  FOR  операторлық  жолға,  кері  жағдайда  -  NEXT  операторынан 
кейінгі  жолға аударады. Қайталау  саны белгісіз циклден ӛзгешелігі  - бҧл  циклде  тек қадам 
шамасына ғана ӛзгере алады, яғни Х=Х+Хқад. 
4-мысал:  1,3,5,…,15  сандар  квадраттарының  қосындысын  есептейтін  алгоритм  және 
программа қҧрастыру. 
Шешуі: 
Алг квадраттар қосындысы 
           (нәт,бҥтін S ) 
        Басы бҥтін Х,У 
S:=0 
Х ҥшін 1-ден бастап 15-ке дейінгі қад 
Цб 
    Y:=X2 
    S:=S+Y 
Цс 
         Шығару S 
             Соңы. 
            REM квадраттар қосындысы 
            DIM S,Y,X AS INTEGER 
            S=0 
            FOR X=1 TO 15 STEP 2 
            Y=X^2 
            S=S+Y 
            NEXT X 
            PRINT "S=";S 
            END. 
Әдебиеттер 
1. ЭВМ-мен жҧмыс істеуді ҥйренейік, Гигловый А.В. Алматы, 1992ж. 

 
118 
2. ЭВМ және программалау элементтері, Қараев Ж, Алматы, Рауан, 1991ж. 
3. Компьютер: сҧрақ және жауап, Бектаев С.К., Алматы, Қазақстан, 1991ж. 
4. Информатика:  жоғары оқу  орындарының студенттеріне арналған қҧралы, Алматы, Қазақ 
университеті, 1992ж. 
5. ―Компьютерлік технология ерекшеліктері‖, Информатика негіздері, №1, 25-26 бет. 
 
 
УДК 004.342.4 
 
РАЗРАБОТКА РИСК - ОРИЕНТИРОВАННОЙ СИСТЕМЫ УПРАВЛЕНИЯ 
ИНФОРМАЦИОННОЙ БЕЗОПАСНОСТЬЮ 
 
Атымтаева Б.М. 
Студент, Евразийский национальный университет им. Л.Н. Гумилева, Астана 
Научный руководитель – Ким Е.Р. 
 
В  настоящее  время  для  организаций  огромную  роль  играет  информационная 
безопасность.  Информационные  активы  организации  подвержены  различного  рода  атакам, 
использующим  уязвимости  операционных  систем  и  программного  обеспечения 
компьютеров.  
Лучшие  мировые  практики  и  ведущие  международные  стандарты  в  области 
информационной 
безопасности 
для 
эффективного 
управления 
безопасностью 
информационной системы требуют внедрения системы анализа и управления рисками [1-2]. 
В  данной  работе  разрабатывается  риск–ориентированная  система  управления 
информационной  безопасностью  (СУИБ)  информационной  системы,  задачами  которой 
являются  анализ  рисков,  связанных  с  функционированием  информационной  системы  и 
определение рекомендаций по снижению рисков. 
Для  идентификации  угроз  и  уязвимостей  используется  экспертный  опрос  на  основе 
реестра  вопросов  по  уязвимостям  и  угрозам  для  каждого  отдела  с  несколькими  ответами, 
имеющие определенные веса. 
Основными модулями проектируемой риск - ориентированной СУИБ являются: 
Модуль  «Организация  и  информационные  активы»,  в  котором  предполагается 
создание вкладок «Структура организации», с описаниями ее отделов, к каждому из которых 
привязывается свой охраняемый информационный актив с соответствующими ему угрозами 
и  уязвимостями,  так  же  предусмотрена  коррекция  баз  данных  структуры  организации  и  ее 
активов. Данный модуль находится на стадии проектирования и отладки. 
Модуль «Анализ», в котором и производится экспертный опрос, идентифицирующий 
угрозы, уязвимости организации, а так же предусматривается количественная и качественная 
оценка  рисков  с  отчетом  и  мерами  по  их  снижению  [3-4].  В  данном  модуле  реализованы 
следующие этапы анализа рисков: 
1.
 
Определение структуры организации. 
Структура  организации  представляется  в  СУИБ  в  виде  дерева  отделов.  К  каждому  отделу 
при этом привязываются определенные информационные активы.  
2.
 
Определение информационных активов. 
К  информационным  активам  организации  привязываются  соответствующие  угрозы,  к 
которым  привязаны  уязвимости,  затем  меры.  Предполагается,  что  реестр  информационных 
активов может пополняться непосредственно на форме.  
3.
 
Идентификация уязвимостей. 
4.
 
Идентификация угроз. 
5.
 
Количественный анализ. 
Для количественной оценки рисков использована классическая формула (1). 
Р = В(У) * К
а
 
(1) 

 
119 
где Р – риск информационной безопасности организации; 
В(У) – вероятность реализации уязвимости; 
К
а
 – критический уровень информационного актива [3]. 
Для определения количественной оценки риска применяется аппарат теории нечеткой 
логики.  Каждый  ответ  при  опросе  (идентификации  угроз  и  уязвимостей)  имеет  «вес»  в 
интервале от 0 до 1. Механизм оценивания рисков на основе нечеткой логики по существу 
является  экспертной  системой,  в  которой  базу  знаний  составляют  правила,  отражающие 
логику взаимосвязи входных величин и риска. В простейшем случае это «табличная» логика, 
в  общем  случае  более  сложная  логика,  отражающая  реальные  взаимосвязи,  которые  могут 
быть формализованы с помощью продукционных правил вида «Если ..., то» [1-3].  
Количественная оценка проводится для одного информационного актива. 
6.
 
Качественный анализ. 
Для  качественной  оценки  рисков  используется  вышесказанный  метод  нечеткой  логики,  а 
именно при определении степени риска: высокого, среднего, низкого. 

 
высокая  степень  опасности:  уязвимости,  которые  позволяют  осуществить 
удаленную компрометацию системы.  

 
средняя степень опасности: уязвимости, которые позволяют провести удаленный 
отказ в обслуживании, неавторизованный доступ к данным или выполнение произвольного 
кода при непосредственном взаимодействии с пользователем (например, через подключение 
к злонамеренному серверу уязвимым приложением); 

 
низкая  степень  опасности:  уязвимости,  эксплуатируемые  локально,  а  также 
уязвимости, эксплуатация которых затруднена или которые имеют минимальное воздействие 
(например, XSS, отказ в обслуживании клиентского приложения). 
7.
 
Меры и рекомендации. 
8.
 
Отчет. 
Предполагается  проектирование  системы  таким  образом,  чтобы  пользователь  имел 
возможность  сравнения  предыдущих  анализов  информационных  систем  организации.  Эта 
информация сохраняется в отчете, в котором указывается дата анализа [4-5]. 
Регулярная  переоценка  рисков  позволит  поддерживать  данные  о  безопасности  ИС 
организации  в  актуальном  состоянии,  оперативно  выявлять  новые  опасные  риски  и 
нейтрализовывать их экономически целесообразным образом. 
Литература 
1. 
Джеймс  К.  Фостер,  Винсент  Лю.  Разработка  средств  безопасности  и  эксплойтов  –  М.: 
Издательство «Русская редакция»; СПб.: Питер, 2007. 
2. 
Кевин И. Сонг (Kevin X. Song). Азбука сетевой безопасности - М.: Издательство «Русская 
редакция»; СПб.: Питер, 2008. 
3. 
Батыршин  И.З.  Основные  операции  нечеткой  логики  и  их  обобщения  –  Казань: 
Отечество, 2001. 
4. 
Информационный  портал  в  области  защиты  информации  и  новых  технологий  – 
www.securitylab.ru. 
5. 
Официальный сайт компании GlobalTrust Solutions – www.globaltrust.ru. 
 
УДК 004.43 
 
ПРОЕКТИРОВАНИЕ ЦИФРОВЫХ УСТРОЙСТВ С ИСПОЛЬЗОВАНИЕМ ЯЗЫКА 
VHDL 
 
Әлқожа Рҥстем 
Магистрант ЕНУ им Л.Н.Гумилева, Астана 
Научный руководитель – д.х.н., профессор Сулейменов Т. 

 
120 
 
Программируемые  логические  интегральные  схемы  (ПЛИС)  представляют  одно  из 
самых  интересных  и  быстро  развивающихся  направлений  современной  цифровой 
микроэлектроники. За последнее десятилетие наблюдался бурный рост рынка этих устройств 
и существенное улучшение их характеристик. Прогнозы в этой области на ближайшее время 
представляются  самыми  оптимистичными  [1-4].  С  появлением  ПЛИС  проектирование 
цифровых  микросхем  перестало  быть  уделом  исключительно  крупных  предприятий  с 
объемами  выпуска  в  десятки  и  сотни  тысяч  кристаллов  [5].  Проектирование  и  выпуск 
небольшой  партии  уникальных  цифровых  устройств  стал  возможен  в  условиях  проектно-
конструкторских  подразделений  промышленных  предприятий,  в  исследовательских  и 
учебных -лабораториях и даже в условиях домашних радиолюбительских рабочих мест [6]. 
Промышленно  выпускаемые  «заготовки»  программируемых  микросхем  с  электрическим 
программированием  и  автоматизированным  процессом  перевода  схемы  пользователя  в 
последовательность импульсов программирования делают проектирование новых цифровых 
устройств сравнимым с разработкой программного обеспечения. 
В  настоящее  время  ведущими  мировыми  производителями  ПЛИС  являются  фирмы 
Xilinx  и  Altera.  Каждая  из  них  выпускает  целый  спектр  продукции,  включая  ПЛИС  с 
различной 
архитектурой, 
флеш-ПЗУ 
для 
хранения 
конфигурации, 
система 
автоматизированного  проектирования  (САПР),  средства  программирования  и  отладки. 
Несмотря  на  достаточно  жесткую  конкурентную  борьбу  между  этими  ведущими 
производителями ПЛИС, выпускаемая ими продукция имеет вполне паритетные технические 
и  ценовые  характеристики.  Оба  производителя  постоянно  развивают  архитектуру 
программируемых-устройств,  регулярно  выпускают  новые  серии  ПЛИС  с  улучшенными 
характеристиками.  Хотя  в  архитектурах  выпускаемых  устройств  имеются  некоторые 
отличия, на практике оказывается, что преимущественная ориентация на продукцию одной 
из этих фирм не приносит существенной выгоды в техническом плане. При выборе той или 
иной  фирмы  имеет  смысл  ориентироваться  скорее  на  удобство  САПР,  доступность 
элементной базы, методических материалов и технической поддержки. 
Маршрут  проектирования  ПЛИС  в  последнее  время  претерпел  существенные 
изменения  [7].  Если  предыдущее  поколение  САПР  ориентировалось  преимущественно  на 
графический  ввод  принципиальной  схемы,  то  текущие  версии  САПР  Xilinx  предоставляют 
богатые возможности к описанию проекта пользователя на так называемых языках описания 
аппаратуры  (Hardware  Description  Languages,  HDL).  Эти  языки  приближены  к  обычным 
алгоритмическим  языкам  программирования  и  делают  возможным  быстрое  освоение 
технологии проектирования ПЛИС разработчикам с разным уровнем начальной подготовки. 
Скорость  трансляции  проектов  и  эффективность  алгоритмов  синтеза  конфигурации  ПЛИС 
постоянно  повышаются,  делая  доступным  разработку  устройств  объемом  несколько 
миллионов  логических  вентилей  на  обычной  рабочей  станции  на  базе  ПК.  Кроме  того, 
доступны  разработки  надстроек  над  САПР  производителей  ПЛИС,  автоматически 
генерирующие  HDL-описание  проекта  на  базе  высокоуровневого  описания.  Среди  них 
представляет  интерес  серия  продуктов  фирмы  Celoxica,  разработавшей  язык  описания 
аппаратуры  Handel-C.  Синтаксис  этого  языка  максимально  приближен  к  языку 
программирования Си, что еще больше облегчает освоение ПЛИС разработчикам, имеющим 
навыки программирования. 
Номенклатура,  возможности,  стоимость  и  прочие  характеристики  ПЛИС  имеют 
постоянную  тенденцию  к  улучшению  [8].  Поэтому  при  рассмотрении  перспектив,  видимо, 
следует ограничиться перечислением планов фирмы Xilinx по выпуску новых серий ПЛИС. 
В  настоящее  время  (2004  г.)  последней  разработкой  является  серия  Virtex4,  в  которой 
предусмотрен целый ряд новых архитектурных решений. В частности, это разделение внутри 
серии  на  3  подгруппы  -  FX  (Full  featured),  SX  (Signal)  и  LX  (Logic).  Эти  подгруппы 
представляют  собой  соответственно  полнофункциональные  устройства  (с  индексом  FX), 
которые  будут  иметь  на  кристалле  выделенные  ядра  PowerPC;  устройства,  нацеленные  на 

 
121 
реализацию алгоритмов цифровой обработки сигналов (SX), с большим количеством блоков 
памяти/умножения  и,  наконец,  устройства,  ориентированные  на  выполнение  логических 
операций (LX). 28 июня 2004 г. Xilinx начал поставки первых образцов ПЛИС этой серии. 
В  обзоре  Xilinx,  посвященном  новой  серии  Virtex4,  указывается,  что  за  последнее 
десятилетие  объем  ПЛИС  увеличился  в  250  раз,  рабочие  частоты  -  в  25,  пропускная 
способность памяти - в 800, а пропускная способность внешних интерфейсов - в 1 000 раз. 
Одновременно с этим нормализованная стоимость ПЛИС уменьшилась в 300 раз.  
Повсеместной  стала  практика  использования  ПЛИС  в  опытных  образцах  новых 
устройств с последующим переходом к ASIC в случае  успеха разработанного изделия.  Эти 
факты свидетельствуют о том, что новая технология уверенно заняла свое место  на рынке  
микроэлектроники,  предоставляя  разработчикам  принципиально  новые  возможности 
быстрого  и  качественного  проектирования  электронной  аппаратуры.  Тенденция  к 
последовательному  улучшению  характеристик  ПЛИС  в  конечном  итоге  создала  ситуацию, 
когда  «время  жизни»  отдельного  семейства  существенно  сокращается.  Уже  сейчас  серия 
ХС4000, которая предшествовала устройствам Spartan, не рекомендуется к использованию в 
новых  разработках.  Та  же  участь,  по  всей  видимости,  в  ближайшем  будущем  ожидает 
семейства  Spartan  и  Spartan-XL.  Такая  относительно  быстрая  смена  поколений  ПЛИС  на 
первый  взгляд  ставит  под  вопрос  обоснованность  их  применения  в  повседневной  практике 
разработки цифровых устройств. Однако здесь можно указать на то, что логические объемы 
в  сотни  тысяч  и  миллионы  вентилей  уже  сейчас  заставляют  применять  современные 
методики  проектирования,  основанные  на  использовании  языков  описания  аппаратуры 
(например,  VHDL  и  Verilog).  Такие  описания  позволяют  в  первую  очередь  получить 
абстрагированное  от  конкретного  семейства  ПЛИС  описание  цифрового  устройства. 
Впоследствии при появлении семейства с увеличенным быстродействием, меньшей ценой и 
т.  д.  можно  будет  оперативно  произвести  переход  на  новую  элементную  базу.  Таким 
образом,  порядок  разработки  устройств  на  базе  ПЛИС  подразумевает  определенную 
мобильность, однако позволяет оперативно осваивать самую современную элементную базу, 
в короткие сроки получая максимальную выгоду от ее использования. 
В  этой  связи  язык  описания  аппаратуры  VHDL  является  достаточно  мощным 
средством  абстрактного  описания  цифровых  устройств,  освобождающим  разработчика  от 
необходимости  комбинировать  нужную  ему  схему  из  готовых  библиотечных  компонентов. 
Хотя  все  цифровые  узлы,  создаваемые  в  ПЛИС,  теоретически  могут  быть  реализованы  с 
использованием  только  встроенных  триггеров  и  комбинаторной  логики,  очевидно,  что 
построение  многоразрядных  устройств,  счетчиков  со  сложными  условиями  рестарта, 
конечных  автоматов  и  т.  п.  очень  сложно  произвести  по  классической  методологии 
графического  описания  создаваемой  схемы.  В  данном  случае  применение  языков  описания 
аппаратуры  (Hardware  Description  Languages,  HDL)  позволяет  описать  поведение 
создаваемого  устройства  в  наиболее  общем,  алгоритмическом  виде,  что  существенно 
облегчает  анализ  работы  такого  устройства,  его  модификацию,  отладку  и  сопровождение. 
Кроме  того,  алгоритмическое  описание  позволяет  абстрагироваться  от  конкретной  серии 
ПЛИС  и  библиотеки,  поскольку  одно  и  то  же  HDL-описание  может  быть  легко 
оттранслировано в качестве составной части различных проектов. 
Рассмотрим  реализацию  на  VHDL  разработку  четырехразрядного  сдвигающего 
регистра,  обеспечивающего  преобразование  последовательного  кода  в  параллельный  и 
имеющего  информационный  вход  DIN,  вход  синхронизации  CLK  и  выход  DOUT[3/0].  Тип 
микросхемы  -  ПЛИС  типа  FPGA  XC2S15-VQ100-5.  Описание  интерфейса  данной  схемы 
будет выглядеть следующим образом (рис.1). 
 

 
122 
 
Рис. 1. Задание интерфейса разрабатываемой схемы 
 
В  качестве  шаблона  можно  использовать  пункт  Serial  to  Parallel  Shift  Register  из 
группы сдвигающих регистров Shift Registers. Окончательный вид описания регистра будет 
следующим:  
library IEEE; 
use IEEE.STD_LOGIC_1164.ALL; 
use IEEE.STD_LOGIC_ARITH.ALL; 
use IEEE.STD_LOGIC_UNSIGNED.ALL; 
entity rg is 
Port ( DIN : in std_logic; 
CLK : in std_logic; 
DOUT : out std_logic_vector(3 downto 0)); 
end rg; 
architecture Behavioral of rg is 
signal REG: STD_LOGIC_VECTOR(3 downto 0); 
begin 
process (CLK) 
begin 
if CLK'event and CLK='1' then  
REG(3 downto 0) <= DIN & REG(3 downto 1); 
end if; 
DOUT <= REG; 
end process; 
end Behavioral; 
Внешние  сигналы  с  помощью  редактора  ограничений  задаются  на  следующие 
контакты:  DIN  -  P40,  CLK  -  P39,  DOUT[3/0]  -  P41,  P43,  P4,  P45.  Для  моделирования  с 
помощью  программы  Test  Behcher  задаются  временные  диаграммы  сигналов  DIN  и  CLK, 
которые показаны на рис. 2. 
 
 
Рис. 2. Входные сигналы 

 
123 
На  этих  временных  диаграммах  заданы  следующие  параметры:  длительности 
единичного  и  нулевого  значения  синхросигнала  –  по  10  нс,  время  установки  входных 
воздействий перед фронтом тактового сигнала и время задержки выходных значений по 6 нс. 
Моделирование  производится  на  основе  данных  сигналов  с  применением  программы 
ModelSim. Результаты функционального моделирования показаны на рис. 3. 
 
Рис. 3 Результаты моделирования 
В размещении схемы показано, что для реализации схемы используются 4 триггера в 
двух секциях, что отражено следующими строками: 
Number of SLICEs 2 out of 192 1% 
Number of Slice Flip Flops: 4 out of 384 1%. 
Для реализации внешних связей требуется 5 обычных блоков ввода-вывода и один 
специализированный для синхросигнала с использованием глобального буфера GCLK:  
Number of External IOBs 5 out of 60 8% 
Number of External GCLKIOBs 1 out of 4 25% 
Number of GCLKs 1 out of 4 25% 
Распределение внешних сигналов по контактам, полностью совпадающее с заданным 
выше, отражается следующим фрагментом:  
Resolved that GCLKIOB  must be placed at site P39. 
Resolved that IOB  must be placed at site P40. 
Resolved that IOB > must be placed at site P41. 
Resolved that IOB > must be placed at site P43. 
Resolved that IOB > must be placed at site P44. 
Resolved that IOB > must be placed at site P45. 
На рис. 4 приведен фрагмент ПЛИС, полученный с помощью программы FloorPlanner. 
Из этого рисунка видно, что для проектируемой схемы системой САПР ISE отведены 2 
секции в блоках ПЛБ, расположенных по адресам R8C8 и R8C9. Данные секции выделены 
темным цветом.  
 
 
 
Рис. 4. Размещение узлов схемы в ПЛИС 

 
124 
Информация о величине задержек схемы отражена в следующих строках: 
The Average Connection Delay for this design is: 0.853 ns 
The Maximum Pin Delay is: 1.564 ns 
The Average Connection Delay on the 10 Worst Nets is:) 0.637ns 
Listing Pin Delays by value: (ns) 
d<1.00 = 5.00 
8 4 0 0 0 0 
Полная информация о задержках приведена в нижней таблице: 
------------------------------- 
| Max Delay (ns) | Netname | 
------------------------------- 
1.564 reg_3_1 
1.540 reg_2 
1.209 reg_0 
1.202 reg_1 
0.853 reg_3 
0.721 din_IBUF 
0.469 clk_BUFGP 
0.007 clk_BUFGP/IBUFG 
--------------------------------- 
На рис.5 показан фрагмент ПЛИС, на котором размещена проектируемая схема. 
Данный рисунок получен с помощью программы редактора FPGA (FPGA Editor).  
 
 
Рис. 5. Окончательное размещение узлов и связей 
 
На  этом  рисунке  приведены  контакты  P40,  P41,  P43,  P44  и  P45,  которые 
соответствуют входному сигналу DIN и выходным сигналам DOUT[0], DOUT[1], DOUT[2] и 
DOUT[3].  На  рисунке  показаны  также  внутренние  сигналы  reg_0,  reg_1,  reg_2  и  reg_3. 
Название последних присвоила сама система, и их имена соответствуют индексам сигналов 
DOUT[0]  …  DOUT[3].  В  схеме  продублирован  внутренний  сигнал  reg_3,  его  аналог  имеет 
наименование reg_3_1 и используется для формирования сигнала DOUT[3] на контакте P45, 
сам  сигнал  reg_3  используется  для  формирования  сигнала  reg_2  при  сдвиге.  Указанное 
дублирование вызвано тем, что в системе задан режим оптимизации по быстродействию, и 
система обеспечивает максимальное быстродействие, пусть и за счет усложнения схемы.  

 
125 
Фрагмент  секции  CLB_R8C8.S0,  где формируются  два  младших  разряда,  показан на 
рис.6.  
 
 
 
Рис. 6 Блок ввода-вывода 
 
На  рис.  7  показан  фрагмент  блока  ввода-вывода  (IOB)  P40,  который  обеспечивает 
прохождение  входного  сигнала  DIN.  Сигнал  поступает  на  входной  контакт  PAD,  затем 
проходит  через  ряд  буферных  схем.  Во  внутреннюю  логику  ПЛИС  поступает  сигнал 
din_IBUF,  а  также  сигнал  reg_3_1,  который  вырабатывается  на  выходе  D  –триггера, 
находящегося в блоке ввода-вывода. 
 
 
 
Рис. 7. Программируемый логический блок 
 
Таким образом, разработчику достаточно ввести описание схемы на языке VHDL, а 
все остальное выполняет система проектирования.  
 
 
УДК 681.588 

Достарыңызбен бөлісу:
1   ...   13   14   15   16   17   18   19   20   ...   26




©emirsaba.org 2024
әкімшілігінің қараңыз

    Басты бет