MIKROELEKTRONIKA, VIEEA306

Hasonló dokumentumok
Rendszerszintű tervezés: SystemC I.

Digitális eszközök típusai

Mikroelektronikai tervezés

Laborgyakorlat 3 A modul ellenőrzése szimulációval. Dr. Oniga István

III. Alapfogalmak és tervezési módszertan SystemC-ben

VIII. BERENDEZÉSORIENTÁLT DIGITÁLIS INTEGRÁLT ÁRAMKÖRÖK (ASIC)

Hardver leíró nyelvek (HDL)

Előadó: Nagy István (A65)

8.3. AZ ASIC TESZTELÉSE

Integrált áramkörök/6 ASIC áramkörök tervezése

Integrált áramkörök/5 ASIC áramkörök

MIKROELEKTRONIKA, VIEEA306

MIKROELEKTRONIKA, VIEEA306

Budapesti Műszaki és Gazdaságtudományi Egyetem. A Verilog HDL II. Nagy Gergely. Elektronikus Eszközök Tanszéke (BME) szeptember 26.

Programmable Chip. System on a Chip. Lazányi János. Tartalom. A hagyományos technológia SoC / PSoC SoPC Fejlesztés menete Mi van az FPGA-ban?

Laborgyakorlat Logikai áramkörök számítógéppel segített tervezése (CAD)

Mikrorendszerek tervezése

Végh János Bevezetés a Verilog hardver leíró nyelvbe INCK??? előadási segédlet

1. A VHDL mint rendszertervező eszköz

Laborgyakorlat Logikai áramkörök számítógéppel segített tervezése (CAD)

Mikrorendszerek tervezése

Digitális technika (VIMIAA02) Laboratórium 4

1. DIGITÁLIS TERVEZÉS PROGRAMOZHATÓ LOGIKAI ÁRAMKÖRÖKKEL (PLD)

FPGA áramkörök alkalmazásainak vizsgálata

Programozás és digitális technika II. Logikai áramkörök. Pógár István Debrecen, 2016

5. KOMBINÁCIÓS HÁLÓZATOK LEÍRÁSÁNAK SZABÁLYAI

Témakiírások 2014/15. őszi félévben

Elektronika, 5. gyakorlat: algoritmikus C szintézis

Digitális technika (VIMIAA02) Laboratórium 1

Joint Test Action Group (JTAG)

Digitális technika (VIMIAA02) Laboratórium 4

Digitális technika (VIMIAA02) Laboratórium 1

Digitális technika VIMIAA01 9. hét Fehér Béla BME MIT

Digitális technika VIMIAA01 9. hét

Mérési jegyzőkönyv. az ötödik méréshez

2004 Xilinx, Inc. All Rights Reserved. EDK Overview Xilinx, Inc. All Rights Reserved

10. EGYSZERŰ HÁLÓZATOK TERVEZÉSE A FEJLESZTŐLAPON Ennél a tervezésnél egy olyan hardvert hozunk létre, amely a Basys2 fejlesztőlap két bemeneti

Digitális technika (VIMIAA02) Laboratórium 3

Digitális technika (VIMIAA02) Laboratórium 3

LOGIKAI TERVEZÉS. Előadó: Dr. Oniga István Egytemi docens

Digitális áramkörök és rendszerek alkalmazása az űrben 3.

A PET-adatgy informatikai háttereh. Nagy Ferenc Elektronikai osztály, ATOMKI

PROGRAMOZHATÓ LOGIKAI ESZKÖZÖK. Elıadó: Dr. Oniga István Egytemi docens

Jelfeldolgozó processzorok (DSP) Rekonfigurálható eszközök (FPGA)

Elvonatkoztatási szintek a digitális rendszertervezésben

MIKROELEKTRONIKA, VIEEA306

LOGIKAI TERVEZÉS. Előadó: Dr. Oniga István

Hardveres trójai vírusok ASIC és FPGA áramkörökben

Digitális technika (VIMIAA01) Laboratórium 4

MEMS eszközök redukált rendű modellezése a Smart Systems Integration mesterképzésben Dr. Ender Ferenc

6. hét: A sorrendi hálózatok elemei és tervezése

Laborgyakorlat Logikai áramkörök számítógéppel segített tervezése (CAD)

Újrakonfigurálható eszközök

Készítette: Oláh István mestertanár

Szárazföldi autonóm mobil robotok vezérlőrendszerének kialakítási lehetőségei. Kucsera Péter ZMNE Doktorandusz

Bev Be e v z e e z t e ő t az ISE re r nds nds e z r e használatához

DIGITÁLIS TECHNIKA. Szabó Tamás Dr. Lovassy Rita - Tompos Péter. Óbudai Egyetem Kandó Kálmán Villamosmérnöki Kar LABÓRATÓRIUMI ÚTMUTATÓ

Digitális technika (VIMIAA02) Laboratórium 5

Digitális technika (VIMIAA02) Laboratórium 5

A szoftverfejlesztés eszközei

Újrakonfigurálható technológiák nagy teljesítményű alkalmazásai

Robotot vezérlő szoftverek fejlesztése Developing robot controller softwares

DIGITÁLIS TECHNIKA 7. Előadó: Dr. Oniga István

Digitális technika Xilinx ISE GUI használata

A Picoblaze Core implementálása FPGA-ba

Perifériák hozzáadása a rendszerhez

Tranziens EMC vizsgálat és hardvertervezés FPGA-val

Hobbi Elektronika. A digitális elektronika alapjai: Újrakonfigurálható logikai eszközök

PROTOTÍPUSKÉSZÍTÉS. Előadó: Dr. Oniga István

Szoftver-mérés. Szoftver metrikák. Szoftver mérés

Digitális technika II. (vimia111) 5. gyakorlat: Tervezés adatstruktúra-vezérlés szétválasztással, vezérlőegység generációk

Nagy Gergely április 4.

Laborgyakorlat Logikai áramkörök számítógéppel segített tervezése (CAD)

Verilog HDL ismertető 2. hét : 1. hét dia

Digitális technika (VIMIAA02) Laboratórium 2

Dr. Oniga István DIGITÁLIS TECHNIKA 8

ISE makró (saját alkatrész) készítése

LOGIKAI TERVEZÉS HARDVERLEÍRÓ NYELVEN. Előadó: Dr. Oniga István

Laborgyakorlat Logikai áramkörök számítógéppel segített tervezése (CAD)

Digitális technika (VIMIAA02) Laboratórium 5.5

Új kompakt X20 vezérlő integrált I/O pontokkal

PROTOTÍPUSKÉSZÍTÉS. Előadó: Dr. Oniga István

Autóipari beágyazott rendszerek CAN hardver

Digitális elektronika gyakorlat

LOGIKAI TERVEZÉS HARDVERLEÍRÓ NYELVEN. Dr. Oniga István

Yottacontrol I/O modulok beállítási segédlet

Miskolci Egyetem Alkalmazott Informatikai Intézeti Tanszék A minőségbiztosítás informatikája. Készítette: Urbán Norbert

Hibatűrés. Majzik István Budapesti Műszaki és Gazdaságtudományi Egyetem Méréstechnika és Információs Rendszerek Tanszék

Programozható logikai vezérlő

Digitális Technika. Dr. Oniga István Debreceni Egyetem, Informatikai Kar

Laborgyakorlat Logikai áramkörök számítógéppel segített tervezése (CAD)

LOGIKAI TERVEZÉS HARDVERLEÍRÓ NYELVEN. Előadó: Dr. Oniga István

Digitális Technika. Dr. Oniga István Debreceni Egyetem, Informatikai Kar

MIKROELEKTRONIKA, VIEEA306

Tartalom Tervezési egység felépítése Utasítások csoportosítása Értékadás... 38

3. A DIGILENT BASYS 2 FEJLESZTŐLAP LEÍRÁSA

Szimuláció és verifikáció. Digitális rendszerek tervezése FPGA áramkörökkel Szimuláció és verifikáció. Kétfajta szimulációs módszer

OpenCL alapú eszközök verifikációja és validációja a gyakorlatban

Bevitel-Kivitel. Eddig a számítógép agyáról volt szó. Szükség van eszközökre. Processzusok, memória, stb

Intelligens Érzékelők

Átírás:

Budapesti Műszaki és Gazdaságtudományi Egyetem MIKROELEKTRONIKA, VIEEA306 Tervezés FPGA-ra, Verilog, SystemC http://www.eet.bme.hu/~poppe/miel/hu/18-ictervezes3.ppt http://www.eet.bme.hu

Tervezés FPGA-ra 2009-11-24 IC tervezés 3 Poppe András Nagy Gergely, BME-EET 2008 2

Standard cellás IC költségei Teljes Si technológia költségeit meg kell fizetni teljes maszk készlet legyártandó (NRE költség) Si-megmunkálás költségei teljes egészében jelentkeznek; költség arányos a felhasznált Si felülettel Tokozási költségek arányos az IC kivezetéseinek a számával függ a tokozás bonyolultságától Tesztelési költségek szelet szintű tesztelés költsége jellemzően a szelet költségének részeként jelenik meg MPW szolgáltatók pl. tesztelt szeleteket adnak small volume production esetén végső tesztelés költsége csökkenthető a tesztelhetőre tervezéssel, lásd később 2009-11-24 IC tervezés 3 Poppe András Nagy Gergely, BME-EET 2008 3

Másik példa: FPGA-s megvalósítás Alapgondolat: a gate array alapötletét megtartjuk, de az összeköttetéseket nem fotomaszkkal programozzuk nem egy fémezésmintázat definiálja azokat (NRE költség erős csökkentése) alapelem: logic array block Helyette: az összeköttetési hálózat architektúrája is előre ki van alakítva, a kapcsolatokat programozzuk biztosíték kiégetéses technika helyesebben az ún. antifuse eljárás (szakadásból kisellenállású összeköttetés) kapcsolatok tárolása SRAM-ban Előre kialakított I/O áramkörök Mai fejlett FPGA-k bonyolultabb blokkokat is tartalmaznak (RAM, DSP blokk,...) 2009-11-24 IC tervezés 3 Poppe András Nagy Gergely, BME-EET 2008 4

Példa az Altera-tól: Stratix 2009-11-24 IC tervezés 3 Poppe András Nagy Gergely, BME-EET 2008 5

Altera Stratix 2009-11-24 IC tervezés 3 Poppe András Nagy Gergely, BME-EET 2008 6

Pl.: Xilinx Virtex-5 65-nm CMOS technológia 12 rétegű fémezés 1.0V core feszültség 36-Kbit block RAM/FIFO 1.2 to 3.3V I/O Operation RocketIO GTP transceiver-ek 100 Mb/s.. 3.2 Gb/s PCI Express Endpoint blokkok 10/100/1000 Mb/s Ethernet On-chip hőmérséklet monitoring On-chip power supply monitoring 2009-11-24 IC tervezés 3 Poppe András Nagy Gergely, BME-EET 2008 7

FPGA-s tervezés folyamata Szimulátor: Rendszer szimuláció Funkcionális tesztelés Reprezentáció: Rendszerszintű leírás Specifikáció SystemC-ben HW-SW co-design Viselkedési leírás Specifikáció VHDL-ben vagy Verilog-ban Absztrakciós szint: Rendszer szintű tervezés A tervezési munka itt koncentrálódik Magasszintű szintézis Logikai szimuláció Struktúrális/logikai leírás VHDL-ben vagy Verilog-ban Logikai tervezés időzítési paraméterek Időzítési adatok kinyerése Mapping és layoutgenerálás Fizikai terv (layout) Ez kimarad, az Tranzisztor szintű összeköttetéseket tervezés reprezentáló programkód készül 2009-11-24 IC tervezés 3 Poppe András Nagy Gergely, BME-EET 2008 8

Programozás FPGAs tervezés Szoftver FPGA hardver Programozási nyelv HDL Fordító Szintézis Object file-ok Netlist Linker "Elhelyezés és huzalozás" Futtatható állomány Bitfile 2009-11-24 IC tervezés 3 Poppe András Nagy Gergely, BME-EET 2008 9

VHDL mintapélda 2009-11-24 IC tervezés 3 Poppe András Nagy Gergely, BME-EET 2008 10

Verilog mintapélda 2009-11-24 IC tervezés 3 Poppe András Nagy Gergely, BME-EET 2008 11

Szintézis Netlist HDL RTL 2009-11-24 IC tervezés 3 Poppe András Nagy Gergely, BME-EET 2008 12

Hardver leíró nyelvek Áttekintés Verilog Röviden a SystemC-ről 2009-11-24 IC tervezés 3 Poppe András Nagy Gergely, BME-EET 2008 13

Hardver leíró nyelvek kialakulása A 80-as évekre olyan bonyolulttá váltak a digitális áramkörök, hogy tranzisztor, illetve kapu szinten már nem voltak áttekinthetőek Szükség volt egy olyan eszközre, amellyel gyorsan és hatékonyan lehet fejleszteni és tesztelni a terveket A megoldás programnyelvek formájában érkezett (Verilog, VHDL, ABEL, stb.) Ezek speciális nyelvek, amelyek fel vannak készítve a hardvertervezés igényeire 2009-11-24 IC tervezés 3 Poppe András Nagy Gergely, BME-EET 2008 14

A Verilog története A Gateway Design Automation cég fejlesztette ki 1984-ben (Verilog-XL szimulátor) Ezt a céget felvásárolta a Cadence Design Systems, majd 1990-ben nyilvánossá tette a nyelvet, hogy az elterjedjen; ennek hatására de facto szabvánnyá vált A szabványosítás 1995-ben történt meg az Open Verilog International (OVI másnéven Accelera) szervezet kezelésében ekkor vált de jure szabvánnyá 2001-ben bővült a szabvány: Verilog-2001 2009-11-24 IC tervezés 3 Poppe András Nagy Gergely, BME-EET 2008 15

A HDL-ek jellemzői Speciális programnyelvek Modellezik, ábrázolják, szimulálják a digitális hardvert Képesek a konkurrens működés leírására (párhuzamosság) Követik a jelek időbeli változását, ismerik a hardverspecifikus jelszinteket Biztosítják a különböző digitális modellek egyszerű megvalósítását (kombinációs, szinkron/aszinkron sorrendi hálózatok) Támogatják a moduláris tervezést 2009-11-24 IC tervezés 3 Poppe András Nagy Gergely, BME-EET 2008 16

A HDL-ek előnyei Támogatják a struktúrált tervezési módszereket Rugalmasan particionálhatóak a projektek A nyelvi leírás alapján a kapcsolási rajz generálható, ha szükséges Magas szintű absztrakció lehetőségét biztosítják Lehetővé teszik alternatívák egyszerű összehasonlítását Módosítások gyorsan végrehajthatók Javítják a hatékonyságot és minőséget nagyobb tervezői produktivitás Gyors prototípus kihasználja a szintézis eszközöket 2009-11-24 IC tervezés 3 Poppe András Nagy Gergely, BME-EET 2008 17

Hierarchikus építkezés elemekből 1 Verilogban modulokat definiálunk Ezek be- és kimenetekkel rendelkező áramkörrészletek Pl: module AND(inA, inb, q); input ina, inb; output q; ina endmodule inb A q 2009-11-24 IC tervezés 3 Poppe András Nagy Gergely, BME-EET 2008 18

Hierarchikus építkezés elemekből 2 A modulokból tetszőleges számú példányt hozhatunk létre példányosítás: module Osszetett(in, out); input [3:0] in; output [1:0] out; Példányosítandó modul neve A példány egyedi neve 4 bites bemenet 2 bites kimenet AND a1(in[0], in[1], out[0]); AND a2(in[2], in[3], out[1]); endmodule Az egyes bitek kiválasztása az indexelő operátor ([ ]) segítségével történik Portkapcsolati lista 2009-11-24 IC tervezés 3 Poppe András Nagy Gergely, BME-EET 2008 19

Hierarchikus építkezés elemekből 3 module Osszetett module AND in[0] ina a1 out[0] q in[1] inb in [3:0] out [1:0] in[2] in[3] module AND a2 ina q out[1] inb 2009-11-24 IC tervezés 3 Poppe András Nagy Gergely, BME-EET 2008 20

Verilog Irodalom Tanszéki jegyzetek: www.eet.bme.hu/~nagyg/verilog.pdf www.eet.bme.hu/~gaertner/segedanyagok/lxverifs.doc Jegyzetek: www.doulos.com/knowhow/verilog_designers_guide/ www.verilog.net/docs.html www.asic-world.com/verilog/index.htm www.ee.lsu.edu/v/refcard.pdf 2009-11-24 IC tervezés 3 Poppe András Nagy Gergely, BME-EET 2008 40

Egyéb irányzatok SOC SystemC 2009-11-24 IC tervezés 3 Poppe András Nagy Gergely, BME-EET 2008 41

Egyéb irányzatok SoC SoC = System on Chip Egy teljes rendszer egy chip-es kialakítása digitális rész beágyazott szoftver szükséges analóg interfészek Homogén gyártástechnológia pl. minden hardver komponens CMOS Magas absztrakciós szinten tervezzük Verilog/VHDL analóg részekhez ezek analóg bővítményei: Verilog-A, VHDL-A Jellemző az IP blokkok használata Hardver-szoftver együttes tervezés: pl. SystemC-vel Ezt 2005-ben szabványosították 2009-11-24 IC tervezés 3 Poppe András Nagy Gergely, BME-EET 2008 42

Intellectual Property A Protocol Processor for Wireless 2009-11-24 IC tervezés 3 Poppe András Nagy Gergely, BME-EET 2008 43

Hardver-szoftver együttes tervezés SystemC a HSCD (hardware-software co-design) jellegzetes eszköze 2005-től IEEE szabvány: IEEE std-1666-2005 Cél: HW-SW együttes tervezése szimulációja verifikációja Nem kell várni a beágyazott szoftver tervezésével addig, amíg elkészül a hardver time-to-market csökkenthető A tervezés magas absztrakciós szinten történhet 2009-11-24 IC tervezés 3 Poppe András Nagy Gergely, BME-EET 2008 44

Hardver-szoftver együttes tervezés ESL: Electronic System Level design HSCD A hardver-szoftver együttes tervezés legfontosabb célja, hogy magas absztrakciós szintű leírással könnyebben átlátható legyen a terv, hibákat gyorsabban meg lehessen találni, optimalizálni lehessen a hardver/szoftver particionálást, csökkenjen a piacra kerülés átfutási ideje, és hogy csökkenjenek a fejlesztési költségek. Ennek egyre terjedő eszköze a SystemC Egy másik variáció: ANSI C használata, pl. Mentor Graphics CatapultC 2009-11-24 IC tervezés 3 Poppe András Nagy Gergely, BME-EET 2008 45

A SystemC A SystemC nyelv egy C++ könyvtár és metódus, ami igen hatékonyan használható szoftveres algoritmusok készítésére, hardver architektúrák modellezésére, valamint SoC és rendszer szintű modellek interfészének megvalósítására. A SystemC és a hagyományos C++ fejlesztői környezet használatával rendszer szintű modellek írhatók le, ezek azután gyorsan szimulálhatók és optimalizálhatók. A rendszert leíró modell egy C++ program, ami futtatva ugyanazt a viselkedést produkálja, amit maga a rendszer 2009-11-24 IC tervezés 3 Poppe András Nagy Gergely, BME-EET 2008 46

A SystemC komponensei Modul: egy container, ami más modulokat és process-eket foglalhat magában Process: folyamat egy adott funkcionalitás leírására szolgál Signal: jel támogatott a 2 (0,1) és 4 (0,1,X,Z) értékű logika is Port: jelek csatlakozó pontja Adattípusok sokféle típus, különféle szempontok szerint használhatók. Vigyázat szintetizálhatóság!! Órajel: az idő modellezésére szolgáló spec. jel Szimulációs kernel lehetővé teszi a gyors (compiled kódú) szimulációt Jelalak-figyelés: VCD (Value Change Dump), WIF (Waveform Intermediate Format) és ISDB (Integrated Signal Data Base) formátumú jelalak-file-ok támogatása 2009-11-24 IC tervezés 3 Poppe András Nagy Gergely, BME-EET 2008 47

Budapesti Műszaki és Gazdaságtudomanyi Egyetem SystemC példa Közlekedési lámpavezérlő (BAH csomópont) 9 autós, 7 gyalogos lámpa 90 sec-os ciklus 3-féle egység számláló autós lámpa vez. gyalogos lámpa vez. Balotai Péter: Diploma dolgozat, 2007 2009-11-24 IC tervezés 3 Poppe András Nagy Gergely, BME-EET 2008 48

Közlekedési lámpa-vezérlő Balotai Péter: Diploma dolgozat, 2007 2009-11-24 IC tervezés 3 Poppe András Nagy Gergely, BME-EET 2008 49

Közlekedési lámpa-vezérlő // count.h #include "systemc.h" SC_MODULE(count) { //input ports sc_in<bool> clk; sc_in<bool> en; //output ports sc_out<sc_uint<7> > ido; int countval; void countproc(); SC_CTOR(count) { SC_METHOD(countproc); countval = 89; sensitive_pos << clk; sensitive << en; } }; //count.cpp #include "count.h" void count::countproc() { if (en == 1) { if (countval < 89) { countval++; } else { countval = 0; } } else { countval = 0x7f; } ido = countval; } 2009-11-24 IC tervezés 3 Poppe András Nagy Gergely, BME-EET 2008 50