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

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

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

3.6. HAGYOMÁNYOS SZEKVENCIÁLIS FUNKCIONÁLIS EGYSÉGEK

Hardver leíró nyelvek (HDL)

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

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

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

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

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

Újrakonfigurálható eszközök

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

Összetett feladatok megoldása

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

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)

Bevezetés az informatikába

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

4. hét: Ideális és valódi építőelemek. Steiner Henriette Egészségügyi mérnök

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

Verilog HDL ismertető

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

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

Dr. Oniga István DIGITÁLIS TECHNIKA 8

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

Digitális technika II. (vimia111) 5. gyakorlat: Mikroprocesszoros tervezés, egyszerű feladatok HW és SW megvalósítása gépi szintű programozással

Digitális technika VIMIAA hét

Digitális technika VIMIAA hét

Készítette: Nagy Tibor István

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

A gyakorlatokhoz kidolgozott DW példák a gyakorlathoz tartozó Segédlet könyvtárban találhatók.

Digitális technika házi feladat III. Megoldások

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

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

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

A feladatokat önállóan, meg nem engedett segédeszközök használata nélkül oldottam meg: Olvasható aláírás:...

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

Raszteres elemzés végrehajtása QGIS GRASS moduljával 1.7 dr. Siki Zoltán

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)

Logikai áramkörök. Informatika alapjai-5 Logikai áramkörök 1/6

I. A DIGITÁLIS ÁRAMKÖRÖK ELMÉLETI ALAPJAI

A Verilog HDL áttekintése

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

Informatika érettségi vizsga

Digitális technika (VIMIAA02) Laboratórium 3

Máté: Számítógép architektúrák

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

Digitális technika (VIMIAA02) Laboratórium 3

Hobbi Elektronika. A digitális elektronika alapjai: Kombinációs logikai hálózatok 1. rész

A MiniRISC processzor

Véges állapotú gépek (FSM) tervezése

Digitális technika (VIMIAA02) Laboratórium 5

Digitális technika (VIMIAA02) Laboratórium 5

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

Digitális technika (VIMIAA02) Laboratórium 4

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

Digitális technika (VIMIAA02) Laboratórium 1

Verilog HDL ismertető

Digitális jelfeldolgozás

Digitális technika (VIMIAA02) Laboratórium 1

Digitális technika VIMIAA01

A mikroprocesszor felépítése és működése

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

Digitális technika VIMIAA02 6. EA

Digitális technika VIMIAA02 6. EA Fehér Béla BME MIT

Dr. Oniga István DIGITÁLIS TECHNIKA 4

Digitális technika (VIMIAA01) Laboratórium 4

Egyszerű RISC CPU tervezése

Karakterkészlet. A kis- és nagybetűk nem különböznek, a sztringliterálok belsejét leszámítva!

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

A TMS320C50 és TMS320C24x assembly programozására példák

2. Fejezet : Számrendszerek

Szoftvertervezés és -fejlesztés I.

10-es számrendszer, 2-es számrendszer, 8-as számrendszer, 16-os számr. Számjegyek, alapműveletek.

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

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

Digitális technika (VIMIAA02) Laboratórium 4

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

DIGITÁLIS TECHNIKA (VIMIAA02)

DIGITÁLIS TECHNIKA I

1. Alapok. #!/bin/bash

A VERILOG HARDVER LEÍRÓ NYELV ALKALMAZÁSA A LOGIKAI SZINTÉZISBEN

DIGITÁLIS TECHNIKA feladatgyűjtemény

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.

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

KOVÁCS BÉLA, MATEMATIKA I.

funkcionális elemek regiszter latch számláló shiftregiszter multiplexer dekóder komparátor összeadó ALU BCD/7szegmenses dekóder stb...

A mikroprocesszor egy RISC felépítésű (LOAD/STORE), Neumann architektúrájú 32 bites soft processzor, amelyet FPGA val valósítunk meg.

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

Áramkörök elmélete és számítása Elektromos és biológiai áramkörök. 3. heti gyakorlat anyaga. Összeállította:

egy szisztolikus példa

következő: 2.)N=18 bites 2-es komplemens fixpontos rendszer p=3 Vmin+ =delta r=2^(-p)=2^(-3)=

Programozás BMEKOKAA146. Dr. Bécsi Tamás 2. előadás

Járműfedélzeti rendszerek II. 1. előadás Dr. Bécsi Tamás

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

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

A számítógép alapfelépítése

The Architecture of Computer Hardware and Systems Software: An InformationTechnology Approach 3. kiadás, Irv Englander John Wiley and Sons 2003

2005_01/1 Leírtunk egymás mellé hét racionális számot úgy, hogy a két szélső kivételével mindegyik eggyel nagyobb a két szomszédja szorzatánál.

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

Átírás:

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

Kombinációs hálózatok leírását végezhetjük mind adatfolyam-, mind viselkedési szinten. Az adatfolyam szintű leírásokhoz az assign kulcsszót használjuk, a viselkedési szintű leírásokhoz viszont az always kulcsszót. Az assign szerkezet általában szemléletesebb és tömörebb, ezért használata javasolt. Másrészt, mivel egyes nyelvi elemek (pl. if else, case) csak always blokkon belül használhatók, gyakran a viselkedési szintű leírás mellett döntünk. 2

5.1. KOMBINÁCIÓS HÁLÓZATOK ADATFOLYAM SZINTŰ LEÍRÁSA A Verilog nyelv húsznál is több aritmetikai/logikai műveletet ismer (lásd az alábbi táblázatban). Ezek alkalmazásával az MSI eszközök szintjének megfelelő funkcionális egységeket lehet definiálni, majd szintetizálni. Ilyen egységek az összeadók, szorzók, aritmetikai komparátorok 3

A Verilog aritmetikai logikai műveletei 4

Az assign-nal történő leírása alapján a logikai kapcsolás szintézisét végző szoftver (szintézer) rendszerint kombinációs hálózatot alakít. Kivételnek számítanak bizonyos latch leírások (7.1). Egy nyolcbites összeadót leírhatunk a következőképp (az összeadó két bemeneti adat hordozóját már deklaráltnak tekintjük): wire [7:0] sum; assign sum = op_0 + op_1; 5

ARITMETIKAI MŰVELETEK A Verilog hat aritmetikai műveletet ismer: összeadás (+), kivonás (-), szorzás (*), osztás (/), modulo osztás (%) és hatványozás (**). Az összeadáshoz és a kivonáshoz a szintézer az FPGA logikai blokkjaiban kialakítja az összeadó vagy a kivonó áramkört. A szorzás bonyolult hardvert kíván, erre célszerű az FPGA-ban kialakított hardveres szorzókat alkalmazni. A szintézer automatikusan alkalmazza a meglevő szorzókat. 6

Az osztást és a hatványozást általában nem ismerik a szintézerek, így szintézisre szánt nyelvi konstrukciókban nem használhatók (szimulációkban igen). Ha ténylegesen ezekre a műveletekre van szükségünk, azokat le kell bontanunk egyszerűbb műveletekre. Az osztás többszöri kivonás és eltolás segítségével végezhető el, míg a hatványozás ismételt szorzásokkal helyettesíthető. 7

ELTOLÁSI MŰVELETEK Négy eltolási műveletet ismer a Verilog: logikai jobbra és balra tolás (>>, <<), valamint az aritmetikai jobbra és balra tolás (>>>, <<<). A logikai eltolásnál a kiüresedő helyekre nullák töltődnek be. Az aritmetikai balra tolásnál a legnagyobb helyi értékű bit (MSB) kerül a megüresedő helyekre, jobbra tolásnál pedig nullák íródnak a megüresedő nagyobb helyi értékű bitekre, ezzel támogatva a kettes komplemens formában tárolt számokkal végzett műveleteket. 8

VISZONYÍTÓ MŰVELETEK Négy viszonyító műveletet ismer a Verilog: kisebb (<), nagyobb (>), kisebb vagy egyenlő (<=), nagyobb vagy egyenlő (>=). Ezek a műveletek két számértéket hasonlítanak össze és létrehozzák az egybites eredményt. Az egyenlőségi műveletek a következők: egyenlő (==), nem egyenlő (!=), case egyenlő (===), case nem egyenlő (!==). A case típusú műveletek nem szintetizálhatók. A többi művelet szintetizálható megfelelő digitális komparátorokkal. 9

BITENKÉNTI MŰVELETEK Négy bitenkénti alapműveletet ismer a Verilog: ÉS (&), VAGY ( ), KIZÁRÓ VAGY (^), NEM (~). A ~^ vagy a ^~ jelkombinációval írható le az ötödik, a KIZÁRÓ NEM VAGY művelet. A NEM művelet egy vektorra vonatkozik, a többinek két vektor jellegű operandusa van és azonos hosszúságú vektor az eredmény. 10

A művelet a bemeneti adathordozók megfelelő bitjei között (ill. megfelelő bitjein) végződnek el, az eredmény a kimeneti adathordozó megfelelő bitjébe kerül. Például, ha a, b és c négybites adathordozók, az assign c = a b leírás egyenértékű a következő leírással: 11

assign c[3] = a[3] b[3]; assign c[2] = a[2] b[2]; assign c[1] = a[1] b[1]; assign c[0] = a[0] b[0]; A szintézer az operandusok hosszával megegyező számú logikai kapu alkalmazásával oldja meg a bitenkénti műveletek implementációját. 12

REDUKÁLÓ MŰVELETEK A &, és ^ műveleti jelek vonatkozhatnak egy adathordozóra is. A kijelölt műveletet itt az adathordozó egyes bitjeire kell alkalmazni. Például, az alábbi leírás: assign y = a; egyenértékű a következő leírással: assign y = a[3] a[2] a[1] a[0]. A redukáló művelet több bemenetű logikai kapuval oldható meg. 13

LOGIKAI MŰVELETEK A logikai műveleteknél az egyes bemeneti adathordozókat logikai értékeknek tekintjük, függetlenül attól, hogy egy bitről vagy több bitről van-e szó. A logikai érték nulla, ha minden bit nulla vagy egyes, ha legalább egy bit nullától különböző. Három logikai művelet van definiálva a Verilogban: logikai ÉS (&&), logikai VAGY ( ) és logikai NEM (!). A szintézerek támogatják ezeket a műveleteket. 14

ÖSSZEKAPCSOLÁSI ÉS A TÖBBSZÖRÖZÉSI MŰVELETEK Az összekapcsolási művelettel vektor típusú adathordozók részeiből vagy rövid vektorokból állítunk össze egy hosszabb vektort. Ez a művelet nem kíván semmilyen logikai hálózatot, csak megfelelő vezetékezésre van szükség a bemeneti és a kimeneti adathordozók egyes bitjei között. A szintézerek támogatják ezeket a műveleteket. 15

Néhány alap-alkalmazást látunk a következő modul részletben: 16

FELTÉTELES MŰVELET Az adatfolyam szintű leírásokban csak ez a művelet kínál választási lehetőséget: az előírt jelfeldolgozást feltételhez tudjuk kötni. A szintézerek az ilyen leírásokból multiplexereket vagy háromállapotú illesztőket szintetizálnak. A szintaxis a következő: [adathordozó neve] = [logikai kifejezés]? [igaz értékre végzett művelet] : [hamis értékre végzett művelet] 17

Az alábbi kifejezést szintetizálva olyan kapcsolást kapunk, amely két bemeneti számérték közül a nagyobbikat továbbítja a kimenetre: assign max =(a>b)? a : b; 18

PÉLDA AZ ADATFOLYAM SZINTŰ LEÍRÁSRA A berendezések FPGA alapú tervezésénél is gyakran hagyományos kombinációs funkcionális blokkokban gondolkodunk. A funkcionális egységek különböző műveletek alkalmazásával írhatók le. A továbbiakban erre látható egy példa. A 8/3-as kódoló adatfolyam szintű leírása lehet a következő: 19

Természetesen ez a leírás téves kódot ad, ha egyszerre egynél több bemenet aktív, ahogyan a közönséges kódolónál jellemző. 20

5.2. KOMBINÁCIÓS HÁLÓZATOK VISELKEDÉSI SZINTŰ LEÍRÁSA Az always eljárás akkor vezet kombinációs hálózat szintéziséhez, ha az érzékenységi listában szerepel az eljárás minden bemeneti adathordozója. Ez azt jelenti, hogy bármilyen bemeneti változás történik, mindig újra ki kell értékelni a kimeneteket, ami tulajdonképpen kombinációs logikának felel meg. Ezzel ellentétben, a szinkron sorrendi hálózatok csak az órajel változásakor reagálnak. 21

Az érzékenységi listában tételesen felsorolhatjuk az egyes bemeneti adathordozókat, mint például az alábbi esetben: reg [7:0] sum; always @ (op_0, op_1) sum <= op_0 + op_1; Fontos megjegyezni, hogy, tekintettel az always eljárásra, a hozzárendelés bal oldalán szereplő adathordozót regiszter típusúra kell deklarálni, de a szintézer belátja, hogy nincs szükség regiszterre. 22