Az előadás letöltése folymat van. Kérjük, várjon

Az előadás letöltése folymat van. Kérjük, várjon

Budapesti Műszaki és Gazdaságtudományi Egyetem Elektronikus Eszközök Tanszéke MIKROELEKTRONIKA, VIEEA306 Tervezés FPGA-ra, Verilog,

Hasonló előadás


Az előadások a következő témára: "Budapesti Műszaki és Gazdaságtudományi Egyetem Elektronikus Eszközök Tanszéke MIKROELEKTRONIKA, VIEEA306 Tervezés FPGA-ra, Verilog,"— Előadás másolata:

1 Budapesti Műszaki és Gazdaságtudományi Egyetem Elektronikus Eszközök Tanszéke MIKROELEKTRONIKA, VIEEA306 Tervezés FPGA-ra, Verilog, SystemC

2 Budapesti Műszaki és Gazdaságtudomanyi Egyetem Elektronikus Eszközök Tanszéke IC tervezés 3 © Poppe András – Nagy Gergely, BME-EET Tervezés FPGA-ra

3 Budapesti Műszaki és Gazdaságtudomanyi Egyetem Elektronikus Eszközök Tanszéke IC tervezés 3 © Poppe András – Nagy Gergely, BME-EET 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

4 Budapesti Műszaki és Gazdaságtudomanyi Egyetem Elektronikus Eszközök Tanszéke IC tervezés 3 © Poppe András – Nagy Gergely, BME-EET 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,...)

5 Budapesti Műszaki és Gazdaságtudomanyi Egyetem Elektronikus Eszközök Tanszéke IC tervezés 3 © Poppe András – Nagy Gergely, BME-EET Példa az Altera-tól: Stratix

6 Budapesti Műszaki és Gazdaságtudomanyi Egyetem Elektronikus Eszközök Tanszéke IC tervezés 3 © Poppe András – Nagy Gergely, BME-EET Altera Stratix

7 Budapesti Műszaki és Gazdaságtudomanyi Egyetem Elektronikus Eszközök Tanszéke IC tervezés 3 © Poppe András – Nagy Gergely, BME-EET 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 Gb/s ► PCI Express Endpoint blokkok ► 10/100/1000 Mb/s Ethernet ► On-chip hőmérséklet monitoring ► On-chip power supply monitoring

8 Budapesti Műszaki és Gazdaságtudomanyi Egyetem Elektronikus Eszközök Tanszéke IC tervezés 3 © Poppe András – Nagy Gergely, BME-EET 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

9 Budapesti Műszaki és Gazdaságtudomanyi Egyetem Elektronikus Eszközök Tanszéke IC tervezés 3 © Poppe András – Nagy Gergely, BME-EET Programozás – FPGAs tervezés Programozási nyelv Fordító Object file-ok Linker Futtatható állomány HDL Szintézis "Elhelyezés és huzalozás" Netlist Bitfile Szoftver FPGA hardver

10 Budapesti Műszaki és Gazdaságtudomanyi Egyetem Elektronikus Eszközök Tanszéke IC tervezés 3 © Poppe András – Nagy Gergely, BME-EET VHDL mintapélda

11 Budapesti Műszaki és Gazdaságtudomanyi Egyetem Elektronikus Eszközök Tanszéke IC tervezés 3 © Poppe András – Nagy Gergely, BME-EET Verilog mintapélda

12 Budapesti Műszaki és Gazdaságtudomanyi Egyetem Elektronikus Eszközök Tanszéke IC tervezés 3 © Poppe András – Nagy Gergely, BME-EET Szintézis Netlist RTL HDL

13 Budapesti Műszaki és Gazdaságtudomanyi Egyetem Elektronikus Eszközök Tanszéke IC tervezés 3 © Poppe András – Nagy Gergely, BME-EET Hardver leíró nyelvek ► Áttekintés ► Verilog ► Röviden a SystemC-ről

14 Budapesti Műszaki és Gazdaságtudomanyi Egyetem Elektronikus Eszközök Tanszéke IC tervezés 3 © Poppe András – Nagy Gergely, BME-EET 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

15 Budapesti Műszaki és Gazdaságtudomanyi Egyetem Elektronikus Eszközök Tanszéke IC tervezés 3 © Poppe András – Nagy Gergely, BME-EET 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

16 Budapesti Műszaki és Gazdaságtudomanyi Egyetem Elektronikus Eszközök Tanszéke IC tervezés 3 © Poppe András – Nagy Gergely, BME-EET 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

17 Budapesti Műszaki és Gazdaságtudomanyi Egyetem Elektronikus Eszközök Tanszéke IC tervezés 3 © Poppe András – Nagy Gergely, BME-EET 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

18 Budapesti Műszaki és Gazdaságtudomanyi Egyetem Elektronikus Eszközök Tanszéke IC tervezés 3 © Poppe András – Nagy Gergely, BME-EET 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 inB q

19 Budapesti Műszaki és Gazdaságtudomanyi Egyetem Elektronikus Eszközök Tanszéke IC tervezés 3 © Poppe András – Nagy Gergely, BME-EET 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 neveA példány egyedi neve Portkapcsolati lista Az egyes bitek kiválasztása az indexelő operátor ([ ]) segítségével történik

20 Budapesti Műszaki és Gazdaságtudomanyi Egyetem Elektronikus Eszközök Tanszéke IC tervezés 3 © Poppe András – Nagy Gergely, BME-EET Hierarchikus építkezés elemekből 3 module Osszetett module AND a1 a2 in [3:0]out [1:0] in[0] in[1] in[2] in[3] out[0] out[1] inA inB q q inA inB

21 Budapesti Műszaki és Gazdaságtudomanyi Egyetem Elektronikus Eszközök Tanszéke IC tervezés 3 © Poppe András – Nagy Gergely, BME-EET 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

22 Budapesti Műszaki és Gazdaságtudomanyi Egyetem Elektronikus Eszközök Tanszéke IC tervezés 3 © Poppe András – Nagy Gergely, BME-EET 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;

23 Budapesti Műszaki és Gazdaságtudomanyi Egyetem Elektronikus Eszközök Tanszéke IC tervezés 3 © Poppe András – Nagy Gergely, BME-EET 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;

24 Budapesti Műszaki és Gazdaságtudomanyi Egyetem Elektronikus Eszközök Tanszéke IC tervezés 3 © Poppe András – Nagy Gergely, BME-EET 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;

25 Budapesti Műszaki és Gazdaságtudomanyi Egyetem Elektronikus Eszközök Tanszéke IC tervezés 3 © Poppe András – Nagy Gergely, BME-EET 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; clk) begin counter = counter + 1; end 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

26 Budapesti Műszaki és Gazdaságtudomanyi Egyetem Elektronikus Eszközök Tanszéke IC tervezés 3 © Poppe András – Nagy Gergely, BME-EET 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 always on 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

27 Budapesti Műszaki és Gazdaságtudomanyi Egyetem Elektronikus Eszközök Tanszéke IC tervezés 3 © Poppe András – Nagy Gergely, BME-EET Egy összetettebb példa: számláló module szamlalo(clk, reset, q); input clk, reset; output reg [7:0] q; 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 A feltételes elágazás ( if-else ) pontosan úgy működik, mint más nyelvekben (pl. C) Fontos: különbség van logikai egyenlőségvizs- gálat és értékadás között!

28 Budapesti Műszaki és Gazdaságtudomanyi Egyetem Elektronikus Eszközök Tanszéke IC tervezés 3 © Poppe András – Nagy Gergely, BME-EET 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

29 Budapesti Műszaki és Gazdaságtudomanyi Egyetem Elektronikus Eszközök Tanszéke IC tervezés 3 © Poppe András – Nagy Gergely, BME-EET 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

30 Budapesti Műszaki és Gazdaságtudomanyi Egyetem Elektronikus Eszközök Tanszéke IC tervezés 3 © Poppe András – Nagy Gergely, BME-EET 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

31 Budapesti Műszaki és Gazdaságtudomanyi Egyetem Elektronikus Eszközök Tanszéke IC tervezés 3 © Poppe András – Nagy Gergely, BME-EET 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

32 Budapesti Műszaki és Gazdaságtudomanyi Egyetem Elektronikus Eszközök Tanszéke IC tervezés 3 © Poppe András – Nagy Gergely, BME-EET 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.

33 Budapesti Műszaki és Gazdaságtudomanyi Egyetem Elektronikus Eszközök Tanszéke IC tervezés 3 © Poppe András – Nagy Gergely, BME-EET 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.

34 Budapesti Műszaki és Gazdaságtudomanyi Egyetem Elektronikus Eszközök Tanszéke IC tervezés 3 © Poppe András – Nagy Gergely, BME-EET 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[0] in[1] in[2] in[3] q

35 Budapesti Műszaki és Gazdaságtudomanyi Egyetem Elektronikus Eszközök Tanszéke IC tervezés 3 © Poppe András – Nagy Gergely, BME-EET 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

36 Budapesti Műszaki és Gazdaságtudomanyi Egyetem Elektronikus Eszközök Tanszéke IC tervezés 3 © Poppe András – Nagy Gergely, BME-EET 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

37 Budapesti Műszaki és Gazdaságtudomanyi Egyetem Elektronikus Eszközök Tanszéke IC tervezés 3 © Poppe András – Nagy Gergely, BME-EET 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

38 Budapesti Műszaki és Gazdaságtudomanyi Egyetem Elektronikus Eszközök Tanszéke IC tervezés 3 © Poppe András – Nagy Gergely, BME-EET 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.

39 Budapesti Műszaki és Gazdaságtudomanyi Egyetem Elektronikus Eszközök Tanszéke IC tervezés 3 © Poppe András – Nagy Gergely, BME-EET 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))

40 Budapesti Műszaki és Gazdaságtudomanyi Egyetem Elektronikus Eszközök Tanszéke IC tervezés 3 © Poppe András – Nagy Gergely, BME-EET Verilog Irodalom ► Tanszéki jegyzetek:   ► Jegyzetek:    

41 Budapesti Műszaki és Gazdaságtudomanyi Egyetem Elektronikus Eszközök Tanszéke IC tervezés 3 © Poppe András – Nagy Gergely, BME-EET Egyéb irányzatok ► SOC ► SystemC

42 Budapesti Műszaki és Gazdaságtudomanyi Egyetem Elektronikus Eszközök Tanszéke IC tervezés 3 © Poppe András – Nagy Gergely, BME-EET 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

43 Budapesti Műszaki és Gazdaságtudomanyi Egyetem Elektronikus Eszközök Tanszéke IC tervezés 3 © Poppe András – Nagy Gergely, BME-EET “Intellectual Property” A Protocol Processor for Wireless

44 Budapesti Műszaki és Gazdaságtudomanyi Egyetem Elektronikus Eszközök Tanszéke IC tervezés 3 © Poppe András – Nagy Gergely, BME-EET Hardver-szoftver együttes tervezés ► SystemC – a HSCD (hardware-software co-design) jellegzetes eszköze ► 2005-től IEEE szabvány: IEEE std ► 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

45 Budapesti Műszaki és Gazdaságtudomanyi Egyetem Elektronikus Eszközök Tanszéke IC tervezés 3 © Poppe András – Nagy Gergely, BME-EET 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

46 Budapesti Műszaki és Gazdaságtudomanyi Egyetem Elektronikus Eszközök Tanszéke IC tervezés 3 © Poppe András – Nagy Gergely, BME-EET 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

47 Budapesti Műszaki és Gazdaságtudomanyi Egyetem Elektronikus Eszközök Tanszéke IC tervezés 3 © Poppe András – Nagy Gergely, BME-EET 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

48 Budapesti Műszaki és Gazdaságtudomanyi Egyetem Elektronikus Eszközök Tanszéke IC tervezés 3 © Poppe András – Nagy Gergely, BME-EET 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

49 Budapesti Műszaki és Gazdaságtudomanyi Egyetem Elektronikus Eszközök Tanszéke IC tervezés 3 © Poppe András – Nagy Gergely, BME-EET Közlekedési lámpa-vezérlő Balotai Péter: Diploma dolgozat, 2007

50 Budapesti Műszaki és Gazdaságtudomanyi Egyetem Elektronikus Eszközök Tanszéke IC tervezés 3 © Poppe András – Nagy Gergely, BME-EET Közlekedési lámpa-vezérlő // count.h #include "systemc.h" SC_MODULE(count) { //input ports sc_in clk; sc_in en; //output ports sc_out > 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; }


Letölteni ppt "Budapesti Műszaki és Gazdaságtudományi Egyetem Elektronikus Eszközök Tanszéke MIKROELEKTRONIKA, VIEEA306 Tervezés FPGA-ra, Verilog,"

Hasonló előadás


Google Hirdetések