Esittely latautuu. Ole hyvä ja odota

Esittely latautuu. Ole hyvä ja odota

Ohjelmoitavat logiikkaverkot

Samankaltaiset esitykset


Esitys aiheesta: "Ohjelmoitavat logiikkaverkot"— Esityksen transkriptio:

1 Ohjelmoitavat logiikkaverkot
HTOL Digitaalitekniikan perusteet Luku 16 Sivu 1 (22) Luentokalvoseloste Fe Ohjelmoitavat logiikkaverkot Ohjelmoitavat logiikkaverkot Programmable logic PLD-piirit Programmable logic devices FPGA-piirit Field-programmable gate arrays Järjestelmäpiirit SoPC, System on a programmable chip SPLD-piirit Simple PLD's CPLD-piirit Complex PLD's SoPC PLD FPGA

2 Johdanto Tässä luvussa
esitetään ohjelmoitavien logiikkaverkkojen ryhmittely ja päätyypit PLD, FPGA ja SoPC tutustutaan PLD- ja FPGA-verkkoihin esitetään verkkojen yleiset rakenteet ja arkkitehtuurit esitetään verkkojen osien rakenteita esitetään eri tyyppisten verkkojen ohjelmointi esitetään esimerkkejä kombinaatiopiirien ja synkronisten sekvenssipiirien toteuttamisesta eri tyyppisillä verkoilla esitetään ohjelmoitavien logiikkaverkkojen suunnitteluprosessi Luvun tavoitteena on antaa yleiskäsitys ohjelmoitavista logiikkaverkoista tutustuttaa eri tyyppisiin ohjelmoitaviin logiikkaverkkoihin ja niiden keskeisiin ominaisuuksiin ja eroihin

3 Digitaalisten mikropiirityyppien ryhmittely
Digitaaliset mikropiirit Digital integrated circuits Vakiopiirit Standard circuits Ohjelmoitavat logiikkaverkot Programmable logic Asiakaspiirit Application specific IC's, ASIC's piirivalmistaja suunnittelee piirivalmistaja valmistaa toiminta kiinteä vapaasti saatavilla piirivalmistaja suunnittelee piirivalmistaja valmistaa toiminta ohjelmoidaan vapaasti saatavilla laitevalmistaja suunnittelee piirivalmistaja valmistaa toiminta kiinteä vain laitevalmistajan saatavilla

4 Yleistä ohjelmoitavista logiikkaverkoista
Ostettaessa vakiopiiri suuri määrä piirielementtejä ja johtimia piirielementtien toiminta osittain määrittelemättä piirielementtien väliset kytkennät pääosin tekemättä Käyttäjä ohjelmoi tietokoneella toiminnan ja kytkennät ohjelmoinnin jälkeen piiri on asiakaspiiri Käyttömäärä on kasvanut ja kasvaa edelleen Käytön antamia etuja pieni koko ja toiminnan luotettavuus tuotekehitysprosessin nopeus toteutuksen joustavuus Käyttöön vaikuttavia heikkouksia suuri tehonkulutus osalla piireistä eräissä tapauksissa hinta

5 Ohjelmoitavien logiikkaverkkojen ryhmittely
Ohjelmoitavat logiikkaverkot Programmable logic PLD-piirit Programmable logic devices Järjestelmäpiirit SoPC, System on a programmable chip SPLD-piirit Simple PLD's FPGA-piirit Field-programmable gate arrays CPLD-piirit Complex PLD's Uudet piirit pääosin FPGA- ja järjestelmäpiirejä Mutkikkuus ja kapasiteetti kasvavat

6 Ohjelmoitavien logiikkaverkkojen päätyypit
HTOL Digitaalitekniikan perusteet Luku 16 Sivu 6 (22) Luentokalvoseloste Fe Ohjelmoitavien logiikkaverkkojen päätyypit PLD PLD (Programmable Logic Device) ohjelmaltaan kiinteä eli haihtumaton: ohjelma säilyy, vaikka käyttöjännite poistetaan vanhin ohjelmoitavien logiikkaverkkojen päätyyppi osa kertaohjelmoitavia, osa uudelleenohjelmoitavia pieniä (SPLD) tai keskisuuria (CPLD), luokkaa porttia FPGA (Field Programmable Gate Array) pääosa on ohjelmaltaan haihtuvia eli ohjelma häviää, kun käyttöjännite poistetaan ohjelmoidaan uudelleen aina, kun piiriin kytketään sähkö osa ohjelmaltaan haihtumattomia eli ohjelma säilyy keskisuuria tai suuria, jopa miljoonia portteja Ohjelmoitavat järjestelmäpiirit (SoPC) suuria ja mutkikkaita piirejä suuri FPGA-osuus prosessori, muistia, erityislohkoja kokonainen järjestelmä yhdessä piirissä FPGA SoPC

7 SPLD-piirin perusrakenne
? 1 Muodostaa SOP-lausekkeen Ohjelmoitavat liitännät Kytkentä- matriisi Inter- connect array Liitäntä- lohko I/O block Liitäntöjen sallintasignaalit Tulo- liitännät Makrosolu 1 Macrocell 1 I/O1 Makrosolu 2 IN1 I/O2 IN2 Makrosolu 3 I/O3 ... INm ... ... Makrosolu n I/On Liitäntäsignaalit I/O1 - I/On

8 CPLD-piirin perusrakenne
Muodostavat n kpl SOP- tai I-SOP-lausekkeita CPLD-piirin perusrakenne Ohjelmoitavat liitännät ? 2 Kytkentä- matriisi Liitäntöjen A sallintasignaalit Liitäntä- lohko A Makrosolulohko A Makrosolut A1-Am I/OA1 Tulo- liitännät ... Makrosolulohko A Makrosolut Am+1-An I/OAm Upotetut (embedded) makrosolut IN1 Liitäntäsignaalit I/OA1 - I/OAm IN2 ... ... ... Liitäntöjen K sallintasignaalit Liitäntä- lohko K INp Makrosolulohko K Makrosolut K1-Km I/OK1 CPLD ... Makrosolulohko K Makrosolut Km+1-Kn I/OKm Liitäntäsignaalit I/OK1 - I/OKm

9 PLD-piirien makrosolurakenteet
PAL SPLD-arkkitehtuurit kombinaatio-osa muodostaa SOP-lausekkeita muodostetaan tulotermejä JA-porteilla ja lausekkeet niistä TAI-porteilla PAL (Programmable Array Logic), nykyisin vahvasti yleisin JA-porttien kytkentä TAI-portteihin on kiinteä PLA (Programmable Logic Array), nykyisin harvinainen JA-porttien kytkentä TAI-portteihin on ohjelmoitava seuraavassa keskitytään PAL-piireihin CPLD-piirien perusarkkitehtuuri on PAL-tyyppinen, mutta niissä on yleensä makrosolujen käyttöä tehostavia lisäominaisuuksia suorat liitännät makrosoluista kytkentämatriisiin osa makrosoluista on upotettuja: ei yhteyttä liitäntälohkoon kombinaatio-osassa SOP- ja I-SOP-lausekkeita sekä XOR-logiikkaa siirrettävät JA-portit: lainattavissa naapurimakrosolun käyttöön jaettavat JA-EI-portit: sama invertoitu tulotermi useaan makrosoluun PLA

10 Ohjelmoituja kytkentöjä
PAL-arkkitehtuuri Makro- 1 & IN1 1 Puskuri-invertteripiirit Kytkentämatriisi ohjelmoitavat kytkennät liitäntäsignaalit kytketään JA-porttien tuloihin Makrosolujen JA-TAI-verkot JA-portit yhtä monta tuloa kuin liitäntä- signaaleja muodostavat halutut tulotermit tietty määrä, esim. 5 tai 8 TAI-portit muodostavat SOP-lausekkeet vakiomäärä tuloja & 1 IN2 & Ohjelmoituja kytkentöjä solujen JA-TAI- & Kyt- ken- tä- mat- riisi 1 ? 3 & & verkot PAL 1 I/O1 1 I/O2

11 Ohjelmoituja kytkentöjä
PLA-arkkitehtuuri 1 & IN1 1 Puskuri-invertteripiirit Kytkentämatriisit 1 ja 2 ohjelmoitavat kytkennät liitäntäsignaalit kytketään JA-porttien tuloihin Yhteiset JA-portit yhtä monta tuloa kuin liitäntäsignaaleja muodostavat halutut tulotermit tulotermit yhteisiä Makrosolujen TAI-portit muodostavat SOP- lausekkeet yhtä monta tuloa kuin JA-portteja & 1 IN2 & Makro- solujen TAI- & Ohjelmoituja kytkentöjä 1 & ? 4 Kyt- ken- tä- mat- riisi 1 & portit Kytkentä- matriisi 2 JA- verkko 1 PLA I/O1 1 I/O2

12 PAL-tyyppisen CPLD-piirin tyypillinen makrosolu
HTOL Digitaalitekniikan perusteet Luku 16 Sivu 12 (22) Luentokalvoseloste Fe PAL-tyyppisen CPLD-piirin tyypillinen makrosolu GR Kellosign. valinta Nollaussign. valinta Koko piirille yhteiset signaalit Makrosolun sisäiset signaalit GCLK ? 5 & SOP/ I-SOP-/ XOR-valinta Ohjelmoitava valinta 1 Komb./sekv. -valinta & =1 1D/1T Liitäntä- lohkoon Kytkentä- matriisista & C1 1 R & & ACLK & LR Seuraavaan makrosoluun Kytkentämatriisiin

13 CPLD-piirin tyypillinen liitäntälohko
Koko piirille yhteinen sallintasignaali Liitäntäkohtaiset sallintasignaalit Ohjelmointi tuloksi, lähdöksi tai kaksisuuntaiseksi liitännäksi EN GOE Kytkentä- matriisiin Ohjelmoitava valinta & I/O1 I/O2 1 OE1 OE2 ? 6 Kytkentä- matriisista Makro- soluista IOB

14 PLD-piirien ohjelmointitavat
PLD-piirit Programmable logic devices Kertaohjelmoitavat One-time programmable Uudelleen ohjelmoitavat Reprogrammable OTPROM- perusteiset EPROM- perusteiset EEPROM- perusteiset Flash- perusteiset Erikseen ohjelmoitavat Programmer programmable Järjestelmäohjelmoitavat In-system programmable Nykyään pääosin käytössä

15 Kombinaatiopiirin toteutus PAL-piirillä 1
Ohjelmoitu tuloksi A B C F = A·B + B·C + A·B·C Kaikki tulot kuvataan yhdellä signaaliviivalla F G G = B·C + A·B·C Kaikki funktiot voidaan toteuttaa suoraan SOP- lausekkeina H + A·B·C H = A·B·C + A·B·C

16 Kombinaatiopiirin toteutus PAL-piirillä 2
Ohjelmoitu tuloksi A B C F = A·B + A·C + B·C + A·B·C ? 7 F  F voidaan toteuttaa I-SOP-muodossa = A·B·C + A·B·C + A·B·C G K G voidaan toteuttaa apufunktiolla K: K = A·B·C + A·B·C G = A·B·C + A·B·C + K A·B·C + A·B·C + G = A·B·C +

17 Synkronisen sekvenssipiirin toteutus PAL-piirillä
Tulosignaali P Kaksi tilasignaalia, Q0 ja Q1 Lähtösignaali L Ohjelmoitu tuloksi CLK RES P Q0 Q1 L (I-SOP) D0 = Q0 + Q1 = Q0·Q1 (SOP) D1 = Q0·Q1 + P·Q1 (I-SOP) L = Q0 + Q1 + P = Q0·Q1·P

18 FPGA-piirin perusrakenne
Ohjelmoitavat logiikka- lohkot eli CLB:t (Configurable Logic Block) toiminnan toteutus karkeajakoiset FPGA:t (yleinen, seuraavassa kuvataan vain näitä) koostuvat viipaleista (slice), esim. neljä viipaletta/CLB hienojakoiset FPGA:t Liitäntälohkot eli IOB:t (Input/Output Block) piirin ulkoiset liitännät Kytkentämatriisi lohkojen väliset kytkennät Ohjelmoitava logiikkalohko Kytkentä- matriisi Liitäntälohko

19 CLB:n viipaleen rakenne-esimerkki
Ohjelmoitava osa Tulovalitsin Muisti- piiri FPGA

20 FPGA Hakutaulun toiminta MUX Voidaan kuvata
ohjelmoitavalla kiintomuistilla muistisoluilla ja tulovalitsimella Tulovalitsinkuvaus muuttujat valintatuloihin muistisolujen sisältö datatuloihin Muistisolujen sisältö saadaan suoraan funktion totuustaulusta A1 A2 15 Muuttujat G A3 A4 3 0/1 0/1 1 0/1 2 0/1 3 0/1 4 0/1 5 0/1 6 Ohjelmoitavat muistisolut 0/1 7 F FPGA 0/1 8 0/1 9 0/1 10 0/1 11 0/1 12 0/1 13 0/1 14 0/1 15

21 Liitäntälohkon rakenne
Ohjelmoitava tulovalitsin EN FPGA S S Tulo/lähtö- valintapiirit ED 2D ECLK 1C2 ECEN G1 R R EN I/O S OD 2D Lähtösignaali- piirit OCLK 1C2 OCEN G1 R I IQ S Tulosignaali- piirit 2D ICLK 1C2 ICEN G1 R

22 Kytkentämatriisin rakenne
FPGA Johtimet kulkevat lohkojen (CLB ja IOB) välissä Johdinten kytkennät ohjelmoidaan Eri tyyppisiä johtimia kellosignaalijohdinverkko useita ulkoisia kelloliitäntöjä voidaan kytkeä mihin hyvänsä piirin kiikkuun pitkät johtimet piirin reunasta reunaan tai yhteydessä vain osaan lohkoista lyhyet johtimet usein monia eri tyyppejä lähekkäin olevien lohkojen yhdistämiseen suorat johtimet vierekkäisten ja kulmittaisten lohkojen yhdistämiseen

23 FPGA-piirien ohjelmointitavat
FPGA-piirit Field-programmable gate arrays Valtateknologia nykyään Kertaohjelmoitavat One-time programmable Uudelleen ohjelmoitavat Reprogrammable Haihtumaton ohjelma Hienojakoiset logiikkalohkot Haihtuva ohjelma Karkeajakoiset logiikkalohkot Johdakeperusteiset Antifuse Flash- perusteiset SRAM- perusteiset

24 Uudelleen ohjelmoitavien piirien ohjelmointi
FPGA Piirit ovat järjestelmäohjelmoitavia Asennetaan piirilevylle ohjelmoimattomina Flash-perusteiset ohjelmoidaan kuten PLD-piirit SRAM-perusteiset ohjelmoidaan aina, kun laitteeseen kytketään sähkö 1) ohjelma on laitteessa erillisessä kiintomuistissa sarjaliitäntä FPGA-piiriin ohjelma siirtyy automaattisesti FPGA-piiriin, kun sähkö kytketään 2) laitteessa oleva prosessori lataa ohjelman FPGA-piiriin ohjelma on samassa kiintomuistissa kuin prosessorin oma ohjelma eräissä piireissä prosessori voi lukea ohjelman FPGA-piiristä ohjelman oikeellisuuden varmistus 3) ohjelma ladataan ulkopuolelta JTAG-ohjelmointiliitännän kautta suurissa järjestelmissä keskitetty ohjelman jakelu suunnittelun, testauksen ja huollon yhteydessä

25 Kytkentäfunktion toteuttaminen FPGA-piirissä 1
Suoraan totuustaulun perusteella Yksi tai useita hakutauluja/funktio Esimerkeissä yksinkertaisuuden vuoksi kahden muuttujan hakutaulu Kahden muuttujan funktio: FPGA ? 8 MUX B A G 3 1 F 2 A B F 1 F = A·B + A·B

26 Kytkentäfunktion toteuttaminen FPGA-piirissä 2
Laajennus CLB:n viipaleen tulovalitsimella Kolmen muuttujan funktio: MUX C B G 3 1 G1 A 2 G = A·B + B·C + A·B·C A B C G 1 ? 9 Valittu, kun A = 0 A = 0 1 Valittu, kun A = 1 A = 1 1

27 Ohjelmoitavat järjestelmäpiirit
Yhdellä piirillä toteutetaan laitteen koko digitaaliosa Perustuvat FPGA-teknologiaan Piiri sisältää suuren FPGA-osan lisäksi piiriperhekohtaisesti vaihdellen vaihtomuistia: useita erillisiä muistilohkoja eri tarkoituksiin signaalinkäsittelylohkoja tehokas prosessori tai useita prosessoreja kiinteä prosessori tai piiriin ohjelmoitava(t) prosessori(t) kellosignaalin käsittelylohkoja Kapasiteetiltaan keskisuuria tai suuria esimerkiksi Xilinxin Virtex 7 -perheen suurin piiri XC7V2000T (tulossa) ohjelmoitavan logiikkalohkon viipaletta (CLB slice) Kib erillistä muistia 2160 signaalinkäsittelylohkoa enimmillään 1216 liitäntänastaa signaaleille SoPC

28 Ohjelmoitavien logiikkaverkkojen suunnitteluprosessi
Suunnittelu (Design) Suunnittelun varmistus Design verification Määrittely Specification Piirisuunnittelu Design entry Toiminnallinen simulointi Functional simulation Synteesi Synthesis Toteutus Implementation Ajoitussimulointi Timing simulation Ohjelmointi Programming Testaus Testing

29 Ohjelmoitavien logiikkaverkkojen suunnitteluvälineet
Suunnitteluohjelmistot riippumattomien ohjelmistotoimittajien ohjelmistot soveltuvat kaikkien tai ainakin useiden piirivalmistajien piireille esim. Mentor Graphicsin FPGA Advantage piirivalmistajien ohjelmistot soveltuvat vain kyseisen piirivalmistajan piireille saatavilla ilmaisversioita, joissa on rajoitetut toiminnot esim. Alteran Quartus II ja Xilinxin ISE Ohjelmointilaitteet ja -kaapelit piirien ohjelmointiin erikseen tai paikalleen asennettuina Kokeilulevyt piirilevyt, joille on asennettu logiikkaverkko logiikkaverkon lisäksi muita piirejä, ohjelmointiliitäntä ja muita liitäntöjä kytkimiä, ledinäyttöjä ja liittimiä tulo- ja lähtösignaaleille Ohjelmointiliitäntä USB-liitäntä

30 Yhteenveto Ohjelmoitava logiikkaverkko ostetaan tyhjänä ja ohjelmoidaan Ohjelmoitavien logiikkaverkkojen päätyypit ovat PLD, FPGA ja SoPC PLD-piirit ovat joko pieniä SPLD-piirejä tai keskisuuria CPLD-piirejä PLD-piirien perusarkkitehtuurit ovat PAL (yleisin) ja PLA PLD-piireissä on kytkentämatriisi, makrosoluja ja liitäntälohkoja PLD-piirit ohjelmoidaan joko ohjelmointilaitteessa tai piirilevyllä Makrosoluissa muodostetaan SOP- ja I-SOP-muotoisia lausekkeita PLD-piireillä voidaan toteuttaa kombinaatiopiirejä ja sekvenssipiirejä FPGA-piirit ovat kooltaan keskisuuria tai suuria FPGA-piirit ovat joko hienojakoisia tai karkeajakoisia FPGA-piirit koostuvat CLB- ja IOB-lohkoista ja kytkentämatriisista FPGA-piirit ovat joko kertaohjelmoitavia tai uudelleenohjelmoitavia Kombinaatiopiiri toteutetaan FPGA-piireissä hakutauluilla Ohjelmoitavalla järjestelmäpiirillä voidaan toteuttaa koko digitaalilaite Suunnitteluprosessi koostuu itse suunnittelusta ja sen varmistuksesta


Lataa ppt "Ohjelmoitavat logiikkaverkot"

Samankaltaiset esitykset


Iklan oleh Google