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

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

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

Hardver leíró nyelvek (HDL)

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

Dr. Oniga István DIGITÁLIS TECHNIKA 8

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

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

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

Szekvenciális hálózatok és automaták

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

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

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

Irányítástechnika Elıadás. A logikai hálózatok építıelemei

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

Hobbi Elektronika. A digitális elektronika alapjai: Sorrendi logikai áramkörök 1. rész

8.3. AZ ASIC TESZTELÉSE

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

Standard cellás tervezés

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

Szekvenciális hálózatok Állapotdiagram

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

Digitális technika (VIMIAA02) Laboratórium 4

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

Újrakonfigurálható eszközök

Újrakonfigurálható eszközök

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

Hobbi Elektronika. A digitális elektronika alapjai: Sorrendi logikai áramkörök 2. rész

Hobbi Elektronika. A digitális elektronika alapjai: Sorrendi logikai áramkörök 3. rész

DIGITÁLIS TECHNIKA II

Szinkron sorrendi hálózatok tervezése

Digitális technika (VIMIAA02) Laboratórium 4

Dr. Oniga István DIGITÁLIS TECHNIKA 9

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

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

Digitális technika (VIMIAA01) Laboratórium 4

10. Digitális tároló áramkörök

EB134 Komplex digitális áramkörök vizsgálata

Digitális Rendszerek (BSc)

5. Hét Sorrendi hálózatok

Digitális technika VIMIAA02

Digitális technika VIMIAA02

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

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

Irányítástechnika I. Dr. Bede Zsuzsanna. Összeállította: Dr. Sághi Balázs, egy. docens Dr. Tarnai Géza, egy. tanár

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

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

Dr. Oniga István DIGITÁLIS TECHNIKA 4

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

Logikai hálózatok. Dr. Bede Zsuzsanna St. I. em. 104.

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

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

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

A Verilog HDL áttekintése

Újrakonfigurálható eszközök

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

Integrált áramkörök/4 Digitális áramkörök/3 CMOS megvalósítások Rencz Márta

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

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

DIGITÁLIS TECHNIKA II

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

Hobbi Elektronika. A digitális elektronika alapjai: Sorrendi logikai áramkörök 4. rész

DIGITÁLIS TECHNIKA I

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

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

DIGITÁLIS TECHNIKA feladatgyűjtemény

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

SZÁMÍTÓGÉPES ARCHITEKTÚRÁK

SZÁMÍTÓGÉPES ARCHITEKTÚRÁK

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

Gépészmérnöki és Informatikai Kar Automatizálási és Kommunikáció- Technológiai Tanszék

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

Digitális technika (VIMIAA02) Laboratórium 3

Digitális technika (VIMIAA02) Laboratórium 3

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

Kombinációs hálózatok Adatszelektorok, multiplexer

DIGITÁLIS TECHNIKA 7-ik előadás

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

Integrált áramkörök/3 Digitális áramkörök/2 CMOS alapáramkörök Rencz Márta Ress Sándor

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

PAL és GAL áramkörök. Programozható logikai áramkörök. Előadó: Nagy István

Attribútumok, constraint-ek

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

Digitális technika - Ellenőrző feladatok

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

MIKROELEKTRONIKA, VIEEA306

Feszültségszintek. a) Ha egy esemény bekövetkezik akkor az értéke 1 b) Ha nem következik be akkor az értéke 0

Kombinációs hálózat. sorrendi hálózat. 1. ábra

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

Digitális technika (VIMIAA02) Laboratórium 1

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

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

1. Az adott kapcsolást rajzolja le a lehető legkevesebb elemmel, a legegyszerűbben. MEGOLDÁS:

Digitális technika (VIMIAA02) Laboratórium 1

XI. DIGITÁLIS RENDSZEREK FIZIKAI MEGVALÓSÍTÁSÁNAK KÉRDÉSEI Ebben a fejezetben a digitális rendszerek analóg viselkedésével kapcsolatos témákat

Mikrorendszerek tervezése

DIGITÁLIS TECHNIKA II

Verilog HDL ismertető

Dr. Oniga István DIGITÁLIS TECHNIKA 9

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

PAL és s GAL áramkörök

Átírás:

A VERILOG HARDVER LEÍRÓ NYELV ALKALMAZÁSA a LOGIKAI SZINTÉZISBEN M.D. CILETTI Deparmen of Elecrical and Compuer Engineering Universiy of Colorado Colorado Springs, Colorado Copyrigh 1997 No par of hese noes may be copied or reproduced in any form wihou he wrien permission of he auhor. A szerző írásbeli engedélye és jóváhagyása alapján ádolgoza és magyarra fordíoa FEHÉR BÉLA Budapesi Műszaki Egyeem Mérésechnika és Információs Rendszerek Tanszék 1

TARTALOM 1. rész: Bevezeés, modellek, hierarchikus ervezés, szimuláció 2. rész: Modulok felépíése, adaípusok, logikai operáorok 3. rész: Felhasználói primiívek, késleleési modellek 4. rész: Működési leírás modellezése Veriloggal 5. rész: A Verilog szinézis módszereinek ismereése 2

LOGIKAI MODELLEZÉS TÁMOGATÁSA A VERILOG NYELVBEN COMBINATIONAL SEQUENTIAL STRUCTURAL (Explici) PRE-DEFINED PRIMITIVES USER-DEFINED PRIMITIVES INSTANTIATED MODULES STRUCTURAL (Implici, Daa Flow) CONTINUOUS ASSIGNMENT (assign) BEHAVIORAL / ALGORITHMIC PROCEDURAL ASSIGNMENT (=) NON-BLOCKING ASSIGNMENT (<=) PROCEDURAL CONTINUOUS ASSIGNMENT (assign) 3

PÉLDÁK A VERILOG STRUKTURÁLIS LEÍRÁSRA module mux_4_sr(a, b, c, d, selec, y_ou); inpu a, b, c, d; inpu [1:0] selec; oupu y_ou; selec[1:0] nor (y_ou, w1, w2, w3, w4); nand (w1, sel_1_bar, sel_0_bar, a); nand (w2, sel_1_bar, selec[0], b); nand (w3, selec[1], sel_0_bar, c); nand (w4, selec[1], selec[0], d); no (sel_1_bar, selec[1]); no (sel_0_bar, selec0]); a b c d mux_4_sr y_ou endmodule 4

FELHASZNÁLÓ ÁLTAL DEFINIÁLT PRIMITIVEK (UDP) CÉL: TÁMOGATÁS A FELHASZNÁLÓI KOMBINÁCIÓS ÉS SZEKVENCIÁLIS PRIMITÍV FÜGGÉNYEK MEGVALÓSÍTÁSÁRA. FLEXIBILITÁS HATÉKONY SZIMULÁCIÓ HATÉKONY MEMÓRIA KIHASZNÁLÁS PÉLDÁK MUX MEGVALÓSÍTÁSA LATCH (SZINTÉRZÉKENY) FLIP FLOP (ÉLVEZÉRELT) 5

UDP - MULTIPLEXER primiive mux_prim (mux_ou, selec, a, b); oupu mux_ou; inpu selec, a, b; able //selec a b : mux_ou Jellemzők a b selec mux_ou 0 0 0 : 0 ; // Tábláza oszlopai a porok sorrendjében 0 0 1 : 0 ; // Egy kimene, öbb bemene, nincs inou 0 0 x : 0 ; // Csak 0,1,x a be- és kimeneeken 0 1 0 : 1 ; // z nagyimpedanciás érék x-kén kezelve 0 1 1 : 1 ; // Az uolsó oszlop a kimene 0 1 x : 1 ; 6

// Bemeneek Kimeneek // selec a b : mux_ou 1 0 0 : 0 ; 1 1 0 : 0 ; 1 x 0 : 0 ; a b selec mux_ou 1 0 1 : 1 ; 1 1 1 : 1 ; 1 x 1 : 1 ; x 0 0 : 0 ; x 1 1 : 1 ; endable endprimiive 7

// Megjegyzés: A nem egyérelműen specifikál kombinációk x kimenee adnak. // Tömöríe jelölés: //? jelöli a 0,1,x érékeken való eljes ieráció, vagyis a don' care bemenei érékeke a b selec mux_ou // selec a b : mux_ou // 0 0? : 0 ; // 0 1? : 1 ; // 1? 0 : 0 ; // 1? 1 : 1 ; //? 0 0 : 0 ; //? 1 1 : 1 ; 8

UDP SZINTÉRZÉKENY LATCH daa enable enable daa TRANSPARENT LATCH q_ou q_ou 9

UDP SZINTÉRZÉKENY LATCH primiive _lach1 (q_ou, enable, daa); oupu q_ou; inpu enable, daa; reg q_ou; able // en daa sae q_ou/nex_sae 1 1 :? : 1 ; // Transzparens magas 1 0 :? : 0 ; // Rögzíe alacsony 0? :? : - ; // Megjegyzés: '-' eseén //nincs válozás a kimeneen, // az állapo az előző éréke arja endable endprimiive 10

UDP POZITÍV ÉLVEZÉRELT FLIP-FLOP primiive d_flop (q_ou, clock, daa); oupu q_ou inpu clock, daa; reg q_ou; able // clk daa sae q_ou/nex_sae (01) 0 :? : 0 ; // Órajel felfuó éle (01) 1 :? : 1 ; (0?) 1 : 1 : 1 ; (0?) 0 : 0 : 0 ; // lehene - is (?0)? :? : - ; // Órajel lefuó éle? (??) :? : - ; // Sabil órajel szin // nincs válozás endable endprimiive // A (0x) ípusú válozás az x reprezenálja 11

UDP LATCH, KEVESEBB PESSZIMIZMUSSAL primiive _lach2 (q_ou, enable, daa); oupu q_ou; inpu enable, daa; reg q_ou; able // en daa sae q_ou/nex_sae 1 1 :? : 1 ; 1 0 :? : 0 ; 0? :? : - ; // Nincs válozás // Nem kezelük az engedélyezés = x esee. // Ha daa = sae, legyen az en engedélyezés közömbös: x 0 : 0 : - ; x 1 : 1 : - ; endable endprimiive 12

SZINT ÉS ÉLVEZÉRELT UDP primiive jk_flop (q_ou, clock, j, k, prese, clear); oupu q_ou; inpu clock, j, k, prese, clear; reg q_ou; // j k q(+1) j k q(+1) // JK Flip-Flop // 0 0 q() 1 0 1 // 0 1 0 1 1 ~q() able // Prese logika (Akív alacsony) // clk j k pre clr sae q_ou/nex_sae??? 0 1 :? : 1 ;??? * 1 : 1 : 1 ; 13

// Clear logika (Akív alacsony) // clk j k pre clr sae q_ou/nex_sae??? 1 0 :? : 0 ;??? 1 * : 0 : 0 ; // Normal órajeles működés // clk j k pre clr sae q_ou/nex_sae r 0 0 0 0 : 0 : 1 ; r 0 0 1 1 :? : - ; r 0 1 1 1 :? : 0 ; r 1 0 1 1 :? : 1 ; r 1 1 1 1 : 0 : 1 ; r 1 1 1 1 : 1 : 0 ; f???? :? : - ; 14

// j és k vezérlése // clk j k pre clr sae q_ou/nex_sae b *??? :? : - ; // sabil óra b? *?? :? : - ; // Kisebb pesszimizmussal. p 0 0 1 1 :? : - ; p 0? 1? : 0 : - ; p? 0? 1 : 1 : - ; (?0)???? :? : - ; (1x) 0 0 1 1 :? : - ; (1x) 0? 1? : 0 : - ; (1x)? 0? 1 : 1 : - ; x * 0? 1 : 1 : - ; x 0 * 1? : 0 : - ; endable endprimiive 15

// JELÖLÉSEK: // * jelöli az összes válozás a bemeneen (??). // r jelöli a (01) ámenee // f jelöli a (10) ámenee // b jelöli a 0 or 1 (pl. sabil óra) // p jelöli a (01), (0x), (x1), (0z), (z1) ámeneeke // n jelöli az (10), (1x), (x0), (1z), (z0) ámeneeke 16

UDP KIÉRTÉKELÉSE EGYIDEJŰ VÁLTOZÁSOKRA Az egyidejű öbbszörös eseményekkel meghajo UDP kiérékelése függ az események feldolgozásának sorrendjéől. PÉLDA: d_flip_flop ESEMÉNY IDŐ STATE = 0 AKTUÁLIS ÉRTÉK CLOCK: 0 --> 1 0 DATA: 0 --> 1 HA AZ ÓRA ESEMÉNNYEL INDUL ==> KÖV. ÁLL. = JELENLEGI ÁLL.= 0 HA AZ ADAT ESEMÉNNYEL INDUL ==> KÖV. ÁLL. = 1 MEGJEGYZÉS: AZ IGAZSÁGTÁBLÁZAT NEM TUDJA FELOLDANI EZT A VERSENYT. IDŐZÍTÉSFIGYELÉSSEL A BEÁLLÁSI IDŐ FELTÉTEL ELLENŐRIZHETŐ. 17

UDP - ÁLTALÁNOS SZABÁLYOK AZ UDP-K A MODULOKKAL AZONOS SZINTAKTIKAI SZÍNTŰ EGYSÉGEK. AZ UDP-KET AZ ELŐRE DEFINIÁLT (BELSŐ) PRIMITÍVEKHEZ HASONLÓAN HASZNÁLHATJUK. AZ INTERFÉSZ LISTÁBAN SORRENDBEN A KIMENET AZ ELSŐ. AZ UDP KIMENETE CSAK SKALÁR LEHET. AZ UDP BEMENETEI IS CSAK SKALÁROK LEHETNEK. A KOMBINÁCIÓS TÍPUSÚ UDP-K KIMENETI PORTJA HUZAL. A SZEKVENCIÁLIS TÍPUSÚ UDP-K KIMENETI PORTJA REGISZTER. 18

UDP - ÁLTALÁNOS SZABÁLYOK AZ UDP-K AUTOMATIKUSAN BIZTOSÍTJÁK AZ ÉLÉRZÉKENY VISELKEDÉST. EGY-EGY SORBAN CSAK EGYETLEN BEMENET VÁLTOZHAT. A NEM TELJESEN SPECIFIKÁLT VÁLTOZÁSOK EREDMÉNYE A KIMENETEN X. AZOKAT A BEMENETI VÁLTOZÁSOKAT IS FELL KELL SOROLNI, AMELYEK NEM VÁLTOZTATJÁK MEG A KIMENETET (EGYÉBKÉNT A KIMENET EZEK HATÁSÁRA X ÉRTÉKET VESZ FEL). HA A KIMENET BÁRMEYIK BEMENETI ÉLRE ÉRZÉKENY, AZ ÖSSZES BEMENET ÖSSZES ÉLÉRE DEFINIÁLNI KELL A VISELKEDÉST. AZ UDP-K HASZNÁLATAKOR MEGADHATÓK ÉLVÁLTOZÁSI IDŐK (felfuó, lefuó). 19

UDP - ÁLTALÁNOS SZABÁLYOK AZ 'inou' TÍPUS NEM MEGENGEDETTAZ UDP TÁBLÁZATBAN. CSAK 0, 1, X ÉRTÉKEK SZEREPELHETNEK A TÁBLÁZATOK KIMENETI ÉS BEMENETI OSZLOPAIBAN. A Z ÉRTÉK (A SZIMULÁCIÓ SORÁN) X -KÉNT SZEREPEL A TÁBLÁZAT SORRENDJE MEGFELEL A PORTOK SORRENDJÉNEK A TÁBLÁZAT NEM TARTALMAZHAT EGYIDEJŰ VÁLTOZÁSOKAT LEGFELJEBB KÉT KÉSLELTETÉSI IDŐ (FELFUTÓ ÉS LEFUTÓ) DEFINIÁLHATÓ EGY UDP-HEZ. 20

A VERILOG NYELV IDŐZÍTÉS MODELLEZÉSE: PRIMITÍVEK, HUZALOK, FOLYTONOS KIJELÖLÉS. A VERILOG NYELV ELŐRE DEFINIÁLT TÁMOGATÁST AD AZ IDŐZÍTÉSEK MODELLEZÉSÉRE: KAPU TERJEDÉSI IDŐ (PROPAGATION DELAY) HUZALTERJEDÉSI IDŐ (TRANSPORT DELAY) KIFEJEZÉSEKKEL DEFINIÁLT KOMBINÁCIÓS LOGIKA, FOLYTONOS KIJELÖLÉS (CONTINUOUS ASSIGNMENT) BEMENET/KIMENET TÍPUSÚ KOMBINÁCIÓS KÉSLELTETÉS (ALGORITMIKUS VISELKEDÉSI LEÍRÁSOKBAN) MODULOK INTERFÉSZEIN LÁB-LÁB KÉSLELTETÉS 21

A VERILOG LOGIKAI PRIMITÍVEK KÉSLELTETÉSEI CÉL: A FIZIKAI TERJEDÉSI KÉSLELTETÉS MODELLEZÉSE KAPU / PRIMITÍV KÉSLELTETÉS (INERCIÁLIS) X_in Y_ou X_in Y_ou pd EGYETLEN ÉRTÉKKEL (késleleés nélküli, egységnyi, egyéb) TÖBB ÉRTÉKŰ (min : yp : max) JELVÁLTÁS SZERINT ASZIMMETRIKUS (lefuás, felfuás, kikapcsolás) ALAPÉRTELMEZÉSBEN NINCS KÉSLELTETÉS RÖVID IMPULZUSOKAT ELNYELI (INERCIÁLIS MODELL) 22

PÉLDA KAPUKÉSLELTETÉSEK MEGADÁSÁRA nand (y_ou, x_in1, x_in2); nand #5 (y, a, b, c); nand #1 (y_ou, x_in1, x_in2); nand #(2,3) (y_ou, x_in1, x_in2); nand #(3:4:5) (c, a, b); a_prim_buffer #(3,5) (y_ou, x_in1, x_in2); // UDP buf_if1 #(3:4:5, 6:7:8, 5:8:9) (y_ou, x_in, enable); MEGJEGYZÉS: A TERJEDÉSI IDŐ HATÁROZZA MEG, HOGY A KIMENET VÁLTOZÁSA MENNYI IDŐ MÚLVA KÖVESSE A BEMENET VÁLTOZÁSÁT. MINDEN BEMENETRE AZONOSAK A KÉSLELTETÉSEK. 23

A KÉSLELTETÉSEK JELENTÉSE ÉS SZINTAKTIKÁJA FELFUTÁS: 0 -> 1, x LEFUTÁS: 1 -> 0, x KIKAPCSOLÁS: 0 -> z x -> 1 x -> 0 1 -> z z -> 1 z -> 0 x -> z A PRIMITÍV KAPUK KÉSLELTETÉSE A KIMENET VÁTOZÁSÁHOZ KAPCSOLÓDIK. ÁLTALÁNOS SZINTAKTIKA gae_prim_name #(d1, d2, d3) insance_name_1 (pors),... insance_name_n(pors); AHOL: d1 d2 d3 Felfuási idő késleleései (egy, keő, vagy három érék) Lefuási késleleés Kikapcsolási késleleés (ahol szükséges) 24

TÖBBSZÖRÖS KÉSLELTETÉSI IDŐK: min, yp, max SZINTAKTIKA #(d1_min:d1_yp:d1_max, d2_min: d2_yp: d2_max, d3_min: d3_yp: d3_max) MEGJEGYZÉSEK A SZIMULÁTOROK ÁLTALÁBAN EGY ÉRTÉKET HASZNÁLNAK. A MEGFELELŐ PARAMÉTER INDÍTÁSI OPCIÓKÉNT VÁLASZTHATÓ. MINDHÁROM IDŐADATOT HASZNÁLJÁK AZ IDŐZÍTÉS ANALIZÁTOROK (PL. CADENCE VERITIME) 25

PÉLDA IDŐZÍTÉS ADATOK ALKALMAZÁSÁRA TRI-STATE LATCH module ri_lach(q_ou, nq_ou, clock, daa, enable); oupu q_ou, nq_ou; inpu clock, daa, enable; ri q_ou, nq_ou; // nagyimpedanciás kimene no #5 (ndaa,daa); // egyszerű késleleés nand #(3,5) (wa, daa, clock), // azonos felfuó/lefuó késleleések (wb, ndaa, clock); // ké kapura nand #(12,15) (q, nq, wa), (nq, q, wb); bufif1 #(3,7,13) q_drive (q_ou, q, enable), // felfuó és lefuó // kikapcsolási késleleések nq_drive (nq_ou, nq, enable); endmodule 26

A TRI-STATE LATCH KAPCSOLÁSI RAJZA daa clock (3,5) wa (12,15) q enable (3,7,17) q_ou (5) (3,7,17) (3,5) wb (12,15) nq enable nq_ou 27

AZ INTERCIÁLIS KÉSLELTETÉSEK MODELLJEI AZ INERCIÁLIS (TEHETETLENSÉGI) KÉSLELTETÉSI MODELL A HATÁRÉRTÉKNÉL KISEBB IDŐTARTAMÚ IMPULZUSOKAT ELNYOMJA. X_in = 1 Y_ou X_in Y_ou X_in = 3 pd = 2 2 5 28

HUZALOZÁSOK KÉSLELTETÉSI MODELLJE: A TRANSZPORT KÉSLELTETÉS CÉL: A JELEK ÁTFUTÁSI IDEJÉNEK MODELLEZÉSE A HUZALOZÁSI KAPCSOLATOKON. X_in X_ou X_in ne_ab X_ou ran EGY KÉSLELTETÉSI IDŐT KAPCSOL KÉT ESEMÉNY, A KIMENETI FORRÁS OLDALI MEGHAJTÓ JELVÁLTÁSA ÉS A HUZAL VÉGPONTJÁN MEGJELENŐ JELVÁLTÁS KÖZÉ. KÉSLELTETÉSI MODELL TRANSZPORT KÉSLELTETÉS (HUZALOZÁSOKON) ALAPÉRTÉK: NINCS KÉSLELTETÉS 29

PÉLDA HUZALOZÁSI KÉSLELTETÉSEKRE nand #3 (y_ou_bar, x_in1, x_in2); // meghajó késleleése 3 ns // a bemenei jelválások uán. wire #2 y_ou1; // huzal fuási ideje 2 ns // a meghajó jelválása uán. wire #4 y_ou2; no #1 (y_ou1, y_ou2, y_ou_bar); // y_ou1 (y_ou2) válozása // 2 ns (4 ns) múlva x_in1 x_in2 3 7 y_ou_bar 3 1 #2 #4 y_ou1 y_ou2 6 10 4 10 8 12 ALKALMAZÁS: HUZALKÉSLELTETÉS FPGA ÁRAMKÖRÖKBEN, ÖSSZEKÖTTETÉSEK MULTI-CHIP MODULOKBAN 30

KÉSLELTETÉS MODELLEZÉSE AZ IMPLICIT KOMBINÁCIÓS LOGIKAI FÜGGVÉNYEKNÉL (CONTINUOUS ASSIGNMENTS) CÉL: KÉSLELTETÉS HOZZÁRENDELÉSE A KÖZVETLEN FÜGGVÉNY FORMÁJÁBAN DEFINIÁLT KOMBINÁCIÓS LOGIKÁHOZ (INERCIÁLIS KÉSLELTETÉSŰ ADATFOLYAM MODELL). X_in Y_ou X_in IMPLICIT LOGIC (Coninuous Assignmen) Y_ou pd A FOLYTONOS KIJELÖLÉS (CONTINUOUS ASSIGNMENT) KÉSLELTETÉSE MODELLEZI AZT AZ IDŐT, AMI A KIFEJEZÉS JOBB OLDALI VÁLTOZÓINAK MEGVÁLTOZÁSÁTÓL A BALOLDALI VÁLTOZÓ VÁLTOZÁSÁIG ELTELIK. 31

PÉLDA IDŐZÍTÉS KÖZVETLEN MEGADÁSÁRA module my_xor (y_ou, a, b); inpu [15:0] a, b; oupu [15:0] y_ou; assign #delay y_ou = a ^ b; endmodule // explici assign MEGJEGYZÉS: EZ A MODELL INERCIÁLIS KÉSLELTETÉST VALÓSÍT MEG. 32

PÉLDA EXPLICIT assign ÉS HUZALOZÁSI KÉSLETETÉSRE a y_ou b a 5 10 a a ^ b y_ou b 10 15 module my_xor (y_ou,a,b); inpu [15:0] a,b; oupu [15:0] y_ou; wire [15:0] #5 y_ou; // ranszpor assign y_ou = a^b; // explici endmodule b 5 y_ou a a ^ b y_ou b 10 5ns TRANSZPORT KÉSLELTETÉS NINCS INERCIÁLIS HATÁS 6 33

PÉLDA EXPLICIT assign ÉS HUZALOZÁSI KÉSLETETÉSRE a b 5 y_ou a a ^ b y_ou b 13 18 a b 5 10 a b a ^ b y_ou y_ou module my_xor (y_ou,a,b); inpu [15:0] a,b; oupu [15:0] y_ou; wire [15:0] #5 y_ou; // 5ns huzalozás assign #3 y_ou = a^b; // 3ns inerciális endmodule 5ns TRANSZPORT KÉSLELTETÉS 3ns INERCIÁLIS HATÁS 6 34

KÉSLELTETÉS MEGADÁSI FORMÁI FOLYTONOS KIJELÖLÉS ESETÉN IMPLICIT assign module my_xor (y_ou, a, b); inpu [15:0] a, b; oupu [15:0] y_ou; wire #some_delay y_ou = a^b; // implici assign, a XOR // inerciális késleleése endmodule MEGJEGYZÉS: A MEGHAJTÓNAK INERCIÁLIS KÉSLELTETÉSE, A HUZALNAK 0 ÉRTÉKŰ TRANSZPORT KÉSLELTETÉSE VAN. 35

KÉSLELTETÉSI MODELLEK PÉLDA module wand_of_assigns (y_ou, x1, x2); inpu [31:0] x1, x2; oupu [31:0] y_ou; wand # 10 y; // wired-and huzal deklaració // ranszpor késleleés assign #5 y = ~x1; // meghajó inerciális késleleése assign #3 y = ~x2; // meghajó inerciális késleleése buf (y_ou, y); // modul áfuási idő endmodule MEGJEGYZÉS: A FOLYTONOS KIJELÖLÉS MEGHAJTÓJA MINDIG AKTÍV. A VISELKEDÉSI LEÍRÁSOK KÉSLELTETÉSI MODELJEINEK LEÍRÁSA (A BEMENETI/KIMENETI ALGORITMUS) KÉSŐBB FOG SZEREPELNI. 36

ÖSSZEFOGLALÓ A KAPUK, HUZALOK ÉS A FOLYTONOS KIJELÖLÉS KÉSLELTETÉSI MODELLJEIRŐL KAPUK: gae_ype #delay ( ); A BEMENETI ÉS KIMENETI ESEMÉNYEK KÖZÖTTI KÉSLELTETÉST DEFINIÁLJA A JELTERJEDÉS AZ INERCIÁLIS MODELL SZERINTI FOLYTONOS KIJELÖLÉS: wire #delay ne_name = expression; // Inerciális késleleés a jobboldali kifejezésre. wire ne_name; assign #delay ne_name = expression // Inerciális késleleés a jobboldali kifejezésre. 37

ÖSSZEFOGLALÁS wire #wire_delay ne_name; // huzal ranszpor késleleés assign ne_name = expression; // inerciális késleleés nélkül KÉSLELTETÉS A HUZALT MEGHAJTÓ KIMENET VÁLTOZÁSA ÉS ENNEK AZ ESEMÉNYNEK A MEGJELENÉSE A TERHELÉST JELENTŐ KAPU, PRIMITÍV VAGY FOLYTONOS KIJELÖLÉS KIFEJEZÉS VÁLTOZÓJA KÖZÖTT TRANSZPORT KÉSLELTETÉST VALÓSÍT MEG wire #wire_delay ne_name; // hual ranszpor késleleés assign #delay ne_name = expression; // inerciális késleleés 38