1 / 68

ELEKTRONSKI FAKULTET U NI Š U

ELEKTRONSKI FAKULTET U NI Š U. MIKROPROCESORSKI SISTEMI. Projektovanje interfejsa za povezivanje čipa PIA -8255 na APB magistralu. Niš, 2006. 1. UVOD

chanel
Download Presentation

ELEKTRONSKI FAKULTET U NI Š U

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. ELEKTRONSKI FAKULTET U NIŠU MIKROPROCESORSKI SISTEMI Projektovanje interfejsa za povezivanje čipa PIA-8255 na APB magistralu Niš, 2006

  2. 1. UVOD • Medjusobno povezivanje čipova na štampanoj ploči predstavlja veoma važan aspekt za uspešnu realizaciju visoko performansnih digitalnih sistema time što direktno omogućava da veliki broj komponenata sistema efikasno razmenjuju podatke. • Ova mogućnost obezbedjuje da integrisane komponente sistema budu veoma dobro ukompovane u jedan distribuirani sistem. • Da bi se uspešno realizovao ovaj cilj danas je razvijen veći broj komunikacionih sprežnih tehnologija, kakve su npr.: Hyper Transport, RapidIO, PCI Express pomoću kojih se ostvaruje efikasna komunikacija na nivou čip-ka-čip. • Sa druge strane napredak na polju VLSI tehnologije uslovio je da se sve veći broj gradivnih blokova sistema integriše u jedinstveni sistem. Ovakva rešenja se nazivaju System–on-Chip (SoC) dizajn.

  3. Osnovni problem koji se pri ovome javlja predstavlja efikasno medjusobno povezivanje gradivnih blokova unutar čipa. • U cilju uspešnog rešavanja ovog problema koriste se standardizovane interne SoC magistrale. • Tipični reprezenti ovakvih magistrala su: AMBA, AVALON, Core Connect, Wishbone, Sillicon Backplane Network, CoreFrame, Marble, PI bus, OCP, VCI (Virtual Component Interface). • System–on-Chip (SoC) dizajn se standardno realizuje od većeg broja IP-ova (Intelectual Property) kao gotove komponente koje treba medjusobno povezati u jedinstveni sistem. • Pri ovome jedan od glavnih projektantskih izazova predstavlja projektovanje interfejs logike koja predstavlja ljusku za IP i koja omogućava da se IP poveže na odgovarajuću sistemsku magistralu.

  4. U ovom semestralnom radu biće: • razmatrana mogućnost povezivanja programibilnog paralelnog perifernog interfejsa, PIA-APB-8255 (Parallel Interface Adapter Intel 8255 for AMBA APB Bus), realizovanog kao jezgro (IP) na APB magistralu koja je sastavni deo AMBA magistrale, • kreiran VHDL kod koji se odnosi na opis na behavioral nivou kola PIA-APB-8255, • data implementacija kola PIA-APB-8255 koja se odnosi na Actel FPGA tehnologiju. • Ilustracije radi, jedan tipičan SoC dizajn baziran na AMBA magistrali kod koga je na APB povezano PIA kolo, prikazan je na Slici 1.1:

  5. 8051 Interfejs Memorija ASB ili AHB BRIDGE APB Interfejs Timer 8253 Interfejs UART 8251 Interfejs PIA 8255 Slika1.1: SoC dizajn baziran na AMBA magistrali

  6. Kao što se vidi na slici 1.1 SoC dizajn zasnovan na AMBA magistrali je hijerarhijski organizovan oko dve magistrale, AHB (ili ASB) magistrale koja se koristi za brzi prenos podataka izmedju procesora i memorije i APB magistrale koja se koristi za spregu perifernih programibilnih čipova kakvi su: 8253 (Timer), 8251 (UART) i 8255 (PIA). Sprega između ASB i APB se ostvaruje preko mosta (bridge). • Analizirajući šemu na slici 1.1 uočavamo da se svaki IP blok spreže na odgovarajuću magistralu preko specifičnog projektovanog interfejsa. • U konkretnom slučaju razmatrani su periferni programibilni čipovi iz familije INTEL, koji su pre sega projektovani za realizaciju sistema zasnovanim na INTEL-ovim procesorima, kakvi su: 8088, 8086, 80286, 80386 itd.

  7. Sobzirom da SoC dizajn može da bude zasnovan na bilo kom procesoru, ili multiprocesorskom sistemu neophodno je projektovati logiku interfejs tipa koja obezbedjuje povezivanje raznorodnih (heterogenih) IP-ova na jedinstveni sistem. • U konkretnom slučaju rešavan je problem projektovanja interfejsa pomoću koga se ostvaruje sprega između jezgra PIA 8255 i APB magistrale kod AMBA. • U tom cilju neophodno je bilo prvo kreirati VHDL kod za odgovarajući interfejs, zatim definisati testne sekvence za proveru ispravnosti rada kola, i na kraju implementirati kolo u FPGA tehnologiji. • Shodno predhodnom, celokupna materija koja je izložena u ovom radu je podeljena je na 8 poglavlja:

  8. Poglavlje 1 je uvodno, koje u kratkim crtama ukazuje na problem koji je rešavan, i način kako je rešavan. • U poglavlju 2 dat je kratak opis AMBA magistrale. • U poglavlju 3 prikazani su detalji koji se odnose na operacije prenosa podataka po APB magistrali. • Interna struktura čipa PIA 8255, definicija ulazno - izlaznih signala, i režimi rada opisani su u poglavlju 4. • VHDL opis na behavioral nivou čipa PIA-APB-8255 prikazan je u poglavlju 5.

  9. Poglavlje 6 tiče se testiranja čipa PIA-APB-8255 sa ciljem da se proveri ispravnost dizajna. • U poglavlju 7 prikazan je postupak implementacije čipa PIA-APB-8255 na Xilinx -ovo FPGA kolo 2S50PQ208-6 iz familije Xilinx SPARTAN2. • U poglavlju 8 opisana je laboratorijska vežba pomoću koje studenti koristeći alate za projektovanje navedene u ovom radu mogu da provere ispravnost implementiranog čipa.

  10. 2. AMBA MAGISTRALA • 2.1. OPIS AMBA MAGISTRALE • AMBA (Advanced Microcontroller Bus Architecture) je hijerarhijski organizovana sistemska magistrala namenjena za SoC dizajne koju čine sledeće tri magistrale: • ♠ Advanced High-performance Bus (AHB); • ♠ Advanced System Bus (ASB); • ♠ Advanced Peripheral Bus (APB).

  11. AHB je veoma brza magistrala namenjena za spregu procesor–memorija. Procesor može biti master ili slave tipa. • ASB je takođe brza magistrala namenjena za spregu procesor-memorija. ASB je alternativna magistrala, pogodna za korišćenje kod sistema visokih performansi kada oni ne koriste AHB. • APBje magistrala koja se koristi za efikasnu spregu sa perifernim programibilnim čipovima. Sprega između ASB i APB se ostvaruje preko mosta (bridge).

  12. 2.2. STRUKTURA TIPIČNOG MIKRORAČUNARA ZASNOVANOG NA AMBA MAGISTRALI • Na slici 2.1 prikazana je struktura jednog tipičnog mikroračunarskog sistema zasnovanog na AMBA magistrali. • S obzirom da je sistem tipa SoC dizajn uobičajeno je da se ovako rešenje naziva mikrokontroler. • Kao što se vidi sa slike 2.1 mikrokontroler je hijerarhijski organizovan oko dve magistrale. Na višem nivou je AHB ili ASB, a na nižem APB. • Zbog zahteva za većom brzinom u prenosu podataka na AHB (ASB) se povezuju CPU, memorijski podsistem, interfejs za memorijsko proširenje, i DMA kontroler. • Na APB magistrali povezani su programibilni periferni interfejs čipovi tipa: tajmer, UART, PIA, tastaturni čip i dr.

  13. Visoko – performansni ARM procesor Visoko - propusni on-chip RAM UART Brojač Visoko – propusni spoljni memorijski interfejs M O S T AHB ili ASB APB Tastatura PIA AHB prema APB most ili ASB prema APB most Glavna DMA magistrala Slika 2.1: AMBA-bas mikrokontroler

  14. 3. AMBA APB MAGISTRALA • APB (Advanced Peripheral Bus) je deo AMBA hijerarhije magistrala. Ova magistrala se koristi za efikasnu spregu sa perifernim programibilnim interfejs čipovima. Važno je to, da se kod APB sve promene signala dešavaju na rastuću ivicu taktnog signala. • 3.1. OPIS APB MAGISTRALE • Opis delovanja APB magistrale objašnjen je u zaglavljima: • ♠ dijagram stanja • ♠ operacija upisa • ♠ operacija čitanja • APB komunicira sa ASB ili AHB magistralom i sa programibilnim periferijama, pomoću ulazno – izlaznih signala i to: PCLK, PRESET, PWRITE, PSEL, PENABLE, kao i ulazima PWDATA i PADDR, i izlazom PRDATA.

  15. 3.1.1. Dijagram stanja • Na slici 3.1 prikazan je dijagram stanja. Pomoću njega se predstavlja funkcionisanje ove magistrale. Slika 3.1: Dijagram stanja

  16. Kao što se sa slike 3.1 vidi, funkcionisanje ove magistrale može se opisati sa tri stanja: IDLE, SETUP i ENABLE. • IDLE - Pasivno stanje. Signali PSELx i PENABLE su u stanju logičke nule. • SETUP - Kada su signali PSELx u stanju logičke jedinice a PENABLE u stanju logičke nule magistrala prelazi u stanje SETUP. Ona ostaje u ovom stanju jedan taktni interval, nakon čega se sa usponskom ivicom taktnog signala prelazi u stanje ENABLE. • ENABLE - Prelazi se u ovo stanje kada su signali PSELx i PENABLE u stanju logičke jedinice. Ovo stanje traje jedan taktni interval. Iz ovog stanja se vraćamo u stanje IDLE na kraju operacije, a ako postoji zahtev za prenos ona prelazi u stanje SETUP.

  17. 3.1.2. Operacija upisa • Vremenski dijagram koji prikazuje redosled dogadjaja prikazan je na slici 3.2: • Prvi taktni interval odgovara stanju IDLE, a nakon toga u drugom taktnom intervalu prelazi se u stanje SETUP. Treći taktni interval odgovara stanju ENABLE. • Adrese, linije za podatke i PWRITE postavljaju se u toku drugog, a važeći su u toku trećeg taktnog signala. Operacija upisa završava se četvrtim taktnim signalom. Slika 3.2: Operacija upisa

  18. 3.1.3 Operacija čitanja • Vremenski dijagram koji prikazuje redosled operacije čitanja prikazan je na slici 3.3: • Prvi taktni interval odgovara stanju IDLE. U drugom taktnom intervalu prelazi se u stanje SETUP. Dok treći taktni interval odgovara stanju ENABLE. • Adrese se postavljaju u toku drugog, i važeće su u toku trećeg taktnog signala. PWRITE koji je aktivan u toku prvog taktnog intervala, u drugom taktnom intervalu se postavlja na neaktivnu vrednost. Linije za podatke se postavljaju tokom ENABLE stanja. Operacija čitanja završava se četvrtim taktnim signalom. Slika 3.3: Operacija čitanja

  19. 3.2. APB most • APB most predstavlja interfejs izmedju AHB (ili ASB) magistrale i APBmagistrale. On je slave za AHB (ili ASB), a master za APB. • 3.2.1 APB master • Blok dijagram • Na slici 3.4 prikazan je blok dijagram APB master-a. • Sa strane AHB (ili ASB) magistrale postoje signali PRESETn i PCLK, kao i PRDATA. A sa strane APB magistrale PADDR, PWDATA, signali PSEL, PENABLE i PWRITE. Slika 3.4: APB signal interfejs APB mosta

  20. Funkcija APB mastera • APB master obavlja sledeće funkcije: • generiše adresu i zadržava je validnom tokom operacije upisa ili čitanja; • dekodira adresu i generiše periferijski selekt PSELx. Samo jedan periferijski selekt signal PSELi, i=1,2…n, može biti aktivan tokom operacije upisa ili čitanja; • prebacuje podatke sa AHB (ASB) magistrale na APB u toku operacije upisa; • prebacuje podatke sa APB na sistemsku magistralu u toku operacije čitanja; •  generiše impuls za pamćenje adrese (strob signal), PENABLE, u toku operacije čitanja ili upisa.

  21. APB slave • APB slave ima jednostavan, ali ipak fleksibilan interfejs. • Tačna implementacija interfejsa zavisi od konkretne aplikacije. • Blok dijagram • Na slici 3.5 prikazan je pogled na most sa sistemske magistrale, APB slave. Slika 3.5: Dijagram APB – slave

  22. Funkcija APB slave-a • APB slave interfejs je veoma fleksibilan. Za operaciju upisa podaci se postavljaju u narednim vremenskim trenucima: • na obe rastuće ivice PCLK kada je PSELx na logičkoj jedinici; • na rastućoj ivici PENABLE kada je PSELx na logičkoj jedinici. • Selekcioni signal PSELx, adresa PADDR i signal upisa PWRITE mogu biti kombinovani da bi se odredilo kom registru treba obnoviti sadržaj pomoću operacije upisa. • Za operaciju čitanja podaci mogu biti prebačeni na magistralu podataka kada je PWRITE na logičkoj nuli, a PSELx i PENABLE na logičkoj jedinici. U tom slučaju se PADDR koristi za odredjivanje registra iz koga treba da se izvrši operacija čitanja. • Talasni oblici signala su dati na slici 3.6.

  23. Slika 3.6: Talasni oblici APB slave

  24. 4. 8255 • Intelov čip 8255, pararelni programibilni interfejs PPI (Programmable PeripheralInterface) je CMOS komponenta koja se koristi kod aplikacija koje se odnose na paralelni prenos podataka. • Sa strane poseduje 24 ulazno/izlazna pina koji mogu biti programibilni u dve grupe po 12. Izradjen je u CMOS tehnologiji sa jednostrukim +5V napajanjem. • Režimi rada se softverski postavljaju. • 4.1. OPIS KOLA 8255 • Na slici 4.1 je data blok šema 8255 kola:

  25. Slika 4.1: Blok šema

  26. BAFER PODATAKA • Trostatički bi-direkcioni 8 – bitni bafer koristi se kao interfejs za povezivanje 8255 na sistemsku magistralu. • Podaci se primaju i šalju preko bafera dok se izvršavaju ulazno - izlazne CPU operacije. Kontrolni kod i statusna informacija se takodje šalju kroz bafer. • R/W I KONTROLNA LOGIKA • Funkcija ovog bloka je da upravlja sa svim unutrašnjim i spoljašnjim prenosima. • Prihvata upravljačke signale sa sistemske magistrale, upravlja radom ulazno/izlaznog bafera i generiše signale za rad celokupnog kola. Izbor PIA se vrši signalom CS (Chip Select).

  27. CS (Chip Select) • Chip Select je ulazni signal kojim se dozvoljava rad kola. Kada kolo nije selektovano, ne obavlja se nikakva operacija. Aktivan je kada je postavljen u stanju logičke nule. • RD (Read) • Kada je ovaj signal na logičkoj nuli u toku je operacija čitanja. • WR (Write) • Kada je ovaj signal na logičkoj nuli u toku je operacija upisa. • A1 i A0 • To su adresni signali, kojima se u vezi sa ulaznim signalima RD i WR, vrši selekcija jednog od tri porta (port A, port B ili port C) ili se pak kontrolni kod upisuje u registar za upis načina (MOD-a) rada.

  28. U zavisnosti od stanja signala RS, WR, CS, A1 i A0, čip 8255 obavlja sledeće funkcije koje su date u tabeli 4.1. Tabela 4.1: Tabela stanja za ulaze R/W i kontrolne logike

  29. RESET • Kada je aktivan (stanje logičke jedinice) kolo se postavlja u početno stanje. • UPRAVLJANJE PORTOVIMA IZ GRUPE A i GRUPE B • R/W kontrolna logika priprema modove rada i upravljačke signale za tri 8-bitna ulazno-izlazna porta. Upravljanje ulazno - izlaznih portova je podeljeno u dve grupe: u grupu A i grupu B. • Svaka od ovih grupa prihvata “komande od R/W kontrolne logike, prima informacije sa unutrašnje magistrale kola i postavlja pravu komandu za vezane portove. • Kontrolnu grupu A čine: Port A i gornja polovina porta C (C7 - C4). • Kontrolnu grupu B čine: Port B i donja polovina porta C (C3 – C0).

  30. Port A, B i C • 8255 sadrži tri 8 – bitna porta ( A,B i C ). • Port A. Jedan 8 – bitni data izlazni leč/bafer i jedan 8 - bitni data ulazni leč. • Port B. Jedan 8 – bitni data izlazni leč/bafer i jedan 8 – bitni data ulazni bafer. • Port C. Jedan 8 – bitni data izlazni leč/bafer i jedan 8 – bitni data ulazni bafer (bez leča za ulaz). Ovaj port može biti rasporedjen u dva 4 - bitna porta ispod načina kontrole. Svaki 4 - bitni port sadrži jedan 4 - bitni leč i to može koristiti za kontrolu izlaznih signala i kontrolu stanja ulaznih signala u vezi sa portovima A i B.

  31. 4.2. OPIS RADA KOLA 8255 • Kompletno funkcionisanje kola je definisano od strane sistemskog softvera. • Kod 8255 dostupna su tri načina rada (MOD-a) i to: • Mode 0 – Osnovni U/I, • Mode 1 – Strobovani U/I, • Mode 2 – Bi-direkciona magistrala. • Pinovi grupe B se mogu programirati za rad u mode 0 ili mode 1, a pinovi grupe A za rad u mode 0, mode 1 ili mode 2.

  32. Mode 0 – naziva se osnovni ulazno/izlazni način rada koji uzrokuje da 8255 radi kao baferovani ulazni ili lečovani izlazni uredjaj. • Mode 1 – strobovani ulazno/izlazni način rada postavlja portove A i B i odgovarajuće upravljačke linije višeg i nižeg dela porta C. • Ovaj mod se koristi za podršku rada handshakeprocedura i prekida, iniciranih od strane ulazno/izlaznih uredjaja u slučajevima kada se prenos podataka ostvaruje bez direktne intervencije CPU-a. • Razlikuju se dva tipa rada kod mode 1, a to su mode 1 strobovani ulaz, i mode 1 strobovani izlaz. • Mode 2 – način rada ovog moda važi samo za grupu A. Kod bidirekcionog rada podaci se predaju i primaju preko istih veza. • Ovakav način rada koristan je kod sprezanja dva računara.

  33. 5. čip PIA–APB-8255 • 5.1. OPIS ČIPA PIA-APB-8255 • Ovo kolo predstavlja interfejs izmedju APB magistrale i spoljnjeg sveta. • Zbog specifičnog rada APB magistrale ono u sebi sadrži interfejs logiku koja je za ovaj slučaj specifično projektovana, a za spregu sa spoljnim svetom koristi se PIA-8255 koji je kompatibilan po svojoj funkciji sa Intelovim čipom 8255. • To znači da je sprega sa spoljnim svetom ostvarena shodno principima rada modu 0, modu 1, i modu 2 PIA-8255. Takvo kolo dato je na slici 5.1:

  34. PIA-APB-8255 PADDR PORT A PCLK PENABLE PRESET PORT B PSELx PWRITE PWDATA PORT C PRDATA Slika 5.1: Čip PIA-APB-8255

  35. Interfejs APB-bridge PIA 8255 PORT A PADDR PCLK DIN[7:0] PENABLE RESET PRESET PORT B CS PSELx RD PWRITE PWDATA WR PORT C PRDATA DOUT[7:0] Slika 5.2: Unutrašnja struktura čipa PIA-APB-8255

  36. Interfejs logika, čipa PIA-APB-8255, nazvana APB-bridge je specifično projektovana i izvedeno kolo je tipa sekvencijalna mreža. • Na svom ulazu prihvata signale PCLK, PENABLE, PRESET, PSELx, PWRITE, PADDR i PWDATA sa APB magistrale, kao i izlaz DOUT sa PIA-8255. • Na izlazu ova interfejs logika generiše signale RESET, WR, CS i RD ka PIA-8255, a PRDATA i DIN ka APB magistrali. • Na slici 5.3 je data struktura interfejsa APB-bridge:

  37. Slika 5.3: Interfejs APB-bridge

  38. Da bi ostvarili kompatibilnost u radu sa PIA-8255 neophodno je bilo obaviti sledeće aktivnosti: 1)Preslikati PIA-8255 na jedinstvenu ulazno – izlaznu adresu koja ukonkretnom slučaju iznosi “00009000”H. • 2) Da bi obavili zadatak definisan stavkom 1, neophodno je bilo ugraditi blok komparator, U3, čiji je izlaz “enable” definisan na sledeći način: if ADDR="10010000" then • enable =”1” • else enable =”0”. • Na ulaz ADDR se dovode signali PADDR [15:]. • 3)Sobzirom da je magistrala sinhrona (odlikuje se time da se svi dogadjaji odvijaju u ritmu taktnog signala), neophodno je bilo zbog kompatibilnosti u radu dovesti na ulaz bloka U4, globalni taktni signal APB magistrale, PCLK. Ovim signalom obezbedjeni su uslovi za sinhrono generisanje signala READ (RD), WRITE (WR) i ChipSelect (CS) PIA-8255.

  39. 4) Blok kontrolna logika, U4, prihvata signale PENABLE, PRESET,PSELx, PWRITE i PCLK sa APB magistrale. Na ulazu ADDR_en prihvata izlazni signal enable iz bloka U3. Na izlazima generiše signale sel_in i sel_out. Način generisanja signala na izlazu ovog bloka shodno vrednosti ulaza definisan je tabelom 5.1. Tabela 5.1: Tabela stanja kontrolne logike

  40. 5) Blok U1 je baferski stepen. Njegov princip rada se može opisati sledećim iskazom: if enable = '1' then a =>y elsey =“Z“. Gde je Z stanje visoke impedanse. Na ulazu a prihvata signal PWDATA[7:0] sa APB magistrale, a izlaz y se prosledjuje na signal DIN. 6) Blok U2 je baferski stepen čiji se rad opisuje na sledeć način: if enable = '1' then a =>y elsey =“Z“. Gde je Z stanje visoke impedanse. Ulaz a prihvata DOUT, a izlaz y se prosledjuje na ulaz bloka U5.

  41. 7)PRDATA [7:0] se formiraju ulazom DOUT, koji se preko bloka U2 vodi na ulaz bloka U5, bloka koji vrši generisanje još 24 bita veće težine. Ovaj blok vrši beznakovno proširenje 8-bitne ulazne na 32-bitnu izlaznu vrednost na sledeći način: iz <= "000000000000000000000000"&ul. Ulaz ul prihvata izlaz y sa bloka U2, a izlaz iz se prosledjuje na PRDATA. 8) Kada je APB magistrala u stanju enable, blok U4 generiše izlazne signale sel_in i sel_out koji služe i da se da dozvola da se upiše ili pročita informacija. Oni su aktivni u toku jedne periode taktnog impulsa, što znači da bi na izlazu interfejsa imali validnu informaciju samo za taj period. Medjutim, informacija u PIA-8255 može da se upiše ili pročita tek na sledeću rastuću ivicu taktnog impulsa, pri čemu signali RD, WR i CS moraju biti stabilni pre te rastuće ivice taktnog impulsa, konkretno oni su uzeli neku vrednost pre te rastuće ivice a ne u samom trenutku. Ako bi se desilo da se u istom trenutku menja i stanje signala i rastuća ivica taktnog signala, može se desiti da dodje do greške upisa zbog nemogućnosti da se u tačno istom trenutku promene.

  42. Vremenski dijagram PIA-8255 se može videti sa slike 5.4. Slika 5.4: Vremenski dijagram čipa 8255 9) Da bi ispunili potrebu definisanu stavkom 8, neophodno je bilo ugraditi blokove U6 i U9 (DoubleEdgeSR) koji sa ulazima EdgeRESET, EdgeSET i RESET generišu izlaz SRout. Ovi blokovi se direktno setuju opadajućom ivicom EdgeRESET, a direktno se resetuju rastućom ivicom EdgeSET. Blokovi U6 i U9 su strukturno opisani. EdgeRESET je taktni ulaz i na njega se dovodi globalni taktni signal APB magistrale, PCLK. Na slici 5.5 je dat vremenski dijagram ulazno-izlaznih signala ovih blokova.

  43. reset edge set edge Slika 5.5: Vremenski dijagram • Neophodno je koristiti dva ovakva bloka. Jedan će biti za upis a drugi za čitanje informacija. Jedan od njih, U6, će na ulazu EdgeSET prihvatiti izlaz sel_in a blok U9 će na ulazu EdgeSET prihvatiti izlaz sel_out bloka U4. • Izlaz SRout bloka U6 služi da se da dozvola za upisivanje informacija jer se vodi na ulaz bloka za invertovanje U11, čiji se izlaz y vezuje na ulaz enable bloka U1, a vezuje se i na izlaz WR. Izlaz SRout drugog bloka služi da se da dozvola za iščitavanje informacija jer se vodi na ulaz bloka za invertovanje U12, čiji se izlaz y vezuje na ulaz enable bloka U2, a i vezuje se na izlaz RD.

  44. 10) Blok U10 je AND kolo koje generiše aktivan (logička jedinica) izlaz output kada su oba ulaza I0 i I1 aktivna (logička jedinica). Na jedan ulaz se dovodi izlaz bloka U6 a na drugi ulaz izlaz bloka U9. Izlaz output se prosledjuje na CS. • 11)Potreba za korišćenjem blokova DoubleEdgeSR je ta da se njime kontrolišu signali sel_in i sel_out, jer kad dodje sledeća rastuća ivica taktnog signala signali sel_in i sel_out bi se postavili na nulu, i ulaz DIN PIA-8255 bi bio u stanju visoke impedanse Z. • Sa blokom U6 produžujemo signal sel_in (isto važi i za signal sel_out sa blokom U9), do sledeće rastuće ivice taktnog signala. • Sa slike 5.6 se vidi da se od signala sel_in pravi signal enable koji je duži od njega za jednu periodu kloka, a od njega se prave signali RD, WR i CS tako da na rastućoj ivici (zelena linija na slici) dobijamo stabilno CS=0, WR=0 i RD=1 i izvršiće se upis podatka DIN=89 koji je takodje stabilan pre nailaska ove rastuće ivice.

  45. Slika 5.6: Vremenski dijagram 12) Da bi obezbedili ulazni signal RESET PIA-8255 koji je aktivan na logičkoj jedinici i kome se dovodi izlazni signal RESET sa interfejsa APB-bridge, neophodno je bilo ugraditi blok za invertovanje, U8. Na ulaz x ovog bloka se dovodi signal PRESET sa APB magistrale koji na izlazu generiše signal y koji se prosledjuje na izlaz RESET. 13) PADDR [2:0] se direktno vezuju za PIA-8255 na njegov ulaz A.

  46. 5. 2. PREDLOG REALIZACIJE ČIPA PIA-APB-8255 • Za sam razvoj i testiranje koda korišćen je programski paket ACTIV-HDL. • U strukturi na najvišem nivou razlikujemo 2 entiteta, kao na slici 5.7: • entitet “APB_bridge“ • entitet “ čip 8255 “ Slika 5.7: Blok šema čipa PIA-APB-8255

  47. 5.2.1 APB_bridge • Predstavlja interfejs logiku čipa PIA-APB-8255, koja je za ovaj slučaj specifično projektovana i izvedeno kolo je tipa sekvencijalna mreža. • Na ulazu prihvata signale PCLK, PENABLE, PRESET, PSELx, PWRITE sa magistrale kao i PADDR, PWDATA i DOUT. • Na izlazu ova interfejs logika generiše signale RESET, nWR, nCS i nRD, kao i PRDATA i DIN. Na slici 5.8 data je blok šema interfejsa, APB-bridge, čipa PIA-APB-8255. Ova interfejs logika se sastoji od sledećih entiteta: • entitet “Control_ Logic“ • entitet “DoubleEdgeSR“, (blokovi U6 i U9 na slici) • entitet “TriSTATE_BUFFER“, (blokovi U1 i U2) • entitet “ADDR_COMPARE“ • entitet “Proširenje“ • entitet “INV_1”, (blokovi U8, U11 i U12), kao i • entitet “AND_2”

  48. Control_Logic ADDR_COMPARE DoubleEdgeSR AND_2 INV_1 Proširenje TriSTATE_BUFFER Slika 5.8: Blok šema APB-bridge

  49. 5.2.1.1. CONTROL_LOGIC • To je blok koji predstavlja kontrolnu logiku interfejsa APB-bridge koji upravlja radom celokupnog dizajna i koji odredjuje stanja same APB magistrale. • Signal sa ulaza,ADDR_en, kada je u stanju logičke jedinice dozvoljava rad bloka, tj. prenos signala na izlaz. • Signalima PSELx i PENABLE se upravlja stanjima APB magistrale (IDLE,SETUP, ENABLE). • Signalom PWRITE se dozvoljava upis (aktivan u stanju logičke jedinice). Ovaj blok na svojim izlazima generiše signale sel_in i sel_out koji služe da se da dozvola za upisivanje informacija ili iščitavanje informacija, sa ili u magistralu.

  50. Listing koda: library IEEE; use IEEE.STD_LOGIC_1164.all; entity control_logic is port (PCLK: in std_logic; PRESET: in std_logic; PSELx : in std_logic; PENABLE: in std_logic; PWRITE : in std_logic; ADDR_en: in std_logic; sel_in : out std_logic; sel_out: out std_logic); end control_logic; architecture control_logic of control_logic is type state_type is (reset, idle, setup, enable); signal state,next_state: state_type; begin proc1:process (PCLK,PRESET) is begin if PRESET='0' then state<=reset; elsif rising_edge(PCLK) then state<=next_state; end if; end process proc1; when enable => if PENABLE='1' then if ADDR_en='1' then if PWRITE='1' then sel_in <='1'; else sel_out <='1'; end if; end if; end if; if PSELx='1' then next_state <= setup; else next_state <= idle; end if; when others => next_state <= reset; end case; end process proc2; end control_logic; proc2:process (PSELx,PENABLE, PWRITE, state) begin sel_in<='0'; sel_out<='0'; case state is when reset => next_state <= idle; when idle => if PSELx = '1' then next_state <= setup; else next_state <= idle; end if; when setup => if PENABLE='1' then next_state <= enable; end if; Slika 5.9: Blok Control_logic

More Related