Omia mikropiirejä suunniteltaessa simulointi on jatkuvasti toistuva työvaihe. Huolellisessa suunnittelussa koko logiikan simulointi tehdään eri työvaiheissa jopa kolmeen kertaan. Testaus todellisuutta vastaavissa olosuhteissa edellyttää, että piirille tulee todellisuutta vastaavat signaalit. Niiden olisi myös pysyttävä täsmälleen samoina eri simulointikerroilla.
Jos tulosignaaleja on vain muutamia, ne voi helposti muodostaa simulaattorin omilla käskyillä tai komentokielellä. Kun signaaleja on paljon tai simuloinnin täytyy kattaa pitkiä aikavälejä, testisignaalien generointiin tarvitaan tehokkaampia menetelmiä.
Tyypillinen itse suunniteltu piiri voisi olla erikoisominaisuuksia sisältävä video-ohjain, joka liitetään prosessoriväylään. Väyläliitännän tarvitsemat signaalit voi muodostaa simulaattorin komentokielellä melko helposti, jos tarvitaan vain muutamia väyläjaksoja. Mutta video-ohjaimen testaukseen tarvitaankin useita tuhansia jaksoja, joissa kirjoitettavan datan täytyy muodostaa haluttu kuva. Tahdistuspulssien ajoituksen voi kyllä tarkistaa suoraan simulaattorin tulostuksista, mutta lähtevän videodatan tulkinta on hyvin vaikeaa pelkän pulssikaavion perusteella.
Ratkaisu tälläisiin monimutkaisia herätesignaaleja vaativiin testaustilanteisiin on VHDL-testipenkki. Se on kasa koodia, joka muodostaa kaikki testattavan piirin tarvitsemat tulosignaalit. Usein testipenkki myös lukee lähtösignaalit ja muokkaa ne helpommin tulkittavaan muotoon, joskus jopa tarkistaa sen oikeellisuuden.
Testipenkki voi hyödyntää niitäkin VHDL-kielen ohjelmointiominaisuuksia, joita ei voida käyttää varsinaisessa logiikkasuunnittelussa. Video-ohjaimen tulodatana voi käyttää levyllä olevaa todellista bittikarttakuvaa, jonka testipenkki lukee levyltä ja kirjoittaa piirille prosessoriliitännän kautta samoilla ajoituksilla kuin todellinen prosessorikin. Videolähtö voidaan puskuroida kuvaruutua vastaavaan taulukkoon ja tulostaan siitä bittikarttana levylle. Tulosten tulkintaan voi sitten käyttää vaikka Windowsin Paint-ohjelmaa.
Keskeytyksien testausta varten testipenkki voi emuloida todellisen prosessorin käyttäytymistä keskeytyskäsittelyn aikana. Väyläliitännän ajastus voidaan testata tyypillisten arvojen lisäksi myös ääriarvoilla ja virhetilanteissa.
RTL-koodin testauksessa itse piirinkin toteutus on myös VHDL-koodia, joten simulointi onnistuu helposti VHDL-simulaattorilla. Synteesin jälkeen piirin koodi on joka porttitason VHDL-koodia tai pelkkä vetolista. Tälläisen sekakoodin simulointi vaati jo hyvin kehittyneen kehitysympäristön, joita aikaisemmin on ollut tarjolla vain Unix-työasemissa. Uusimmat Windows-pohjaiset järjestelmät osaavat jo tämänkin tempun.
RTL-koodin testaustuloksia voidaan käyttää myöhempien porttitason simulointitulosten vertailukohtana. Synteesin ja sijoittelun jälkeisissä testituloksissa pitäisi näkyä porttiviiveiden ja johdotusviiveiden vaikutus lähtösignaalien ajoituksessa, mutta varsinaisen toiminnan pitäisi kuitenkin pysyä täysin samanlaisena. Yleensä synteesivirheet tai ajoitusongelmat paljastuvat testituloksia vertailemalla.
Testipenkkiä käyttämällä suunnittelija rakentaa projektia varten räätälöidyn testiympäristön, missä signaalilähteet ja mittalaitteet on koodattu lausekielellä. Samaa testipenkkiä voi käyttää pienin muutoksin muissa samantyyppissä sovelluksissa.
Edelliselle sivulle Kotisivulle