A verem működése fpga-n

Slides:



Advertisements
Hasonló előadás
Sor láncolt ábrázolással
Advertisements

A számítógép felépítése
1 Hernyák Zoltán Programozási Nyelvek II. Eszterházy Károly Főiskola Számítástudományi tsz.
4. Helyes zárójelezés algoritmusa
Belső memóriák tipusai
Bevezetés a Java programozásba
Bevezetés a Java programozásba
11. előadás (2005. május 10.) A make segédprogram Alacsony szintű műveletek és bitmezők Fájl, katalógus rendszer hívások 1.
Máté: Architektúrák7. előadás1 A verem két felső szavának cseréje (ábra) Megállapodás szerint TOS tartalmazza a verem tetején lévő szót! Ez többnyire előny,
Máté: Architektúrák7. előadás1 A verem két felső szavának cseréje (ábra) Megállapodás szerint TOS tartalmazza a verem tetején lévő szót! Ez többnyire előny,
Máté: Architektúrák7. előadás1 A verem két felső szavának cseréje (4.17. ábra) Megállapodás szerint TOS tartalmazza a verem tetején lévő szót! Ez többnyire.
Máté: Architektúrák7. előadás1 A verem két felső szavának cseréje Megállapodás szerint TOS tartalmazza a verem tetején lévő szót! Ez többnyire előny, de.
Programozás II. 3. Gyakorlat C++ alapok.
UNIVERSITY OF SZEGED D epartment of Software Engineering UNIVERSITAS SCIENTIARUM SZEGEDIENSIS Programozás II. 6. Gyakorlat const, static, dinamikus 2D.
DS1620 és FPGA segítségével
Prototípuskészítés Verilog nyelven Screen Saver Készítette: Mészáros Péter.
Prototípus készítés Verilog nyelven VGA – PROM számláló Készítette: Fazekas Gergő,
Miskolci Egyetem Informatikai Intézet Általános Informatikai Tanszé k Pance Miklós Adatstruktúrák, algoritmusok előadásvázlat Miskolc, 2004 Technikai közreműködő:
Mikroszámítógépek I 8085 processzor.
Mikroszámítógépek I 8085 processzor.
PIC processzor és környezete
16. Verem műveletei Kaszab Gábor.
Számítógépek felépítése 4. előadás ALU megvalósítása, vezérlő egység
Számítógép memória jellemzői
Készítette: Bodor Béla Tanár: Szabó Dániel Iskola: Egressy Gábor Kéttannyelvű Műszaki Szakközépiskola Iskola címe: 1149 Budapest, Egressy út 71. MEMÓRIÁK.
A memóriák típusai, jellemzői
A PLC-s vezérlés előnyei és alkalmazásai (Mitsubishi)
Egy egyszerű gép vázlata
A digitális számítás elmélete
Máté: Architektúrák7. előadás1 A verem két felső szavának cseréje (4.17. ábra) Megállapodás szerint TOS tartalmazza a verem tetején lévő szót! Ez többnyire.
Számítógép architektúra
A Mikroprocesszor Második rész.
Listák, Vermek és Várakozási Sorok. Vermek Def: Egy sajátos lista amelyben minden beszúrási illetve törlési művelet csak a lista egyik végén történik.
Listák, Vermek és Várakozási Sorok
Listák, Vermek és Várakozási Sorok. Listák Pl: Kirándulók listája Bevásárló lista Alma Kenyér Krumpli Szappan Mosópor Bevásárló lista.
Egyirányban láncolt lista
Mikrokontroller (MCU, mikroC)
Digitális rendszerek II.
Hernyák Zoltán Programozási Nyelvek II.
1 Hernyák Zoltán Web: Magasszintű Programozási Nyelvek I. Eszterházy.
Széchenyi Isván Egyetem Számítógépes hálózatok II 1 Számítógépes Hálózatok II Széchenyi István Egyetem.
A számítógép elvi felépítése
Visual Basic 2008 Express Edition
Processzor, alaplap, memória
A Helyes Zárójelezés Struktogramja
Koncepció: Specifikáció: e par exp i = eb imp bod ib Specifikáció elemzése: tulajdonságok felírása a koncepció alapján + tulajdonságok bizonyítása.
Egyenesvonalú (lineáris) adatszerkezetek
A Mikroprocesszor Harmadik rész.
HF MINTA 2012/2013. ősz. HF Minta  Objektum-orientált program  „Adatvezérelt” alkalmazás írása  Fájl kezelés (olvasás, írás)  Menü készítése  5-6.
Objektum orientált programozás
Fixpontos, lebegőpontos
Alapfogalmak, módszerek, szoftverek
Az internetes keresési módszerek
Beépített analóg I/O terület 4-3. Beépített analóg I/O terület Beépített analóg bemeneti bitek: CIO 200 … CIO 203 ( 4 szó ) Beépített analóg kimeneti.
Számítástechnikai alapismeretek 2. (TK o.)
Algoritmusok és Adatszerkezetek Egy kifejezés lengyelformára hozása - bemutató.
HEFOP 3.3.1–P /1.0A projekt az Európai Unió társfinanszírozásával, az Európa terv keretében valósul meg. 1 Számítógép architektúrák dr. Kovács.
Összeállította: Gergely János
Fájlszervezés Adatbázisok tervezése, megvalósítása és menedzselése.
Számítógépek felépítése 4. előadás ALU megvalósítása, vezérlő egység
A verem és a sor adatszerkezet
Dinamikus adatszerkezetek
RAM (Random Access Memory)
Algoritmusok és Adatszerkezetek I.
Dinamikus adatszerkezetek
A Számítógépek hardver elemei
A Számítógépek felépítése, működési módjai
A Számítógépek felépítése, működési módjai
A Számítógépek felépítése, működési módjai
Cache példák 2019 (IMSC).
Előadás másolata:

A verem működése fpga-n Készítette: Labancz Anita

A verem fogalma és működése A verem egy olyan memória terület, ahol átmenetileg adatokat tudunk tárolni. A vermet tekinthetjük egy speciális „listának”, amelynek legfőbb jellemzője, hogy az utoljára beírt adatokat lehet először kiolvasni. Az adatforgalom a bemeneti sorrenddel ellenkező kimeneti sorrendű. LIFO (Last In First Out) szervezésűnek is hívjuk.

A system stack(SS) és stack pointer(SP)fogalma Minden mikrokontrollernek van egy rendszer verme (system stack) Alkalmazása Ide tároljuk le azt a visszatérési memóriacímet, ahová vissza akarunk térni a szubrutin befejezése után Más állapot információk tárolása interrupt bekövetkezésekor STACK POINTER A stack pointer = veremmutató regiszter A verem legfelső elemére mutat.

A verem műveletei Két műveletét különböztetjük meg PUSH: Ezzel teszünk be új értékeket a verembe ( beolvasás) POP: Ezzel törlünk a veremből régi értékeket (kiírás) Ha új értéket teszünk be a verembe (PUSH), akkor az SP értékét csökkentem eggyel Ha értéket törlök a veremből (POP), akkor az SP értékét megnövelem eggyel.

A stack32x16 module bemutatása Az FPGA-ban megosztott memóriát használunk a verem implementálásához 16-bite szavakat tudunk tárolni benne és a verem kapacitása 32 lesz. Ha push=1, akkor a verembe helyezett érték d[15:0] (órajel 0-ból 1-be áll) Ha pop=1, akkor a veremből kiolvasott érték q[15:0] (órajel 0-ból 1-be áll) A verem tetejéről írjuk ki az értéket. Ha a pop=push=0, akkor nem történik változás (az órajel nem áll 01) Ha a pop=push=1, ekkor a d[15:0] értéket úgy tárolom el a verem tetején (01), hogy az SP értéke nem változik (nem csökken) Ha a verem üres, akkor empty = 1 Ha a verem tele van, akkor a full = 1 d[15:0] stack32x16 q[15:0] clr full push pop empty clk

A stack32x16 module bemutatása 32x16 megosztott RAM (Core Generator) Az SP tartalmazza a verem tetején elhelyezett érték címét. Hova mutasson az SP? A verem tetején tárolt elem címére A következő elem címére, ami üres még Az előző részben azt állítottuk, hogy az SP értékét csökkenteni kell eggyel és azután tároljuk el az érték új címét. Előnye: A verem tetejére mutat az SP ( amit ki tudunk venni belőle; q[15:0)] Hátránya: Kettő órajel ciklus kell ennek a megvalósításához 1 lépés: SP értékét csökkentjük 2. lépés: érték új címének elmentése

A stack32x16 module bemutatása A második lehetőséget mellett maradjunk( az üres helyre mutasson az SP) 1. lépésben betesszük az SP által mutatott üres címre az új értéket 2. lépésben csökkentjük az SP-t Előnye: Egy órajel alatt elvégezhetjük a két lépést Hátránya: Üres memória címre mutat az SP Dual-port RAM alkalmazása wr_addr : beleteszünk a verembe egy értékét és annak a címét letároljuk ebben, majd csökkentjük a wr_addr és az rd_addr-t Mindig igaz lesz: wr_addr = rd_addr+1 rd_addr : ebben tároljuk annak az elemnek a címét, amit éppen kiolvastunk (q[15:0]), majd növeljük az rd_addr és a wr_addr-t 00000 wr_addr rd_addr 11111

A stack32x16 module bemutatása dpram32x16 d[15:0] clk we clk we stack_ctrl32 clr asmel open spo[15:0] wr_addr push wr2_addr a[4:0] pop rd_addr q[15:0] 1 dpo[15:0] dpra[4:0] full empty

A dpram32x16 module beállítása Elérési útvonala ISE Desing Siute 14.3 New project… IP(Core Generator &Architecture Wizard) View by Name fül Distributed Memory generator

A stack32x16 module bemutatása Ha a we=1, akkor az órajel(clk) 01, az érték d[15:0], és a címe: a[4:0] Kimenet: spo[15:0] ez az az érték ami a[4:0] van tárolva a címe, dpo[15:0] pedig az az érték, aminek a címe a dpra[4:0] van. Multiplexer wr_addr és az rd_addr: vagy az egyik vagy a másik tárolja a write címét. Ez függ: Ha push=1  wr_addr Ha push = 1 és pop = 1rd_addr

A dpram32x16 module beállítása

A dpram32x16 module beállítása

A dpram32x16 module beállítása

A push és pop műveletek Operation push pop asmel we No operation pop value from stack 1 push value on stack Write to top of stack