Projektovanje digitalnih sistema

Слични документи
Увод у организацију и архитектуру рачунара 1

LAB PRAKTIKUM OR1 _ETR_

Microsoft PowerPoint - OOPpredavanja05 [Compatibility Mode]

Орт колоквијум

Орт колоквијум

LAB 4 - Binarni komparator

Tutoring System for Distance Learning of Java Programming Language

Razvoj programa, Code::Blocks, struktura programa, printf, scanf, konverzioni karakteri predavač: Nadežda Jakšić

Microsoft PowerPoint - 10 PEK EMT Logicka simulacija 1 od 2 (2012).ppt [Compatibility Mode]

ELEKTROTEHNIČKI FAKULTET, UNIVERZITET U BEOGRADU KATEDRA ZA ELEKTRONIKU UVOD U ELEKTRONIKU - 13E041UE LABORATORIJSKA VEŽBA Primena mikrokontrolera

Microsoft PowerPoint - 12a PEK EMT VHDL 1 od 4 - Uvod (2011).ppt [Compatibility Mode]

Microsoft PowerPoint - Bitovi [Compatibility Mode]

P1.2 Projektovanje asemblera

Повезивање са интернетом

AKVIZICIJA PODATAKA SA UREĐAJEM NI USB-6008 NI USB-6008 je jednostavni višenamjenski uređaj koji se koristi za akviziciju podataka (preko USBa), kao i

Inženjering informacionih sistema

Испит из Основа рачунарске технике OO /2018 ( ) Р е ш е њ е Задатак 5 Асинхрони RS флип флопреализован помоћу НИ кола дат је на следећ

Programiranje u C-u ili C++-u Pseudo-slučajni brojevi; Dinamička alokacija memorije 1 ZADACI SA ČASA Zadatak 1 Napraviti funkciju koja generišlučajan

Microsoft Word - 02 Elementi programskog jezika Pascal

Osnovi programiranja Beleške sa vežbi Smer Računarstvo i informatika Matematički fakultet, Beograd Jelena Tomašević i Sana Stojanović November 7, 2005

PowerPoint Presentation

Test ispravio: (1) (2) Ukupan broj bodova: 21. veljače od 13:00 do 14:00 Županijsko natjecanje / Osnove informatike Osnovne škole Ime i prezime

Logicko projektovanje racunarskih sistema I

Microsoft Word - CAD sistemi

Funkcije predavač: Nadežda Jakšić

Sveučilište u Zagrebu Fakultet prometnih znanosti Zavod za inteligentne transportne sustave Katedra za primijenjeno računarstvo Vježba: #7 Kolegij: Ba

Microsoft Word - 11 Pokazivaci

Kombinatorno testiranje

Uvod u računarstvo 2+2

Tutoring System for Distance Learning of Java Programming Language

I колоквијум из Основа рачунарске технике I СИ- 2017/2018 ( ) Р е ш е њ е Задатак 1 Тачка А Потребно је прво пронаћи вредности функција f(x

23. siječnja od 13:00 do 14:00 Školsko natjecanje / Osnove informatike Srednje škole RJEŠENJA ZADATAKA S OBJAŠNJENJIMA Sponzori Medijski pokrovi

1

Projekti šabloni

Испит из Основа рачунарске технике OO /2018 ( ) Р е ш е њ е Задатак 5 Асинхрони RS флип флопреализован помоћу НИЛИ кола дат је на след

УНИВЕРЗИТЕТ У НИШУ ПРИРОДНО-МАТЕМАТИЧКИ ФАКУЛТЕТ Департман за рачунарске науке Писмени део испита из предмета Увод у рачунарство 1. [7 пое

Dijagrami sekvenci

P11.3 Analiza zivotnog veka, Graf smetnji

Programiranje 1 Beleške sa vežbi Školska 2007/2008 godina Matematički fakultet, Beograd Jelena Tomašević December 5, 2007

Upitni jezik SQL

P1.3 Projektovanje makroasemblera

VERILOG HDL

3.Kontrlne (upravlja~ke) strukture u Javi

PASCAL UVOD 2 II razred gimnazije

PROGRAMIRANJE Program je niz naredbi razumljivih računalu koje rješavaju neki problem. Algoritam je postupak raščlanjivanja problema na jednostavnije

COMARC/A Format

06 Poverljivost simetricnih algoritama1

Logičke izjave i logičke funkcije

Microsoft PowerPoint - 13 PIK (Mentor Graphic ASIC).ppt

PowerPoint Presentation

Microsoft PowerPoint - Programski_Jezik_C_Organizacija_Izvornog_Programa_I_Greske [Compatibility Mode]

SPR , IV godina, VHDL – Ispitna pitanja

I grupa 1. Napisati program koji izračunava i ispisuje zbir 4 najveća od pet brojeva unetih sa standardnog ulaza. ulaz izlaz Analiza: 1.

ИСПИТНА ПИТАЊА (ОКВИРНИ СПИСАК) УОАР2 2018/19 ПРВИ ДЕО ГРАДИВА 1. Написати истинитоносне таблице основних логичких везника (НЕ, И, ИЛИ). 2. Написати и

Uputstvo za korištenje korisničkog web portala AC-U UPUTSTVO ZA KORIŠTENJE KORISNIČKOG WEB PORTALA Izdanje: 1, maj / svibanj 2019 Strana 2 od 1

Grananje u programu predavač: Nadežda Jakšić

Algoritmi i arhitekture DSP I

АГЕНЦИЈА ЗА БАНКАРСТВО РЕПУБЛИКЕ СРПСКЕ УПУТСТВО ЗА ЕЛЕКТРОНСКО ДОСТАВЉАЊЕ ПОДАТАКА ИЗ ОБЛАСТИ РЕСТРУКТУРИРАЊА БАНАКА Бања Лука, јули године

Teorija skupova - blog.sake.ba

Microsoft Word - SIORT1_2019_K1_resenje.docx

Microsoft Word - 15ms261

Орт колоквијум

РЕПУБЛИКА СРБИЈА МИНИСТАРСТВО ПРИВРЕДЕ ДИРЕКЦИЈА ЗА МЕРЕ И ДРАГОЦЕНЕ МЕТАЛЕ Београд, Мике Аласа 14, ПП: 34, ПАК: телефон: (011)

Funkcije predavač: Nadežda Jakšić

PowerPoint Presentation

PRIRODNO MATEMATIČKI FAKULTET U NIŠU DEPARTMAN ZA RAČUNARSKE NAUKE Utorak, godine PRIJEMNI ISPIT IZ INFORMATIKE 1. Koja od navedenih ekste

РЕПУБЛИКА СРПСКА МИНИСТАРСТВО ПРОСВЈЕТЕ И КУЛТУРЕ РЕПУБЛИЧКИ ПЕДАГОШКИ ЗАВОД Милоша Обилића 39 Бањалука, Тел/факс 051/ , 051/ ; p

Programiranje 2 popravni kolokvij, 15. lipnja Ime i prezime: JMBAG: Upute: Na kolokviju je dozvoljeno koristiti samo pribor za pisanje i brisanj

Орт колоквијум

Programiranje 2 0. predavanje Saša Singer web.math.pmf.unizg.hr/~singer PMF Matematički odsjek, Zagreb Prog2 2019, 0. predavanje p. 1/4

1 Polinomi jedne promenljive Neka je K polje. Izraz P (x) = a 0 + a 1 x + + a n x n = n a k x k, x K, naziva se algebarski polinom po x nad poljem K.

Projektovanje informacionih sistema i baze podataka

CIJELI BROJEVI 1.) Kako još nazivamo pozitivne cijele brojeve? 1.) Za što je oznaka? 2.) Ispiši skup prirodnih brojeva! 3.) Kako označavamo skup priro

Mere slicnosti

VIK-01 opis

Slide 1

Tutoring System for Distance Learning of Java Programming Language

Microsoft PowerPoint - 12 PAIK Planiranje rasporeda modula (2016) [Compatibility Mode]

Школа Ј. Ј. Змај Свилајнац МЕСЕЧНИ ПЛАН РАДА ЗА СЕПТЕМБАР Школска 2018 /2019. Назив предмета: Информатика и рачунарство Разред: 5. Недељни број часова

Strukture predavač: Nadežda Jakšić

Microsoft Word - Lekcija 11.doc

PowerPoint Presentation

Razvoj IS

Упутство за пријављивање испита путем интернета Да би студент могао да пријави испит путем интернета мора прво да се пријави. Пријављивање се врши у п

Državno natjecanje / Osnove informatike Srednje škole Zadaci U sljedećim pitanjima na odgovore odgovaraš upisivanjem slova koji se nalazi ispred

1198. Agencija za elektronske komunikacije i poštansku djelatnost, na osnovu člana 11 stav 4 i člana 98 Zakona o elektronskim komunikacijama (''Sl. li

Konstrukcija i analiza algoritama Nina Radojičić februar Analiza algoritama, rekurentne relacije 1 Definicija: Neka su f i g dve pozitivne fun

Техничко решење: Метода мерења ефективне вредности сложенопериодичног сигнала Руководилац пројекта: Владимир Вујичић Одговорно лице: Владимир Вујичић

GV-2-35

Microsoft PowerPoint - DAC.ppt [Compatibility Mode]

Fortran

Microsoft PowerPoint - PRI2014 KORIGOVANO [Compatibility Mode]

F-6-14

Model podataka

Microsoft PowerPoint - vezbe 4. Merenja u telekomunikacionim mrežama

Microsoft Word - Projekat iz MIPS-a - simCPU.doc

KATALOG ZNANJA IZ INFORMATIKE

РЕПУБЛИКА СРБИЈА МИНИСТАРСТВО ПРИВРЕДЕ ДИРЕКЦИЈА ЗА МЕРЕ И ДРАГОЦЕНЕ МЕТАЛЕ Београд, Мике Аласа 14, ПП: 34, ПАК: телефон: (011)

Microsoft Word - 1. REALNI BROJEVI- formulice

Транскрипт:

Projektovanje digitalnih sistema Metodologije dizajna

Metodologije dizajna Odozgo ka dolje (top-down) Definiše se blok najvišeg nivoa i identifikuju se manji blokovi neophodni za njegovu implementaciju Manji blokovi se dijele na još manje blokove dok se ne dođe do ćelija koje se ne mogu više dijeliti 2

Metodologije dizajna - nastavak Odozdo ka gore (bottom-up) Prvo se identifikuju blokovi (ćelije) koji su dostupni za implementaciju Formiraju se veći blokovi koristeći dostupne ćelije Ovi se blokovi koriste za realizaciju blokova višeg nivoa, sve dok se ne dođe do bloka najvišeg nivoa Tipično se koristi kombinacija ove dvije metodologije 3

Primjer: 4-bitni ripple carry brojač Sastoji se od toggle flip flopova (T_FF) koji reaguju na silaznu ivicu Kako napraviti T_FF? 4

Primjer: 4-bitni ripple carry brojač - nastavak T_FF se može napraviti od D flip flopa koji reaguje na silaznu ivicu i invertora (pod pretpostavkom da D flip flop nema invertovani izlaz): 5

Primjer: 4-bitni ripple carry brojač - nastavak Brojač je izrađen u hijerarhijskom obliku, korišćenjem manjih blokova: 6

Primjer: 4-bitni ripple carry brojač - nastavak Kod top-down metodologije prvo bi specificirali funkcionalnost brojača (on je blok najvišeg nivoa) Nakon toga se brojač implementira pomoću blokova T_FF T_FF se implementira pomoću D flip flopa i invertora Dakle, veće blokove dijelimo u manje dok ne odlučimo da dalje dijeljenje nema smisla Kod bottom-up metodologije išlo bi se u suprotnom smjeru: kombinuju se mali blokovi za realizaciju većih Napravili bi D_FF koristeći logička kola (AND, OR, NOT,...) ili čak pomoću tranzistora Kod D flip flopova bi se susreli top-down i bottom-up tokovi 7

Primjer: 4-bitni ripple carry brojač - nastavak Modul osnovni gradivni blok u Verilogu Modul može biti osnovni element ili kombinacija blokova nižeg nivoa Elementi se grupišu u module da obezbijede funkcionalnost koja bi se koristila na više mjesta unutar dizajna Modul obezbjeđuje potrebnu funkcionalnost prema blokovima višeg nivoa preko portova (input, output), ali od njih sakriva unutrašnju implementaciju Na prethodnoj slici, Ripple Carry counter, T_FF i D_FF su primjeri modula Modul se deklariše pomoću ključne riječi module Na kraju definicije modula stavlja se ključna riječ endmodule 8

Primjer: 4-bitni ripple carry brojač - nastavak Svaki modul mora imati svoje ime (module_name) koje identifikuje taj modul module_terminal_list koji opisuje ulazne i izlazne priključke modula Opšti slučaj: module <module_name> <module_terminal_list>;... <sadržaj modula>... endmodule T_FF bi se mogao definisati kao modul na ovaj način: module T_FF (q, clock, reset);... <funkcionalnost toggle flip flopa>... endmodule 9

Primjer: 4-bitni ripple carry brojač - nastavak Modul predstavlja šablon od kojeg se kreira stvarni objekat Svaki objekat ima svoje vlastito ime, promjenljive, parametre i I/O interfejs Proces kreiranja objekta koristeći šablon modula naziva se instantiation (instanciranje), a objekti se nazivaju instances (instance) Blok najvišeg nivoa u primjeru brojača kreira 4 instance T_FF šablona Svaki T_FF instancira D_FF i invertor Svaka od ovih instanci mora imati jedinstveno ime 10

Primjer: 4-bitni ripple carry brojač - nastavak Instanciranje modula (Napomena: // - predstavlja komentar) // Definisati modul najvišeg nivoa sa imenom ripple_carry_counter module ripple_carry_counter(q, clk, reset); output [3:0] q; // deklaracija vektora i I/0 signala (objašnjenje kasnije) input clk, reset; // Kreiraju se 4 instance modula T_FF. Svaka ima jedinstveno ime // Svakoj instanci se prosleđuje set signala. Primjetiti da je svaka instanca kopija modula T_FF T_FF tff0(q[0],clk, reset); T_FF tff1(q[1],q[0], reset); T_FF tff2(q[2],q[1], reset); T_FF tff3(q[3],q[2], reset); endmodule 11

Primjer: 4-bitni ripple carry brojač - nastavak Instanciranje modula // Definisati modul T_FF. On instancira D_FF. Pretpostavljamo da je // modul D_FF definisan negdje drugo unutar dizajna module T_FF(q, clk, reset); output q; input clk, reset; wire d; D_FF dff0(q, d, clk, reset); not n1(d,q); // not kolo je Verilog element endmodule 12

Primjer: 4-bitni ripple carry brojač - nastavak U Verilogu nije dozvoljeno ugnijezditi module! Unutar jedne definicije modula ne smije se naći druga definicija modula Dozvoljeno je da se instancira kopija drugog modula Praviti razliku između definicije i instance modula: definicija modula specificira kako će modul raditi, šta se u njemu nalazi i njegov interfejs modul mora biti instanciran da bi se koristio u dizajnu module ripple_carry_counter(q, clk, reset); output [3:0] q; input clk, reset; module T_FF(q, clk, reset); // nedozvoljeno!!!... <unutrašnjost modula T_FF... endmodule endmodule 13

Komponente simulacije Kada se završi dizajn bloka, potrebno ga je testirati Funkcionalnost se testira tako što se dovedu različite kombinacije ulaznih signala (tzv. stimulus) i provjere se rezultati Blok sa ulaznim signalima se naziva stimulus blok (test bench) i poželjno ga je držati odvojeno od dizajna Dva su moguća stila primjene stimulusa: 1. stimulus blok instancira blok dizajna 2. i stimulus i blok dizajna se instanciraju u bloku najvišeg nivoa (toplevel dummy module) 14

Komponente simulacije nastavak 1. - stimulus blok direktno upravlja signalima u bloku dizajna - stimulus blok postaje blok najvišeg nivoa - on upravlja signalima clk i reset i provjerava i prikazuje izlazni signal q 15

Komponente simulacije nastavak 2. - stimulus blok vrši interakciju sa blokom dizajna jedino preko interfejsa - upravlja signalima d_clk i d_reset koji su povezani na signale clk i reset u bloku dizajna - provjerava i prikazuje signal c_q, koji je povezan sa signalom q u bloku dizajna - funkcija bloka najvišeg nivoa je samo da instancira blok dizajna i stimulus blok 16

Primjer: 4-bitni ripple carry brojač - nastavak Koristimo top-down metodologiju: prvo definišemo blok najvišeg nivoa module ripple_carry_counter(q, clk, reset); output [3:0] q; input clk, reset; T_FF tff0(q[0],clk, reset); T_FF tff1(q[1],q[0], reset); T_FF tff2(q[2],q[1], reset); T_FF tff3(q[3],q[2], reset); endmodule Ovdje su korišćene 4 instance T_FF modula => moramo definisati modul T_FF 17

Primjer: 4-bitni ripple carry brojač - nastavak Definicija bloka T_FF module T_FF(q, clk, reset); output q; input clk, reset; wire d; D_FF dff0(q, d, clk, reset); not n1(d,q); endmodule Ovaj modul instancira D_FF => moramo definisati modul D_FF 18

Primjer: 4-bitni ripple carry brojač - nastavak Definicija bloka D_FF (uzećemo da se vrši asinhroni reset) module D_FF(q, d, clk, reset); output q; input d, clk, reset; reg q; // Ne obraćati pažnju na sintaksu. Koncentrisati se na način dizajna // u top-down metodologiji always @(posedge reset or negedge clk) if (reset) q = 1 b0; else q = d; endmodule Svi moduli su definisani => blok dizajna je kompletiran 19

Primjer: 4-bitni ripple carry brojač - nastavak Stimulus blok moramo napraviti stimulus blok kako bi provjerili ispravnost funkcionisanja dizajna brojača kontrolišemo signale clk i reset, da provjerimo i brojanje i resetovanje koristićemo sljedeći talasni oblik za testiranje dizajna: perioda clk signala je 10 jedinica vremena reset je aktivan od vremenskog trenutka 0 do 15 i od 195 do 205 20

Primjer: 4-bitni ripple carry brojač - nastavak Stimulus blok primijenićemo stil direktnog upravljanja signalima u bloku dizajna module stimulus; reg clk; reg reset; wire[3:0] q; ripple_carry_counter r1(q, clk, reset); // instancira blok dizajna initial // Kontrola clk signala koji upravlja blokom dizajna. Perioda = 10 clk = 1 b0; // postavi clk na 0 always #5 clk = ~clk; // invertuj clk svakih 5 vremenskih jedinica... 21

Primjer: 4-bitni ripple carry brojač - nastavak... nastavak initial begin reset = 1 b1; #15 reset = 1 b0; #180 reset = 1 b1; #10 reset = 1 b0; #20 $finish; // prekini simulaciju end initial $monitor($time, " Izlaz q = %d ", q); // nadgledanje izlaza endmodule 22

Primjer: 4-bitni ripple carry brojač - nastavak Izlaz simulacije 0 Izlaz q = 0 20 Izlaz q = 1 30 Izlaz q = 2 40 Izlaz q = 3 50 Izlaz q = 4 60 Izlaz q = 5 70 Izlaz q = 6 80 Izlaz q = 7 90 Izlaz q = 8 100 Izlaz q = 9 110 Izlaz q = 10 120 Izlaz q = 11 130 Izlaz q = 12 140 Izlaz q = 13 150 Izlaz q = 14 160 Izlaz q = 15 170 Izlaz q = 0 180 Izlaz q = 1 190 Izlaz q = 2 195 Izlaz q = 0 210 Izlaz q = 1 220 Izlaz q = 2 23

Verilog: leksičke konvencije Verilog je jezik u kome se pravi razlika između malih i velikih slova (casesensitive) Sve ključne riječi se pišu malim slovima Prazno mjesto (\b), tab (\t), vraćanje na početak linije (\r) i prelazak u novi red (\n) predstavljaju tzv. razmak. Razmaci se ignorišu, osim kad su unutar stringova. module addbit(a,b,ci,sum,co); input a,b,ci;output sum, co; wire a,b,ci,sum,co;endmodule isto module addbit ( a, b, ci, sum, co); input a; input b; input ci; output sum; output co; wire a; wire b; wire ci; wire sum; wire co; endmodule 24

Verilog: leksičke konvencije nastavak Komentari se mogu unijeti na dva načina: Linijski komentar (počinje sa //) preskače se sve do kraja linije Višelinijski komentar (počinje sa /* a završava sa */) ne smiju biti ugniježdeni a = b && c; // Ovo je komentar u jednoj liniji /* Ovo je komentar u više linija */ /* ovo je /* nepravilni */ komentar */ 25

Verilog: leksičke konvencije nastavak Operatori mogu biti unarni, binarni i trojni: Unarni operatori se pišu ispred operanda Binarni operandi se pišu između operanada Trojni operandi se označavaju sa dva različita simbola koji razdvajaju tri operanda a = ~b; // ~ je unarni operator. b je operand a = b && c; // && je binarni operator. b i c su operandi a = b? c : d; //? : je trojni operator. b, c i d su operandi 26

Verilog: predstavljanje brojeva Brojevi sa specificiranom i nespecificiranom veličinom Format brojeva sa specificiranom veličinom: <veličina> <brojna osnova><broj> <veličina> se piše u dekadnom sistemu i govori koliko ima bitova u predstavljanom broju opciono <brojna osnova> može biti decimalna ( d ili D), heksadecimalna ( h ili H), binarna ( b ili B) ili oktalna ( o ili O) - opciono <broj> se predstavlja neprekidnim nizom cifara iz skupa {0, 1, 2, 3, 4, 5, 6, 7, 8, 9, a, b, c, d, e, f}. U pojedinim brojnim sistemima se koriste samo podskupovi ovog skupa cifara. Mogu se koristiti i velika slova za predstavljanje cifara. 4 b1111 // ovo je 4-bitni binarni broj: 1111 (2) = 15 (10) 12 habc // ovo je 12-tobitni heksad. broj: ABC (16) =2748 (10) =101010111100 (2) 16 d255 // ovo je 16-tobitni decimalni broj: 255 (10) = 0000000011111111 27 (2)

Verilog: predstavljanje brojeva nastavak Format brojeva sa nespecificiranom veličinom: <brojna osnova><broj> <brojna osnova> može biti izostavljena => podrazumijeva se da je broj u dekadnom brojnom sistemu Veličina nespecificiranih brojeva zavisi od korišćenog simulatora/uređaja i iznosi najmanje 32 bita 23456 // ovo je 32-bitni dekadni broj hc3 // ovo je 32-bitni heksadekadni broj o21 // ovo je 32-bitni oktalni broj 28

Verilog: predstavljanje brojeva nastavak Nepoznata ili neispravna vrijednost (često potrebno kod realnih kola) se označava sa x Stanje visoke impedanse (plivajuće stanje) se označava sa z pogodno za opisivanje tristate bafera 12 h13x // ovo je 12-tobitni broj; 4 najniža bita su nepoznata 6 hx // ovo je 6-bitni heksadekadni broj 32 bz // ovo je 32-bitni broj kod kojeg svih 32 bita imaju visoku impedansu x i z predstavljaju grupu od 4 bita u hex sistemu, grupu od 3 bita u oct sistemu i 1 bit u binarnom sistemu Ako je bit najviše težine u broju 0, x ili z, broj se automatski proširuje sa 0, x ili z, respektivno Na ovaj način se olakšava zadavanje vektora vidi gornji primjer Ako je bit najviše težine u broju 1, broj se proširuje nulama! 29

Verilog: predstavljanje negativnih brojeva Negativni brojevi se označavaju stavljanjem znaka minus ispred oznake za veličinu konstante Znak za minus se ne smije staviti između <brojne osnove> i <broja> Negativni brojevi se interno predstavljaju u zapisu sa dvojnim komplementom Donja crta ( _ ) se koristi radi lakšeg čitanja brojeva i ignoriše se od strane Veriloga. Ne stavlja se kao prvi karakter! -8'd3 // osmobitni negativni broj smješten kao dvojni komplement od 3 4'd-2 // neispravna specifikacija!!! 1 // smješten kao; 00000000000000000000000000000001 8'hAA // smješten kao: 10101010 6'b10_0011 // smješten kao: 100011 'hf // smješten kao: 00000000000000000000000000001111 30

Verilog: predstavljanje realnih brojeva Verilog podržava realne konstante i promjenljive Realni brojevi ne mogu sadržati 'Z i 'X' Realni brojevi se mogu specificirati u decimalnoj ili naučnoj notaciji: Decimalna notacija: <vrijednost>.<vrijednost> Naučna notacija: <mantisa>e<eksponent> Realni brojevi se zaokružuju na najbližu cijelu vrijednost, kada se dodjeljuju cjelobrojnoj promjenljivoj 1.4 // decimalni broj: 1.4 0.8 // decimalni broj: 0.8 5.7E4 // decimalni broj: 5.7x10 4, odnosno 57000 31

Verilog: predstavljanje brojeva - primjer module signed_number; reg [31:0] a; initial begin end endmodule a = 14'h1234; $display ("Trenutna vrijednost a = %h", a); a = -14'h1234; $display ("Trenutna vrijednost a = %h", a); a = 32'hDEAD_BEEF; $display ("Trenutna vrijednost a = %h", a); a = -32'hDEAD_BEEF; $display ("Trenutna vrijednost a = %h", a); #10 $finish; IZLAZ: Trenutna vrijednost a = 00001234 Trenutna vrijednost a = ffffedcc Trenutna vrijednost a = deadbeef Trenutna vrijednost a = 21524111 32

Verilog: predstavljanje brojeva - primjeri 1 b0 // jednobitna vrijednost, nula b0 // 32 bita, sve nule (0000_0000_0000_0000_0000_0000_0000_0000) 4 ha // četvorobitna HEX vrijednost (1010) 5 ha // petobitna HEX vrijednost (01010) 4 hz // zzzz 4 bx // xxxx 10 // 32-bitna vrijednost (0000_0000_0000_0000_0000_0000_0000_1010) F // neispravna vrijednost 33

Verilog: predstavljanje stringova String je sekvenca karaktera koji se nalaze unutar znakova navoda String se mora nalaziti u okviru jedne linije String se tretira kao sekvenca jednobajtnih ASCII vrijednosti: jedna ASCII jedan karakter Hello Verilog World // ovo je string a / b // ovo je string Verilog ne smješta terminacioni karakter Kada je promjenljiva veća nego što je potrebno da se smjesti string, dopunjava se nulama sa lijeve strane Neki karakteri se mogu koristiti u stringu samo ako se ispred njih nalazi escape karakter: \n novi red, \t tab, \\ backslash (\), \ navodnici, %% procenat 34

Verilog: identifikatori i ključne riječi Identifikator je naziv nekog objekta preko kojeg se taj objekat referencira Mora počinjati (malim ili velikim) slovom ili donjom crtom ( _ ) Identifikator može sadržati slova, cifre, donju crtu i znak za dolar (a-z A-Z 0-9 _ $) Identifikator ne može počinjati sa $ jer su takve konstrukcije rezervisane za sistemske funkcije Dužina naziva može biti do 1024 karaktera Ključne riječi su specijalni identifikatori rezervisani za definisanje jezičkih konstrukcija reg value; // reg je ključna riječ; value je identifikator input clk; // input je ključna riječ; clk je identifikator 35

Verilog: tipovi podataka Verilog podržava 4 vrijednosti i 8 jačina signala da bi se modelovao realni hardver Vrijednosti signala su: 0 => logička nula 1 => logička jedinica x => nepoznata ili neispravna vrijednost z => visoka impedansa (plivajuće stanje) 0 i 1 mogu imati neki od sledećih nivoa jačine (strenth): supply strong pull large weak medium small highz Poređani su od najjačeg prema najslabijem 36

Verilog: tipovi podataka nastavak Ako se dva signala nejednake jačine nađu na istom vodu, preovladaće jači signal Ako se dva signala jednake jačine nadmeću na istom vodu rezultat je nepoznat (x) Ako su svi signali na istom vodu u stanju visoke impedanse (isključeni tristate baferi) signal na vodu će biti u plivajućem stanju (z) 37