Кіріспе
Электрондық тізбектерді жобалауды тексеру кезеңі. Функционалдық тексеру – логикалық жобаның техникалық талаптарға сәйкес келетінін растау міндеті. Функционалдық тексеру «Осы ұсынылған жоба көздеген мақсатына жетеді ме?» деген сұраққа жауап беруге бағытталған. Бұл қиын және көп уақыт пен еңбек талап етеді (жобалау және әзірлеу уақытының 70% дейін).
Functional verification is the task of verifying that the logic design conforms to specification. Functional verification attempts to answer the question "Does this proposed design do what is intended?" This is complex and takes the majority of time and effort (up to 70% of design and development time)
Өмірбаян
Транзисторлардың саны Мур заңына сәйкес экспоненциалды түрде өскенмен, инженерлер саны мен дизайнды дайындауға кеткен уақыт тек сызықтық түрде ғана өседі. Транзисторлардың күрделілігі артаған сайын, кодтау қателер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н қолданылады.
Logic simulation simulates the logic before it is built. Simulation acceleration applies special purpose hardware to the logic simulation problem. Emulation builds a version of system using programmable logic. This is expensive, and still much slower than the real hardware, but orders of magnitude faster than simulation. It can be used, for example, to boot the operating system on a processor. Formal verification attempts to prove mathematically that certain requirements (also expressed formally) are met, or that certain undesired behaviors (such as deadlock) cannot occur. Intelligent verification uses automation to adapt the testbench to changes in the register transfer level code. HDL specific versions of lint, and other heuristics, are used to find common problems.