Кіріспе

Электрондық тізбектерді жобалауды тексеру кезеңі. Функционалдық тексеру – логикалық жобаның техникалық талаптарға сәйкес келетінін растау міндеті. Функционалдық тексеру «Осы ұсынылған жоба көздеген мақсатына жетеді ме?» деген сұраққа жауап беруге бағытталған. Бұл қиын және көп уақыт пен еңбек талап етеді (жобалау және әзірлеу уақытының 70% дейін).

Өмірбаян

Транзисторлардың саны Мур заңына сәйкес экспоненциалды түрде өскенмен, инженерлер саны мен дизайнды дайындауға кеткен уақыт тек сызықтық түрде ғана өседі. Транзисторлардың күрделілігі артаған сайын, кодтау қателерiнiң саны да артады. Логикалық кодтаудағы қателердің көпшiлiгi салмақты кодтаудан (12,7%), қарым-қатынастың дұрыс болмауынан (11,4%) және микроархитектуралық қиындықтардан (9,3%) туындайды. Осы себепті, транзисторлардың дизайнының күрделілігімен күресу үшін электрондық дизайнды автоматтандыру (EDA) құралдары жасалады. Verilog және VHDL сияқты тiлдер EDA құралдарымен бiрге енгiзiледi. Функционалдық тексеру өте қиын, себебi тiптi қарапайым дизайн болса да, мүмкiн болатын тест жағдайларының саны өте көп. Көбiнесе, дизайнды толық тексеру үшiн 10^80-нен астам мүмкiн тесттер қажет, бұл өмiр бойында қол жеткiзу мүмкiн емес сан. Бұл бағдарламаны тексерумен тең, және NP қиын немесе одан да нашар, ал барлық жағдайларда жақсы жұмыс 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ң (мысалы, тұйықталу) пайда болу мүмкiн емес екенiн дәлелдеуге тырысады. Интеллектуалды тексеру автоматтандыруды пайдаланып, тест ортасын реестрлiк деңгейдегi кодтағы өзгерiстерге бейiмдейдi. Lint және басқа да эвристикалық әдiстер, HDL-дың белгiлi нұсқалары, жиi кездесетiн проблемаларды табу үшiн қолданылады.