Кіріспе
Интегралды схемаларды жобалауда аппараттық құрылғыларды эмуляциялау, басқа аппараттық жабдықпен аппаратты эмуляциялау
emulating hardware with other hardware
In integrated circuit design, hardware emulation is the process of imitating the behavior of one or more pieces of hardware (typically a system under design) with another piece of hardware, typically a special purpose emulation system. The emulation model is usually based on a hardware description language (e. g. Verilog) source code, which is compiled into the format used by emulation system. The goal is normally debugging and functional verification of the system being designed. Often an emulator is fast enough to be plugged into a working target system in place of a yet to be built chip, so the whole system can be debugged with live data. This is a specific case of in circuit emulation. Sometimes hardware emulation can be confused with hardware devices such as expansion cards with hardware processors that assist functions of software emulation, such as older daughterboards with x86 chips to allow x86 OSes to run on motherboards of different processor families.
Интегралды схемаларды жобалауда аппараттық эмуляция – бір немесе бірнеше аппараттық компоненттің (әдетте жобаланып жатқан жүйенің) мінез-құлқын басқа аппараттық компоненттермен, әдетте арнайы эмуляциялық жүйемен имитациялау процесі. Эмуляция моделі әдетте аппараттық сипаттама тілінде (мысалы, Verilog) жазылған бастапқы кодқа негізделеді, ол эмуляциялық жүйе қолданатын форматқа компиляцияланады. Мақсаты – жобаланып жатқан жүйенің қателерді жою және функционалдық тестілеу. Көбінесе эмулятор жеткілікті жылдамдыққа ие болып, әлі дайын болмаған чиптің орнына жұмыс істеп тұрған мақсатты жүйеге қосылуға мүмкіндік береді, соның арқасында жүйенің барлық бөліктерін нақты деректермен жөндеуге болады. Бұл схема ішіндегі эмуляцияның нақты бір жағдайы. Кейде аппараттық эмуляция бағдарламалық эмуляция функцияларын қолдауға арналған аппараттық процессорлары бар кеңейту карталары сияқты аппараттық құрылғылармен шатастырылуы мүмкін, мысалы, x86 чиптері бар ескі қосымша платалар, олар x86 операциялық жүйелерін әртүрлі процессор отбасының негізгі платаларында іске қосуға мүмкіндік береді.
emulating hardware with other hardware
In integrated circuit design, hardware emulation is the process of imitating the behavior of one or more pieces of hardware (typically a system under design) with another piece of hardware, typically a special purpose emulation system. The emulation model is usually based on a hardware description language (e. g. Verilog) source code, which is compiled into the format used by emulation system. The goal is normally debugging and functional verification of the system being designed. Often an emulator is fast enough to be plugged into a working target system in place of a yet to be built chip, so the whole system can be debugged with live data. This is a specific case of in circuit emulation. Sometimes hardware emulation can be confused with hardware devices such as expansion cards with hardware processors that assist functions of software emulation, such as older daughterboards with x86 chips to allow x86 OSes to run on motherboards of different processor families.
Кіріспе
Кремний интегралдық схемаларының ең үлкен бөлігі кем дегенде ішінара функционалдық қателер мен жобалау процесінің RTL кезеңінде байқаусызда енгізілген қателерге байланысты. Осылайша, кешенді функционалдық тексеру әзірлеу шығындарын азайту және өнімді уақтылы жеткізу үшін маңызды. Дизайнның функционалдық тексеруі көбінесе логикалық модельдеу және/немесе прототиптеу арқылы өрістегі бағдарламаланатын қақпа массивтерінде (FPGA) жүргізіледі. Олардың әрқайсысының артықшылықтары мен кемшіліктері бар және көбінесе екеуі де қолданылады. Логикалық симуляция оңай, дәл, икемді және арзан. Алайда, симуляция үлкен жобалар үшін жиі жеткіліксіз жылдамдықпен жүреді және қолданбалы бағдарламалық жасақтаманы аппараттық жобаға қарсы орындау үшін әрдайым баяу жүреді. FPGA-ға негізделген прототиптер жылдам және арзан, бірақ бірнеше FPGA-ға үлкен дизайнды енгізу үшін қажетті уақыт өте ұзақ болуы мүмкін және қатеге ұшырайды. Құрылыс кемшіліктерін түзету үшін өзгерістерді енгізуге де көп уақыт кетеді және тақтаның сымдарын өзгертуді талап етуі мүмкін. Дәстүрлі өндіруші құралдармен FPGA прототиптерінің жөндеу мүмкіндігі аз, FPGA ішінде нақты уақытта сигналдарды тексеру өте қиын, ал FPGA-ны қайта құрастыру үшін қозғау тым ұзақ уақыт қажет. Бұл сигналдың көрінуіне шектеулерді алып тастайтын FPGA прототиптерінің жетілдірілген жөндеу құралдарының пайда болуымен өзгеруде. Әдеттегі компромисс - қателер мен түзетулер жиі кездесетін кезде тексеру процесінің басында симуляцияны пайдалану, ал жоба негізінен аяқталған кезде және жүйе деңгейіндегі қалған қателерді ашу үшін жеткілікті сынақ алу үшін жылдамдық қажет болған кезде даму циклының соңында прототиптеу. FPGA прототиптеу бағдарламалық жасақтаманы сынау үшін де танымал. Симуляция жылдамдату симуляцияның өнімділік кемшіліктерін белгілі бір дәрежеде шеше алады. Мұнда жобаны аппараттық жеделдетушіге картаға түсіреді, ол әлдеқайда жылдам жүреді және тест-орын (және кез келген мінез-құлық дизайны коды) жұмыс станциясындағы симуляторда жұмыс істеуін жалғастырады. Жоғары жолақты, төмен күту уақыты бар арна жұмыс орнын акселератормен байланыстырып, сынақ үстелі мен жобалау арасындағы сигнал деректерін алмастырады. Амдалдың заңы бойынша, тізбектегі ең баяу құрылғы қол жетімді жылдамдықты анықтайды. Әдетте бұл симулятордағы сынақ үстелі. Өте тиімді сынақ үстелімен (C-де немесе транзакция негізінде жазылған) арна бөтелкеге айналуы мүмкін. Кейбір жағдайларда транзакция деңгейіндегі сынақ үстелі эмуляцияланатын жобаға "тірі" ынталандыру ретінде көп деректерді бере алады. Схема эмуляциясы FPGA прототиптеудің іске асыру уақытын біршама жақсартады және толық, тиімді жөндеу мүмкіндігін қамтамасыз етеді. Эмуляция мұны FPGA прототиптеріне ($75K) қарағанда жылдамдық пен жоғары құн (1M +) есебінен жасайды. Эмуляцияға басқа бағытта қарағанда, ол симуляцияланған сынақ үстелінің орнына "тірі" ынталандыруды енгізе отырып, үдетудің жұмысын жақсартады. Бұл ынталандыру мақсатты жүйеден (дайындалып жатқан өнім) немесе сынақ жабдықтарынан болуы мүмкін. Эмуляция симуляция жылдамдығынан 10 000 - 100 000 есе жылдамдықпен қолданбалы бағдарламалық жасақтаманы сынауға мүмкіндік береді, сонымен бірге кешенді аппараттық жөндеу ортасын ұсынады.
Эмуляция және екі күйлі логика
Модельдеу, жеделдету және эмуляция арасындағы тағы бір айырмашылық – аппараттық құралдарды пайдалану арқылы жеделдеткіштердің іске асырылуының салдарынан туындайды. Олардың тек екі логикалық күйі бар – дайын кремний тізбегінің қалай жұмыс істейтінін дәл көрсету. Бұл мынаны білдіреді:
Олар X күйінің бастамалануын талдауға жарамсыз. Олар күштілік шешілуін талдай алмайды, немесе кем дегенде мұндай талдау компиляция кезінде статикалық түрде жүргізілуі керек. Эмуляторлар тізбектің нақты уақытын модельдей алмайды, сондықтан олар жарыс жағдайларын немесе орнату және уақытты ұстау талаптарының бұзылуын анықтай алмайды. Бұл міндеттер логикалық модельдеу кезінде немесе статикалық уақытты талдау құралымен дұрыс орындалады.
They are not useful for analyzing X state initialization. They cannot analyze strength resolution, or at least this must be done statically at compile time. Emulators do not model precise circuit timing, and hence they will probably not find any race conditions or setup and hold time violations. These tasks are properly carried out during logic simulation or with a static timing analysis tool.
Эмуляция мен прототиптеу
Эмулятор мен FPGA прототиптеу жүйесінің басты дәстүрлі айырмашылығы – эмулятор толыққанды жөндеу ортасын ұсынады, ал прототиптеу жүйесінде жөндеу мүмкіндігі шектеулі немесе жоққа жақын болады. Ол көбінесе дизайн жөнделгеннен кейін жүйелік талдау және бағдарламалық құралдарды әзірлеу үшін бірнеше дана жасауға қолданылады. Бірақ, FPGA LUT-қа минималды әсер ететін, толық RTL сигналдарын көруге мүмкіндік беретін, терең дерек жинауға және көп чипті, әртүрлі сағат домендерін талдауға арналған жаңа құралдар пайда болуда. Бұл құралдар эмулятормен салыстырылатын тиімді жөндеуді қамтамасыз етеді.