MIKROELEKTRONIKA, VIEEA306

Slides:



Advertisements
Hasonló előadás
„Esélyteremtés és értékalakulás” Konferencia Megyeháza Kaposvár, 2009
Advertisements

Digitális elektronika
Az integrált áramkörök (IC-k) tervezése
Az előadásokon oldandók meg. (Szimulációs modell is tartozik hozzájuk)
MIKROELEKTRONIKA, VIEEA306
Budapesti Műszaki és Gazdaságtudományi Egyetem Elektronikus Eszközök Tanszéke A programozás alapjai 1. (VIEEA100) 9. előadás.
Slide title 70 pt CAPITALS Slide subtitle minimum 30 pt HDL mindset & RTL coding style László Lajkó.
Az integrált áramkörök (IC-k) típusai
Elektronikai Áramkörök Tervezése és Megvalósítása
Elektronikai Áramkörök Tervezése és Megvalósítása
Mérés és adatgyűjtés Kincses Zoltán, Mingesz Róbert, Vadai Gergely 10. Óra MA-DAQ – Műszer vezérlése November 12., 15. v
Mérés és adatgyűjtés laboratóriumi gyakorlat Makan Gergely, Mingesz Róbert, Nagy Tamás 2. óra szeptember 9., 10. v
A verem működése fpga-n
Optimalizálás nemklasszikus architektúrákon
Szintézis Keresztes Péter, 2005 A GAJSKI-KUHN DIAGRAM Alapelv: Rendezzük a digitális- rendszerek leírásait célok és szintek szerint.
Digitális rendszerek I. c
A RobotinoView programozása
Felkészítő tanár: Széki Tibor tanár úr
1 Szoftverfejlesztési folyamat a gyakorlatban Tamás Árpád – QualSoft Kft
IC-k számítógépes tervezése Budapesti Mûszaki Egyetem Elektronikus Eszközök Tanszéke 1999 november.
MOS integrált áramkörök Mikroelektronika és Technológia BME Elektronikus Eszközök Tanszéke 1999 október.
FPGA & Verilog ismertető
Budapesti Műszaki és Gazdaságtudományi Egyetem Elektronikus Eszközök Tanszéke Integrált mikrorendszerek II. MEMS = Micro-Electro-
Budapesti Műszaki és Gazdaságtudományi Egyetem Elektronikus Eszközök Tanszéke IC layout tervek tesztelése.
Budapesti Műszaki és Gazdaságtudományi Egyetem Elektronikus Eszközök Tanszéke IC layout tervek tesztelése.
MIKROELEKTRONIKA, VIEEA306
MIKROELEKTRONIKA, VIEEA306
Budapesti Műszaki és Gazdaságtudományi Egyetem Elektronikus Eszközök Tanszéke MIKROELEKTRONIKA, VIEEA306 Integrált mikrorendszerek:
MIKROELEKTRONIKA, VIEEA306
MIKROELEKTRONIKA, VIEEA306
MIKROELEKTRONIKA, VIEEA306
MIKROELEKTRONIKA, VIEEA306
MIKROELEKTRONIKA, VIEEA306
Bipoláris technológia Mizsei János Hodossy Sándor BME-EET
Integrált áramkörök tesztelése (minőségellenőrzés)
Cim Design flow, production flow, maszkok, technológia Tervezési szabályok, lambda. Pálcika diagram, alap layoutok Layout tervezés, P&R.
Berendezés-orientált IC-k BME Villamosmérnöki és Informatikai Kar Elektronikus Eszközök Tanszéke Székely Vladimír, Mizsei János 2004 április BME Villamosmérnöki.
Budapesti Műszaki és Gazdaságtudományi Egyetem Elektronikus Eszközök Tanszéke MIKROELEKTRONIKA, VIEEA306 MOS áramkörök: CMOS áramkörök,
MIKROELEKTRONIKA, VIEEA306
MIKROELEKTRONIKA, VIEEA306
Budapesti Műszaki és Gazdaságtudományi Egyetem Elektronikus Eszközök Tanszéke MIKROELEKTRONIKA, VIEEA306 A bipoláris IC technológia.
Budapesti Műszaki és Gazdaságtudományi Egyetem Elektronikus Eszközök Tanszéke Mikroelektronika Laboratórium Tájékoztató
Budapesti Műszaki és Gazdaságtudományi Egyetem Elektronikus Eszközök Tanszéke MIKROELEKTRONIKA, VIEEA306 A bipoláris tranzisztor.
Budapesti Műszaki és Gazdaságtudományi Egyetem Elektronikus Eszközök Tanszéke MIKROELEKTRONIKA, VIEEA306 Integrált áramkörök: áttekintés,
MIKROELEKTRONIKA, VIEEA306
Budapesti Műszaki és Gazdaságtudományi Egyetem Elektronikus Eszközök Tanszéke 2. zárthelyi megoldásai december 2.
1 Hernyák Zoltán Programozási Nyelvek II. Eszterházy Károly Főiskola Számítástudományi tsz.
Hernyák Zoltán Programozási Nyelvek II.
1 Hernyák Zoltán Web: Magasszintű Programozási Nyelvek I. Eszterházy.
A PLC programozási nyelvek bemutatása
Budapesti Műszaki és Gazdaságtudományi Egyetem Elektronikus Eszközök Tanszéke 1. zárthelyi megoldásai október 11.
MIKROELEKTRONIKA, VIEEA306
MIKROELEKTRONIKA, VIEEA306
Budapesti Műszaki és Gazdaságtudományi Egyetem Elektronikus Eszközök Tanszéke Mikroelektronika Laboratórium Tájékoztató
Budapesti Műszaki és Gazdaságtudományi Egyetem Elektronikus Eszközök Tanszéke MIKROELEKTRONIKA, VIEEA306 A pn átmenet működése: Sztatikus.
Programozás, programtervezés
Írja fel a tizes számrendszerbeli
Algoritmizálás, adatmodellezés
Budapesti Műszaki és Gazdaságtudományi Egyetem Elektronikus Eszközök Tanszéke MIKROELEKTRONIKA, VIEEA /2009 I. félév Követlemények.
Budapesti Műszaki és Gazdaságtudományi Egyetem Elektronikus Eszközök Tanszéke MIKROELEKTRONIKA, VIEEA /2012 I. félév Követelmények.
Budapesti Műszaki és Gazdaságtudományi Egyetem Elektronikus Eszközök Tanszéke MIKROELEKTRONIKA, VIEEA /2013 I. félév Követelmények.
ifin811/ea1 C Programozás: Hardver alapok áttekintése
Budapesti Műszaki és Gazdaságtudományi Egyetem Elektronikus Eszközök Tanszéke MIKROELEKTRONIKA, VIEEA /2011 I. félév Követelmények.
Adatszerkezetek és algoritmusok 2008/ Algoritmus Az algoritmus szó eredete a középkori arab matematikáig nyúlik vissza, egy a i.sz. IX. században.
2009 november 1 Verilog Digital System Design Copyright Z. Navabi, 2006 Verilog Digital System Design Z. Navabi, McGraw-Hill, Fejezet Register.
FPGA Készítette: Pogrányi Imre.
Budapesti Műszaki és Gazdaságtudományi Egyetem Elektronikus Eszközök Tanszéke Termikus hatások analóg integrált áramkörökben Esettanulmány:
MIKROELEKTRONIKA, VIEEA306
Szekvenciális hálózatok
Programozható áramkörök
Előadás másolata:

MIKROELEKTRONIKA, VIEEA306 Tervezés FPGA-ra, Verilog, SystemC http://www.eet.bme.hu/~poppe/miel/hu/18-ICtervezes3.ppt

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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 hardver-specifikus 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

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

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; … endmodule A inA q inB 2009-11-24 IC tervezés 3 © Poppe András – Nagy Gergely, BME-EET 2008

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; AND a1(in[0], in[1], out[0]); AND a2(in[2], in[3], out[1]); endmodule 4 bites bemenet 2 bites kimenet Példányosítandó modul neve A példány egyedi neve Portkapcsolati lista Az egyes bitek kiválasztása az indexelő operátor ([ ]) segítségével történik 2009-11-24 IC tervezés 3 © Poppe András – Nagy Gergely, BME-EET 2008

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

Vezetékek a Verilogban Vezeték: legegyszerűbb áramköri elem (wire) Folyamatosan vezérelni kell, hiszen nincsen memóriája Ez kétféleképp tehető meg: Folyamatos értékadás (continuous assignment): A kombinációs hálózat egy modellje Az értékadás jobb oldalán az értékeket folyamatosan figyeljük és ha változás történik, azonnal frissítjük a kapu értékeket Egy regiszter kimenetére kötjük: A regiszterek megjegyzik a nekik adott értékeket (ld. később), így képesek folyamatosan értéket szolgáltatni a kimenetükre kötött vezetékeknek 2009-11-24 IC tervezés 3 © Poppe András – Nagy Gergely, BME-EET 2008

Folyamatos értékadás Az assign kulcsszó segítségével történik A korábbi AND kapu megvalósítása: module (inA, inB, q); input inA, inB; output q; assign q = inA & inB; endmodule; 2009-11-24 IC tervezés 3 © Poppe András – Nagy Gergely, BME-EET 2008

Vezetékek létrehozása Ha másként nem rendelkezünk, a modulok be- és kimenetei vezetékek lesznek A wire kulcsszó segítségével hozhatunk létre további vezetékeket Például egy egybites vezeték és egy nyolcbites busz: wire vezetek; wire [7:0] busz; 2009-11-24 IC tervezés 3 © Poppe András – Nagy Gergely, BME-EET 2008

Regiszterek Egybites memóriák Csak valamilyen esemény hatására kaphatnak értéket (pl. órajel felfutó éle) Az értéküket őrzik, amíg újat nem kapnak Létrehozásuk: a reg kulcsszó segítségével reg q; reg [3:0] counter; 2009-11-24 IC tervezés 3 © Poppe András – Nagy Gergely, BME-EET 2008

Esményvezérelt értékadás 1 Regisztereknek egy adott esemény hatására egy always blokkban tudunk értéket adni: wire clk; reg counter; always @(posedge clk) begin counter = counter + 1; end Az @ jel után következik az esemény A clk vezetéken történő felfutó él hatására lesz végrehajtva a blokk belseje Az utasítás blokkokat a begin és end kulcsszavak fogják közre 2009-11-24 IC tervezés 3 © Poppe András – Nagy Gergely, BME-EET 2008

Esményvezérelt értékadás 2 Az always blokkok fejrészében lévő feltétel(eke)t a rendszer folyamatosan figyeli és teljesülésükkor végrehajtja a bennük lévő utasításblokkot Egy alwayson belül csak regiszter típusú változónak adhatunk értéket (bizonyos esetekben egy ilyen regisztert a szintézer vezetékké is alakíthat) Az egy modulon belül lévő always blokkok egymással párhuzamosan futnak Létezik feltétel nélküli always blokk is, ami folyamatosan végrehajtódik 2009-11-24 IC tervezés 3 © Poppe András – Nagy Gergely, BME-EET 2008

Egy összetettebb példa: számláló module szamlalo(clk, reset, q); input clk, reset; output reg [7:0] q; always @(posedge clk) begin if (reset == 1) q = 0; else q = q + 1; end endmodule A kimenet egyben egy regiszter (8 bites) Szinkron reset van, hiszen a reset jel csak az órajel felfutó élére jut érvényre Fontos: különbség van logikai egyenlőségvizs-gálat és értékadás között! A feltételes elágazás (if-else) pontosan úgy működik, mint más nyelvekben (pl. C) 2009-11-24 IC tervezés 3 © Poppe András – Nagy Gergely, BME-EET 2008

Tesztelés A tesztelés is a nyelv eszközeivel történik Létrehozunk egy modult, aminek nincsenek portjai Ezen belül példányosítjuk a tesztelendő modulokat A modulokat vezetékekkel összekapcsoljuk A bemenetekhez definiálunk regisztereket, ezek segítségével állítjuk elő a tesztszekvenciát Egy nem ismétlődő tesztszekvenciát az initial blokk segítségével tudunk létrehozni A kimeneteken lévő vezetékek értékeit figyeljük 2009-11-24 IC tervezés 3 © Poppe András – Nagy Gergely, BME-EET 2008

Aperiodikus tesztjelek előállítása Az initial blokk végrehajtása a szimuláció elején kezdődik Ha a végére érünk, akkor befejeződik a szimuláció Csak regisztereknek adhatunk értéket benne reg in; initial begin in = 0; #5 in = 1; end Ez öt szimulációs időegységnyi késleltetést jelent Így lehet időzíteni a változásokat egy tesztszekven-ciában Ilyen késleltetés nem helyezhető el olyan modul-ban, amit szintetizálni szeretnénk 2009-11-24 IC tervezés 3 © Poppe András – Nagy Gergely, BME-EET 2008

Periodikus tesztjelek előállítása Periodikus tesztjeleket feltételrész nélküli always blokkokban állíthatunk elő; azonban kezdeti értéket kell adni egy initial blokkban Például egy két időegységnyi periódushosszú, 50%-os kitöltési tényezőjű négyszögjel (órajel): initial clk = 0; always begin #1 clk = ~clk; end Egy időegységenként invertálja a clk regiszter értékét 2009-11-24 IC tervezés 3 © Poppe András – Nagy Gergely, BME-EET 2008

Példa: a számláló tesztelése module teszt; reg clk, reset; wire [7:0] q; szamlalo sz1(clk, reset, q); initial begin clk = 0; reset = 0; #2 reset = 1; #2 reset = 0; end always #1 clk = ~clk; endmodule 2009-11-24 IC tervezés 3 © Poppe András – Nagy Gergely, BME-EET 2008

Speciális operátorok 1 Bit-eltoló operátorok (<<, >>): Úgy működnek, mint a C nyelvben Fel lehet őket használni demultiplexer készítésére: module demux(in, addr, out); input in; input [2:0] addr; output [7:0] out; assign out = in << addr; endmodule Az addr bemeneten lévő számnak megfelelő mértékben toljuk el a bementi bitet. 2009-11-24 IC tervezés 3 © Poppe András – Nagy Gergely, BME-EET 2008

Speciális operátorok 2 Bit-összefűző operátor ({}): Egy bitmintát lehet összeállítani egyes bitekből, vagy bitsorozatokból Vesszővel elválasztva kell megadni az egyes részeket Segítségével lehet például egy regiszter bitjeit körbefor-gatni: reg [7:0] rx; always begin #1 rx = {rx[6:0], rx[7]}; end Felülre helyezzük az alsó 7 bitet, utána pedig a legfelső bitet. 2009-11-24 IC tervezés 3 © Poppe András – Nagy Gergely, BME-EET 2008

& Speciális operátorok 3 Redukciós operátorok: Sokbemenetű logikai kapu leírását egyszerűsítik A logikai operátorok egy operandusos változatát egy változó elé írva, annak összes bitjére hajtja végre a műveletet: wire [3:0] in; wire q; q = &in; & in[0] q in[1] in[2] in[3] 2009-11-24 IC tervezés 3 © Poppe András – Nagy Gergely, BME-EET 2008

A Verilog-2001 új lehetőségei 1 Összevont port deklaráció: A nyelv korábbi verzióiban a portoknál külön utasítással kellett megadni, ha regisztert szerettünk volna egy kimenetre tenni A Verilog-2001-ben: module m(in, out); input [7:0] in; output reg [2:0] out; … endmodule 2009-11-24 IC tervezés 3 © Poppe András – Nagy Gergely, BME-EET 2008

A Verilog-2001 új lehetőségei 2 Port deklaráció a portlistában: A Verilog-2001-ben a portok már közvetlenül a portlistában is szerepelhetnek: module m(input [7:0] in, output reg [2:0] out); … endmodule 2009-11-24 IC tervezés 3 © Poppe András – Nagy Gergely, BME-EET 2008

A Verilog-2001 új lehetőségei 3 Skálázható modulok – hardvergenerálás 1: Probléma: Sokat kell példányosítani ugyanabból a modulból Egy modul sok, egymáshoz hasonló elemből épül fel Ezekben az esetekben nagyon sok gépelésre lenne szükség (időigényes, hibalehetőslegeket rejt magában) A VHDL-ben régóta létezett: paraméteres hardvergenerálás – ezt átvette a Verilog is A generate kulcsszó segítségével egy ciklusban, paraméteresen lehet létrehozni hardverelemeket 2009-11-24 IC tervezés 3 © Poppe András – Nagy Gergely, BME-EET 2008

A Verilog-2001 új lehetőségei 4 Skálázható modulok – hardvergenerálás 2: module myMod(input a, input b, output q); ... module generator(input [7:0] a, input [7:0] b, output [7:0] q); genvar i; generate for (i = 0; i < 8; i=i+1) begin : bigMod myMod m(a[i], b[i], q[i]); end endgenerate endmodule A ciklusváltozó 8 darabot példányosítunk a myMod modulból Az összetett modul neve bigMod lesz Az egyes példányokra az m névvel lehet hivatkozni. 2009-11-24 IC tervezés 3 © Poppe András – Nagy Gergely, BME-EET 2008

A Verilog-2001 új lehetőségei 5 Skálázható modulok – hardvergenerálás 3: Hivatkozás a példányosított elemekre: bigMod[3].m A példányok sorszáma (0..7) A példányokon belüli modulok nevei (jelen esetben minden példány csak egy modult tartalmazott (a myMod egy-egy példányát)) 2009-11-24 IC tervezés 3 © Poppe András – Nagy Gergely, BME-EET 2008

Verilog Irodalom Tanszéki jegyzetek: 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

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

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

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

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

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

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

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

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

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

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