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

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

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

Digitális technika VIMIAA01 9. hét

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

Digitális technika (VIMIAA02) Laboratórium 4

Hardver leíró nyelvek (HDL)

Digitális technika (VIMIAA02) Laboratórium 1

Digitális technika (VIMIAA02) Laboratórium 1

Digitális technika (VIMIAA02) Laboratórium 4

Dr. Oniga István DIGITÁLIS TECHNIKA 8

2. Elméleti összefoglaló

Újrakonfigurálható eszközök

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

A LOGSYS GUI. Fehér Béla Raikovich Tamás, Laczkó Péter BME MIT FPGA laboratórium

Digitális technika VIMIAA hét

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

A Memory Interface Generator (MIG) beállítása a Logsys Kintex-7 FPGA kártyához

Jelek és rendszerek Gyakorlat_02. A gyakorlat célja megismerkedni a MATLAB Simulink mőködésével, filozófiájával.

Digitális technika VIMIAA hét

Digitális technika (VIMIAA02) Laboratórium 3

Digitális technika (VIMIAA02) Laboratórium 3

A tervfeladat sorszáma: 1 A tervfeladat címe: ALU egység 8 regiszterrel és 8 utasítással

Budapesti Műszaki és Gazdaságtudományi Egyetem Villamosmérnöki és Informatikai Kar Irányítástechnika és Informatika Tanszék DARU IRÁNYÍTÁSA

Mintavételezés tanulmányozása. AD - konverzió. Soros kommunikáció

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

Mechatronika segédlet 10. gyakorlat

Hurokegyenlet alakja, ha az áram irányával megegyező feszültségeséseket tekintjük pozitívnak:

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

Digitális technika (VIMIAA02) Laboratórium 5

Digitális technika (VIMIAA02) Laboratórium 5

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

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

Dr. Oniga István DIGITÁLIS TECHNIKA 9

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

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

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

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

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

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

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

Újrakonfigurálható eszközök

Szűrő architektúrák FPGA realizációjának vizsgálata

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

Digitális technika (VIMIAA02) Laboratórium 2

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

Digitális technika (VIMIAA01) Laboratórium 4

Digitális technika VIMIAA01 5. hét

Labor gyakorlat Mikrovezérlők

Mikrorendszerek tervezése

Labor gyakorlat Mikrovezérlők

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

Számítógépek felépítése

DIGITÁLIS TECHNIKA 8 Dr Oniga. I stván István

Az INTEL D-2920 analóg mikroprocesszor alkalmazása

7.hét: A sorrendi hálózatok elemei II.

Programozott soros szinkron adatátvitel

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

Nagy Gergely április 4.

Mintavételes szabályozás mikrovezérlő segítségével

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

Mikrorendszerek tervezése

Mit tudunk már? Programozás alapjai C nyelv 4. gyakorlat. Legnagyobb elem keresése. Feltételes operátor (?:) Legnagyobb elem keresése (3)

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

Mikrorendszerek tervezése

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

Dr. Oniga István DIGITÁLIS TECHNIKA 9

Xilinx ChipScope ismertető

Verilog HDL ismertető 4. hét : hét dia

Programozás alapjai C nyelv 4. gyakorlat. Mit tudunk már? Feltételes operátor (?:) Típus fogalma char, int, float, double

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

PWM elve, mikroszervó motor vezérlése MiniRISC processzoron

Digitális technika (VIMIAA02) Laboratórium 5.5

Digitális eszközök típusai

Fehérzajhoz a konstans érték kell - megoldás a digitális szűrő Összegezési súlyok sin x/x szerint (ez akár analóg is lehet!!!)

Bevezetés az informatikába

egy szisztolikus példa

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

5-6. ea Created by mrjrm & Pogácsa, frissítette: Félix

Digitális jelfeldolgozás

Attribútumok, constraint-ek

Szinkronizmusból való kiesés elleni védelmi funkció

Digitális technika (VIMIAA01) Laboratórium 9

Shift regiszter + XOR kapu: 2 n állapot

Matlab Fuzzy Logic Toolbox

Digitális technika (VIMIAA01) Laboratórium 9

Dinamikus modellek szerkezete, SDG modellek

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

LabVIEW példák és bemutatók KÉSZÍTETTE: DR. FÜVESI VIKTOR

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Ó

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

MPLAB IDE - SIM - - Rövid ismertető a használathoz - Kincses Levente 3E22 89/ November 14. Szabadka

Aritmetikai utasítások I.

Xilinx Vivado HLS gyakorlat (2018.) C implementáció és testbench

Összetett feladatok megoldása

FIR és IIR szűrők tervezése digitális jelfeldolgozás területén

Programozás I. 3. gyakorlat. Szegedi Tudományegyetem Természettudományi és Informatikai Kar

4. Fejezet : Az egész számok (integer) ábrázolása

2) Tervezzen Stibitz kód szerint működő, aszinkron decimális előre számlálót! A megvalósításához

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

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

Átírás:

Újrakonfigurálható technológiák nagy teljesítményű alkalmazásai Xilinx System Generator Szántó Péter BME MIT, FPGA Laboratórium

Xilinx System Generator MATLAB Simulink Toolbox Simulink Modell alapú grafikus fejlesztői környezet Esemény-vezérelt szimulátor Párhuzamos végrehajtás modellezése Nagy számú, paraméterezhető blokk Források, nyelők, matematikai függvények DSP blockset, Communication blockset,. System Generator Alap FPGA építőelemek (logikai, memória, aritmetika) Komplex építőelemek (CoreGenerator alapokon)

Simulink források Double adattípust szolgáltatnak Szinusz Ugrásjel, impulzus generátor Háromszög jel Sávkorlátozott fehérzaj Chirp (lineárisan változó frekvenciájú szinusz) Konstans From file From workspace

Simulink nyelők Display: az aktuális értéket mutatja Scope: időbeli hullámforma megjelenítés X-Y Graph To file To workspace

Mintavételezési periódus Minden Simulink blokk rendelkezik sample period paraméterrel A blokk kimenetének számítási gyakorisága Minden változás a mintavételi pontokban történik System Generator esetén beállítandó System Generator konfigurációs blokk Bemenetek (Gateway In) Bemenet nélküli blokkok SysGen blokkok esetén a mintavételi periódus meghatározza a létrejövő HW órajelezését

System Generator blokk Kimenet HDL, huzalozási lista, bit file HW ko-szimuláció Órajel periódus Constraint Multi-rate terv Órajel engedélyezés DCM (nem minden blokkal) Szinkron! Simulink mintavételi periódus

Gateway In/Out Az általános Simulink blokkokat a SysGen blokkoktól elválasztó interfész Boolean/előjeles/ előjel nélküli Matlab double típusainak konverziója Kvantálás Túlcsordulás A keletkező HW portjai a Gateway típusának megfelelőek

Gateway In/Out

Hierarchia Hierarchia elemeinek kijelölése Edit/Create Subsystem (Ctrl-G)

Maszkolás Subsystem-ből saját blokkok létrehozása Paraméterezhető (dialógus ablakkal) Egyedi Help Egyedi ikon Védelem Inicializálás Gyakorlatilag Matlab kóddal a szükséges modell változók beállítása Az inicializálás után az itt használt változók megszűnnek

Számábrázolás Boolean Tipikusan vezérlő bemenetekhez (pl. CE, RST) 0 vagy 1 (nincs undefined állapota) FIX & UFIX: tetszőleges szélességű fix pontos Blokk kimenete FULL a bemeneti operandusok alapján User defined tetszőlegesen állítható Kvantálás: csonkolás vagy kerekítés Túlcsordulás: átfordulás vagy szaturáció VAN hardver vonzata!!

Konvertáló blokkok Reinterpret Az aktuális bitminta megváltoztatása nélkül típust vált (a bitszélesség NEM változik) Logikai konverzió nincs hardver vonzata Convert Típuskonverzió (kvantálás + túlcsordulás kezelés) Concat Slice BitBasher Konkatenálás, bit kiválasztás ~Verilog szintaxissal Javasolt az előbbi kettő helyett

BitBasher blokk Tetszőleges számú be- és kimenet Új kimenet új sorban q0 = {i2, i1, i0} q1 = {i0[7:3]} q3 = {i0[0:7]} q4 = {4{i1, i0}}

Expression blokk Bitműveletek elvégzése Verilog operátorok: &,, ~, ^ Max. 16 bemenet Bemenetek száma a beírt kifejezés alapján automatikus Align binary point : bemenetek bináris pontjainak automatikus illesztése Ha ki van kapcsolva, minden bemeneti változóban azonos helyen kell legyen

Mcode blokk Matlab kód részleges támogatása HW szintézishez NEM algoritmikus leírásra való A blokk ki és bemenetei Xilinx fix pontos típusúak Legalább egy be-, és egy kimenet kell Támogatott operátorok Egyszerű if-else szerkezetek Összeadás, kivonás, szorzás Shiftelés (xl_lsh(), xl_rsh()), komparálás Logikai operátorok (&,, ~), Bitműveletek (xl_and(), xl_or(), ) xl_concat(), xl_slice() Állapotváltozó: xl_state()

Mcode xl_state persistent változó: megtartja az értékét a szimulációs lépésközök között Kezdőértékét az xl_state() függvénnyel kapja persistent s, s = xl_state(0, {xlunsigned,2,0}); Vektor változó deklaráció (max méret: 4) persistent s, s = xl_state(zeros(1,4), Vektor metódusok Címzés: var(addr) var.push_front(in): in betöltése, vektor hosszának növelése var.push_front_pop_back(in) {xlunsigned,2,0}, 4);

Mcode - állapotgép Állapotváltozó: persistent; kezdeti állapot: xl_state() Pl. 101 bitminta detektálás function match = detect101(din) persistent s, s=xl_state(0, xlunsigned,2,0)); match = 0; Állapotváltozó switch s case 0 if din==1 s = 1; else s = 0; end case 1 if din==0 s = 2; else s = 1; end case 2 if din==1 s = 1; match = 1; else s = 0; match = 0; end end Állapot átmenet

Mcode beállítások

Mcode példa Az előző állapotgép bemenő jele t = 0:1:5; v = zeros(1,6); v(1)=1; v(3)=1; simin = [t, v ]; Modell Szimuláció

Mcode aritmetika 1 bitek számlálása function q = cnt1(din) q = xl_slice(din, 0, 0); for i=1:15 end q = q + xl_slice(din, i, i);

Mcode példák Shift regiszter function q = delay(d, lat) persistent r, r = xl_state(zeros(1, lat), d, lat); q = r. back; r.push_front_pop_back(d); Címezhető shift regiszter ( SRL) function q = addrsr(d, addr, en, depth) persistent r, r = xl_state(zeros(1, depth), d); q = r(addr); if en r.push_front_pop_back(d); end

Mcode példák ROM function q = addrsr(contents, addr, arith, nbits, binpt) proto = {arith, nbits, binpt}; persistent mem, mem = xl_state(contents, proto); q = mem(addr); RAM function dout = ram(addr, we, din, depth, nbits, binpt) proto = {xlsigned, nbits, binpt}; persistent mem, mem = xl_state(zeros(1, depth), proto); q = r(addr); if we r(addr) = din; end

Multi-rate rendszerek SysGen-ben egyetlen, közös időalap van Sample Rate Mindennek a működése ezen alapul Órajel engedélyezéssel Egymással szinkron órajelekkel Néhány blokk mintavételi frekvencia változást okoz Up Sample, Down Sample Time division multiplexer Serial to Parallel, Parallel to Serial A rendszerben az összes mintavételi periódus egész számú többszöröse a rendszer mintavételnek (SysGen doboz)

Up Sample Up Sample: mintavételi frekvencia növelés Előző minta tartása 0 beillesztése

Down Sample Mintavételi frekvencia csökkentése Első vagy utolsó minta tartásával

Clock enable Down Sample példa WaveScope-ban Ritkább CE-vel engedélyezett FF-ok: multi-cycle path constraint SysGen generál constraint file-t

Black Box (1) Tetszőleges HDL kód beilleszthető Black Box -ként Szimuláció Isim-mel vagy ModelSim-mel Paraméterezhető HDL kódok GUI-ből állíthatók

Black Box (2) Black Box konfigurációja M file-ból Paraméterek ellenőrzése Ki- és bemeneti portok megadása HDL file-ok megadása

Szimuláció Szoftveres Simulink Gyorsabb mint HDL (kivéve: Black Box) Hardware koszimuláció JTAG vagy Ethernet kapcsolat PC FPGA adatmozgatás lassú lehet Gyorsítás Shared Memory: FPGA belső memória Matlab adatterületre leképezve Buffer-elt bemeneti és kimeneti adattömbök mozgatása burst átvitel