DIGITÁLIS TECHNIKA 13. Dr. Oniga István



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

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

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

1 Laboratóriumi gyakorlat

Bevezető az ISE rendszer használatához

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

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

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

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

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

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

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

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

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

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

FPGA & Verilog ismertetı. BME Méréstechnika és Információs Rendszerek Tanszék

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

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

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

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

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

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

Hardver leíró nyelvek (HDL)

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

Kombinációs áramkörök modelezése Laborgyakorlat. Dr. Oniga István

Digitális technika (VIMIAA02) Laboratórium 4

Fehér Béla Szántó Péter, Lazányi János, Raikovich Tamás BME MIT FPGA laboratórium

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

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Ó

LOGSYS EGYSZERŰ ALKALMAZÁS KÉSZÍTÉSE A LOGSYS KINTEX-7 FPGA KÁRTYÁRA A XILINX VIVADO FEJLESZTŐI KÖRNYEZET HASZNÁLATÁVAL június 16. Verzió 1.

A Picoblaze Core implementálása FPGA-ba

2008. október 9. Verzió

Mikrorendszerek tervezése

Bevezető az ISE 11.2 rendszer használatához

Digitális technika Xilinx ISE GUI használata

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

Digitális technika (VIMIAA02) Laboratórium 4

Digitális technika (VIMIAA01) Laboratórium 4

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

Tervezési módszerek programozható logikai eszközökkel

Dr. Oniga István DIGITÁLIS TECHNIKA 8

Digitális eszközök típusai

Digitális technika (VIMIAA02) Laboratórium 3

Digitális technika (VIMIAA02) Laboratórium 3

11. KÓDÁTALAKÍTÓ TERVEZÉSE HÉTSZEGMENSES KIJELZŐHÖZ A FEJLESZTŐLAPON

LOGSYS LOGSYS ECP2 FPGA KÁRTYA FELHASZNÁLÓI ÚTMUTATÓ szeptember 18. Verzió

Digitális technika (VIMIAA02) Laboratórium 5

Digitális technika (VIMIAA02) Laboratórium 5

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

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

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

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

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

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

A Xilinx FPGA-k. A programozható logikákr. Az FPGA fejlesztés s menete. BMF KVK MAI, Molnár Zsolt, 2008.

LOGSYS LOGSYS SPARTAN-3E FPGA KÁRTYA FELHASZNÁLÓI ÚTMUTATÓ szeptember 19. Verzió

Digitális elektronika gyakorlat. A VHDL leírástípusok

Bevezető az ISE 13.2 rendszer használatához

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

Újrakonfigurálható eszközök

Verilog ismertető (Szántó Péter, BME MIT, )

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

Mikroelektronikai tervezés

Dr. Oniga István DIGITÁLIS TECHNIKA 9

1. Kombinációs hálózatok mérési gyakorlatai

MIKROELEKTRONIKA, VIEEA306

1. Kombinációs hálózatok mérési gyakorlatai

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

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

12. NYOMÓGOMBOK ÉS KAPCSOLÓK PERGÉSMENTESÍTÉSE A FEJLESZTŐLAPON

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

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

HDL tervezés. Gábor Bata FPGA Developer Microwave Networks Ericsson Hungary Ltd.

Joint Test Action Group (JTAG)

Szántó Péter BME Méréstechnika és Információs Rendszerek Tanszék, FPGA Labor

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

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?

8.3. AZ ASIC TESZTELÉSE

Bevezetés a Xilinx PLD-k és az ISE WebPACK alkalmazásába

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

Kiegészítő segédlet szinkron sorrendi hálózatok tervezéséhez

Bevezető az ISE 13.2 rendszer használatához

Digitális technika (VIMIAA02) Laboratórium 1

Attribútumok, constraint-ek

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

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

Digitális technika (VIMIAA02) Laboratórium 1

Digitális elektronika gyakorlat

Digitális technika (VIMIAA02) Laboratórium 2

Újrakonfigurálható eszközök

Kombinációs hálózatok és sorrendi hálózatok realizálása félvezető kapuáramkörökkel

A Verilog HDL áttekintése

Digitális rendszerek. I. rész. Dr. Turóczi Antal

Digitális rendszerek tervezése FPGA áramkörökkel Szimuláció és verifikáció

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

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

Autóipari beágyazott rendszerek. Komponens és rendszer integráció

Hobbi Elektronika. A digitális elektronika alapjai: További logikai műveletek

Átírás:

DIGITÁLIS TECHNIKA 13 Dr. Oniga István

Xilinx FPGA-k Több család Spartan: hatékony, optimalizált struktúra Virtex: speciális funkciók, gyorsabb, komplexebb, gazdagabb g funkcionalitás Felépítés: CLB: logikai blokk IOB: I/O blokk BlokkRAM: belső memória Szorzó Huzalozás

Xilinx FPGA: Alap logikai elem Logikai elem (Slice): 2 LUT + 2 FF + kiegészítő logika Carry OUT Comb. OUT L U T I N 4 LUT Carry + MUX FF FF OUT LUT: Look-Up Table MUX IN 16x1 bites memória (4 bemenet esetén) Cím: a logikai függvény bemeneti változói Tartalom: igazságtábla Carry IN Bármilyen négy bemenetű, egy kimenetű logikai függvény megvalósítható

Xilinx FPGA-k Részlet egy kész tervből: logikai blokkok + huzalozás

Xilinx FPGA-k: a logikai elem részletei A CLB belső felépítése az FPGA Editor-ban nézve

Xilinx FPGA: konfiguráció A konfigurációt iót (LUT tartalom, t huzalozás, csatlakozások, k egyéb paraméterek) SRAM tárolja Tápfeszültség kikapcsolásakor elveszíti a konfigurációt Bekapcsolás után konfiguráció szükséges EEPROM-ból, automatikusan Fejlesztői kábel segítségével ún. JTAG porton keresztül

Fejlesztő rendszerek Terv leírás: (Design Entry) Xilinx Foundation ISE Külső eszköz Mentor Graphics: FPGA Advantage Celoxica: DK Design Suite Szintézis terv: (Design Synthesis) XST: Xilinx Synthesis Technology Mentor: Leonardo Spectrum Synplicity: Synplify Pro Celoxica: DK Design Suite Szimuláció: Mentor: Modelsim Aldec: Active-HDL Celoxica: DK Design Suite In Circuit verifikáció: In Circuit verifikáció: Xilinx: ChipScope

Az ISE rendszer részei Xilinx ISE - Integrated Software Environment integrált szoftverkörnyezet a Xilinx cég FPGA-ihoz és CPLD-ihez kifejlesztett szoftver. ISE WebPack - ISE rendszer egyszerűbb, de funkcionálisan komplett változata csak a Xilinx cég IC-ivel való implementálást támogatja, nem támogatja tj az összes család összes IC-jét, hanem tipikusan ik csak a kisebb komplexitásúakat, ingyenes szoftver, szabadon letölthető.

Fejlesztés folyamata Project Navigator szoftver, az ISE keretprogram Rendszertervezés (Terv leírás + tervezési megkötések constraints) RTL szimuláció - Tesztkörnyezet ( Testbench ) Szintézis Implementáció: TRANSLATE MAP PAR (place & route) Statikus időzítési analizis: timing parameters meghatározása (max clock frequency, propagation delays etc.) Bitstream generálása és letöltése (konfigurációs file -.bit)

Terv leírás A tervező az elképzeléseit, terveit háromféle formában viheti be a rendszerbe. Kapcsolási rajz (Schematic) formájában, a Xilinx ECS (Engineering Capture System), a kapcsolási rajz készítő és beviteli program segítségével. Hardver leíró nyelven. Ezt a bevitelt a HDL editor rész támogatja. A támogatott nyelvek: ABELHDL, Verilog és VHDL. A rendszer sok mintaleírást is tartalmaz, úgynevezett sablonok (template) formájában. Állapotgép. Lehetőség van arra is, hogy a tervező az elképzelt sorrendi hálózat működését állapotgráf formájában adja meg. Ezt a StateCAD alrendszer segíti, mellyel megrajzolható az állapotgráf, majd ezután a StateCAD az állapotgráfból HDL leírást is tud készíteni.

Terv verifikálása Azt ellenőrizzük, hogy a terv szerinti áramkör működése megfelel-e a feladat specifikációjának. A verifikálás szimulációval ió l történik. té A WebPACK rendszer szimulátora a Xilinx ISE Simulator. A modellt működtetni, "gerjeszteni" kell, - a modell bemeneteire megfelelően változó jeleket kell adni. Ez az tesztvektorok sorozatának ráadásával történik. A tesztvektorokat a tervező beleírhatja a HDL leírásba, mint A tesztvektorokat a tervező beleírhatja a HDL leírásba, mint tesztelési környezet (testbench).

Szintézis Xilinx Synthesis Technology (XST) alrendszer végez, amely ugyancsak az ISE része (szintézisre léteznek más programok is). A szintézer a HDL leírásból előállít egy minimalizált és optimalizált huzalozási listát, amely az adott FPGA primitíveket (LUT, FF), és a köztük levő kapcsolatokat tartalmazza.

Implementáció TRANSLATE MAP PAR (place & route) TRANSLATE: több, esetleg eltérő nyelven megírt tervezői file (HDL) összerendelése (merge) egyetlen netlist- t fájlba (EDIF) MAP = technology mapping: leképzés az adott FPGA primitív-készletére (a kapukat CLB-é, ill. IOB-á képezi le ) PAR: a végleges fizikai áramkört hozza létre amelyben a primitíveket fizikai helyekre rak és kialakítja a fizikai huzalozást (routing).

Konfiguráció Bitstream - konfigurációs file (.bit) generálása letöltése soros interfészen keresztül (JTAG) IMPACT (ADEPT) program végzi

Xilinx ISE bemutatása Sources window (források) Munka ablak (editor) Process window (feldolgozások ) Console (üzenet ablak)

Kapcsolási rajz alapú projekt

Constraints file A láb hozzárendelések elvégzéséhez egy constraint fájlt adunk a projecthez. Válasszuk ki a Project / New Source menüpontot, a felbukkanó ablakban pedig álljunk az Implementation Constraint File ra, névnek pedig válasszuk a elso t. Next/Finish gomb megnyomása után a Sources ablakban meg is jelenik a elso.ucf fájl. Ha sikeresen lelestük a panelről a használt lábak nevét, az alábbihoz egészen hasonlatos ucf filet kapunk NET "btn0" LOC = G12" ; NET "btn1" LOC = C11" ; NET "led0" LOC = M5" ; NET "led1" LOC = M11" ; NET "led2" LOC = P7" ; NET "led3" LOC = P6" ; NET "led4" LOC = N5" ; NET "led5" LOC = N4" ; NET "led6" LOC = P4" ;

A terv implementációja A terv leképzése az FPGA struktúrára (Implement Design), View implementationp Hierarchy ablak a top level fájl Processes ablak Implement Design Konfigurációs bitminta létrehozása

Az FPGA konfigurálása Tényleges realizálás az FPGA konfigurálásával (beprogramozásával), az előző műveletben létrehozott.bit konfigurációs fájlnak az FPGA-ba való letöltésével történik. Digilent Nexys 2 kártya: http://www.digilentinc.com/products/detail.cfm?navpath=2,400,789&prod=nexys2 Digilent Adept Suite https://www.digilentinc.com/products/detail.cfm?navpath=2,66,828&prod=adept2 il ti /P d t /D t il P th d Nexys 2 reference manual http://www.digilentinc.com/data/products/nexys2/nexys2_rm.pdfrm.pdf

Digilent Nexys 2 Xilinx Spartan-3E FPGA, 500K or 1200K gate USB2 port providing board power, device configuration, and high-speed data transfers Works with ISE/Webpack and EDK 16MB fast Micron PSDRAM 16MB Intel StrataFlash Flash R Xilinx Platform Flash ROM High-efficiency switching power supplies (good for battery-powered applications 50MHz oscillator, plus a socket for a second oscillator 75 FPGA I/O s routed to expansion connectors (one high-speed Hirose FX2 connector with 43 signals and four 2x6 Pmod connectors) All I/O signals are ESD and short-circuit protected, ensuring a long operating life in any environment. On-board I/O includes eight LEDs, four-digit sevensegment display, four pushbuttons, eight slide switches Ships in a DVD case with a high-speed USB2 cable Requires Adept 2.0 or later for operation

Digilent Adept szoftver 1 2 FPGA konfigurálás: FPGA konfigurálás:.bit (generált konfigurációs fájl)

Logikai kapuk implementációja HDL nyelven

Szabvány HDL nyelvek Szabványos HDL (hardware description language) nyelvek Verilog 1984: Gateway Design Automation Inc. 1990: Cadence -> Open Verilog International 1995: IEEE szabványosítás 2001: Verilog 2001 Verilog-2005 (IEEE Standard 1364-2005) SystemVerilog (IEEE standard P1800-2005). VHDL 1983-85: IBM, Texas Instruments 1987: IEEE szabvány 1994: VHDL-1993

Egyéb HDL HDL fejlesztés a szoftver fejlesztéshez viszonyítva továbbra is időigényes Sok fejlesztő rendelkezik C/C++ ismerettel, viszonylag kevés HDL ismerettel Magasszintű hardver leíró nyelvek Celoxica Handel-C: C alapú, spec. kiegészítések SystemC: szabványos, ma már (részben) szintetizálható, C++ alapú Mentor Catapult-C: C++ kiegészítések nélkül Impulse-C, Mitrion-C Gyorsabb szimuláció/verifikáció HW/SW együttes tervezés

HDL nyelvek Alapvetően moduláris felépítésű tervezést tesz lehetővé HDL modul Be-, kimenetek definiálása Be-, kimenetek k közötti ötti logikai i kapcsolatok k és időzítések definiálása iálá NEM szekvenciálisan végrehajtódó szoftver Alapvetően időben párhuzamos, konkurens működést ír le

Modulok Építőelem komplex rendszerek létrehozására Hierarchikus leírás, feladat partícionálás Top-down tervezés Down-top tervezés

Verilog: module (2001)

Modul működés leírása Három alapvető modell típus Strukturális modell Explicit strukturális modell Implicit strukturális modell Procedurális modell a fentiek keveréke is lehet

Strukturális leírás Hierarchia felépítése: modulok összekapcsolása module top_ level (input in0, in1, in2, output r); wire xor0; xor_m xor_inst0(.i0(in0),.i1(in1),.o(xor0)); xor_m xor_inst1(.i0(xor0), i0( 0).i1(in2),.o(r)); endmodule

Adattípusok wire assign Nevének megfelelően viselkedik (vezeték) Folyamatos értékadás; reg always Szintézis utáni eredmény nem mindig regiszter Vezeték Latch Flip-flop

Assign assign -val csak wire típusú változónak lehet értéket adni Folyamatos értékadás Pl. A bal oldali változó folyamatosan kiértékelődik assign c = a & b; a b Egy változó csak egy assign által kaphat értéket assign értékadások egymással párhuzamosan műkődnek (hardver) Kombinációs logika leírására alkalmas c

Always Kombinációs logika always @ (a, b) c <= a & b; always @ (*) c <= a & b; a b c Flip-Flop always @ (posedge clk) c <= a & b; clk a b D[0] Q[0] c

Always Flip Flop Flip Flop: élérzékeny tároló always @ (posedge clk) c <= a & b; Szinkron reset clk a b D[0] Q[0] c always @ (posedge clk) if (rst) c <= 1'b0; else c <= a & b; Aszinkron reset clk a b D[0] R Q[0] c always @ (posedge clk, posedge rst) if (rst) c<= 1'b0; else c <= a & b; rst

Példa MUX 2:1 multiplexer module mux_21 (input A, B, S, output reg Y); always @ (*) if (S==1 b1) Y <= B; else Y<= A; endmodule If module mux_21 (input A, B, S, output reg Y); always @ (*) case(s) 1 b0: Y <= A; 1 b1: Y<= B; endmodule Case

1-bites fél összeadó Verilog strukturális modellje a b sum carry

1-bites teljes összeadó Verilog strukturális modellje

Példa 1 bites összeadó module add1_full (input a, b, cin, output cout, s); xor3_m xor(.i0(a),.i1(b),.i2(cin),.o(s)); wire a0, a1, a2; and2_m and0(.i0(a),.i1(b),.o(a0)); and2_m and1(.i0(a),.i1(cin),.o(a1)); and2_m and2(.i0(b), (b).i1(cin), i.o(a2)); or3_m or(.i0(a0),.i1(a1),.i2(a2),.o(cout)) endmodule module add1_full (input a, b, cin, output cout, s); endmodule assign s = a ^ b ^ cin; assign cout = (a & b) (a & cin) (b & cin); module add1_full (input a, b, cin, output cout, s); endmodule assign {cout, s} = a + b + cin;

Példa 4 bites összeadó module add4 (input [3:0] a, b, output [4:0] s); wire [3:0] cout; add1_full add0(.a(a[0]),.b(b[0]),.cin(1'b0),.cout(cout[0]),.s(s[0])); add1_full add1(.a(a[1]),.b(b[1]),.cin(cout[0]),.cout(cout[1]),.s(s[1])); add1_full add2(.a(a[2]),.b(b[2]),.cin(cout[1]),.cout(cout[2]),.s(s[2])); add1_full add3(.a(a[3]),.b(b[3]),.cin(cout[2]),.cout(s[4]),.s(s[3])); endmodule module add4 (input [3:0] a, b, output [4:0] s); ( p [ ],, p [ ] ); assign s = a + b; endmodule