Ohjelmoitavat järjestelmäpiirit

Ohjelmoitavat järjestelmäpiirit ovat osa modernia digitaalielektroniikkaa ja ne mahdollistavat elektroniikan suunnittelun hieman samaan tapaan kuin mitä tietokoneohjelmia kehitään. Tietokoneessa toimivien työkalujen avulla suunnittelija voi suunnitella ja testata elektroniikkaa, joka sisältää esimerkiksi prosessorin, muistia, oheispiirejä sekä ohjelmiston. Toimiva kokonaisuus ladataan tietokoneelta järjestelmäpiirille, jolloin se ryhtyy suorittamaan etukäteen suunniteltua toimintaa.

Järjestelmäpiirit tai SoC-piirit (System on Chip), kuten piirejä myös kutsutaan, sisältävät itsessään suunnittelijan luoman täydellisen elektronisen kokonaisuuden eli järjestelmän. [1] Järjestelmäpiirille luonteva alusta on ohjelmoitava logiikkapiiri eli FPGA (Field Programmable Gate Array), jonka elektroninen toiminnallisuus voidaan ohjelmallisesti konfiguroida ja muuttaa tarvittaessa jälkikäteen. [2] Yleensä komponenttitoimittajien työkalut sisältävät komponenttikirjaston, josta löytyy esimerkiksi prosessoreita, muisteja ja oheispiirejä. Lisäksi suunnittelija täydentää tarjontaa suunnittelemalla tarvittaessa omia piirejä kovokuvauskielillä, kuten VHDL ja Verilog. [3] [4] Lisäksi erilaisten piirien kovokuvauksia on myytävänä IP-lohkoina (Intellectual Property). [5] Yleensä IP-lohkot ovat hyödyllisimmillään teknisesti monimutkaisten erikoispiirien tapauksessa, jolloinka ne nopeuttavat suunnittelua sekä parantavat suunnittelun laatua. Esimerkiksi matkapuhelimissa laajasti käytetyt Armin suunnittelemat prosessorit olivat pitkään saatavissa vain VHDL-kuvauksina eivätkä ollenkaan fyysisinä piireinä. [6]

Järjestelmän piirin suunnittelu

Järjestelmäpiirin suunnittelun vaatimukset tulevat käyttökohteesta. Tietyt parametrit, kuten prosessorin tyyppi ja suorituskyky, tarvittava muistin määrä sekä tarvittavien logiikkasolujen määrä riipppuvat käyttöympäristöstä ja tehtävistä, joita järjestelmäpiirille tulee. Lähtötietojen perusteella suunnittelija miettii mitkä osat toiminnallisuudesta on järkevä toteuttaa prosessorin ja ohjelman avulla ja mitkä osat suoraan elektroniikalla. Esimerkiksi nopea reaaliaikainen signaalikäsittely saattaa olla liian hidasta prosessorin ja ohjelmiston suorittamana, jolloinka se on järkevintä toteuttaa suoraan laitteistotasolla digitaalisena elektroniikkana hyödyntämällä ohjelmoitavan logiikkapiirin logiikkasoluja (kuva 1).

Kuvassa 1 kuvakaappaus tietokoneen näytöstä, jossa näkymä systeemipiirin elekroniikan konfiguroinnista

KUVA 1. Näkymä systeemipiirin elekroniikan konfiguroinnista tietokoneella (kuva: Timo Vainio)

Koska kyseessä on järjestelmäpiiri prosessoreineen, se vaatii toimiakseen ohjelmiston. Ohjelmiston laajuudesta ja muille ohjelmistolle lankeavista vaatimuksista saa perusteita päätökseen mahdollisen käyttöjärjestelmän käytöstä. Jos ohjelmistolla on paljon tehtäviä asioita, mutta ne eivät ole erityisen suorituskykykriittisiä, reaaliaikakäyttöjärjestelmää on luonteva käyttää ja se parantaa ohjelmiston laatua. Prosessorilla suoritettavien tehtävien tiukat nopeusvaatimukset puolestaan saattavat estää käyttöjärjestelmän käytön, vaikka sen käyttö muuten olisi perusteltua. Sovelluskehitys järjestelmäpiirin prosessorille on tehtävä joka tapauksessa, oli implementaatiossa käyttöjärjestelmä mukana tai ei. Tavallisimmin ohjelmointikielenä käytetään C- tai C++-kieltä (kuva 2).

Kuvassa 2 on kuvakaappaus näkymästä järjestelmäpiirin ohjelmistokehitysikkunasta tietokoneella

KUVA 2. Näkymä järjestelmäpiirin ohjelmistokehitysikkunasta tietokoneella (kuva: Timo Vainio)

Järjestelmäpiirin testaus

Kun järjestelmäpiirin kuuluu valmistajan valmiita kirjastokomponentteja tai ulkopuolelta ostetuja IP-lohkoja, ne on yleensä hyvin testattu toimittajan toimesta. Sen sijaan omat kovokuvaukset on syytä testata huolella simuloimalla ennen kuin ne otetaan käyttöön. Samoin ohjelmisto voidaan testata etukäteen käyttäen normaaleja ohjelmistotestauksen menetelmiä. Kokonaisuuden testausta eli integrointitestausta varten järjestelmäpiirille konfiguroidaan suunniteltu laitteisto prosessroreineen, muisteineen ja oheispiireineen. Sitten piirille ladataan ohjelmisto mahdollisine käyttöjärjestelmineen, jolloin kokonaisuus on valmis toimimaan. Tämän jälkeen kokonaisuutta testataan, jolloin nähdään kuinka hyvin järjestelmälle asetut vaatimukset täyttyvät. Testien perusteella yleensä sekä elektroniikan osuutta että ohjelmiston osuutta viilataan paremmin toimivaksi. Integrointitestauksen kattavuus ja onnistuminen riippuu pitkälti siitä, kuinka hyvin testit on suunniteltu ja kuinka paljon niitä tehdään. Hyvin mietitty ja suoritettu testaus takaa järjestelmäpiirienkin tapauksessa parhaimman lopputuloksen.

Järjestelmäpiirit Oulun ammattikorkeakoulun opintotarjonnassa

Informaatioteknologian insinööripuolen laitetekniikan opiskelijat opiskelevat VHDL-kieltä ja järjestelmäpiirin suunnittelua. Suunnittelijan pitää hallita elektroniikkaa, digitaaliteknikkaa, VHDL-kieltä sekä prosessoritekniikkaa, joten elektroniikan suunnittelu järjestelmäpiirille vaatii monipuolista elektroniikan osaamista. Sen lisäksi tarvitaan kohtuulliset perustaidot ohjelmoinnista sekä mahdollisesti myös reaaliaikakäyttöjärjestelmistä. Tässä mielessä järjestelmäpiirin suunnittelu nivoo mukavasti yhteen lähes koko tutkinnon keskeisen ammatillisen opintosisällön (kuva 3).

Valokuva opetuskortista

KUVA 3. Opetuskortti, johon opiskelijat suunnittelevat omia järjestelmäpiirejään (kuva: Timo Vainio)

Yhteenveto

Järjestelmäpiirit mahdollistavat erittäin monimutkaisten toiminnallisten järjestelmien suunnittelun yhdelle piirille. Piirit voivat sisältää prosessoreita, muisteja sekä erittäin paljon oheispiirejä. Järjestelmän toimintaa ohjaavat ohjelmistot voivat puolestaan myös olla laajoja sekä toimia tarvittaessa reaaliaikakäyttöjärjestelmän alaisuudessa. Mikä parasta, systeemipiirin elektroniikka voidaan konfiguroida paremmaksi myöhemmin, kuten tietysti myös järjestelmäpiirin ohjelmisto. Tämä aihealue on osa Oulun ammattikorkeakoulun opintotarjontaa.

Vainio Timo, yliopettaja
Oulun ammattikorkeakoulu,  Informaatioteknologian yksikkö


Lähteet

[1] Techopedia. Hakupäivä 7.9.2020. https://www.techopedia.com/definition/702/system-on-a-chip-soc

[2] Wikipedia. Field-programmable gate array. Hakupäivä 7.9.2020. https://en.wikipedia.org/wiki/Field-programmable_gate_array

[3] Wikipedia. VHDL. Hakupäivä 7.9.2020. https://fi.wikipedia.org/wiki/VHDL

[4] Wikipedia. Verilog. Hakupäivä 7.9.2020 https://en.wikipedia.org/wiki/Verilog

[5] Wikipedia. Semiconductor intellectual property core. Hakupäivä 7.9.2020. https://en.wikipedia.org/wiki/Semiconductor_intellectual_property_core

[6] Wikipedia. Arm Holdings. Hakupäivä 7.9.2020. https://en.wikipedia.org/wiki/Arm_Holdings

 

Pysyvä osoite: http://urn.fi/urn:nbn:fi-fe2020100678145

Saatat pitää myös näistä...

Vastaa

Sähköpostiosoitettasi ei julkaista. Pakolliset kentät on merkitty *