background image

Verilog

1/41

Verilog HDL

a[0]
b[0]

y[0]

a

b

y

cout

HA

a[1]
b[1]

y[1]

a

b

y

FA

cin

cout

a[2]
b[2]

y[2]

a

b

y

FA

cin

cout

a[3]
b[3]

y[3]

a

b

y

FA

cin

cout

y[4]

c[3]

c[2]

c[1]

c[0]

dr inż. Mariusz Kapruziak

mkapruziak@wi.ps.pl

pok. 107, tel. 449 55 44

background image

1. Modelowanie struktury

2/41

1

2

3

4

5

Ogólna struktura kodu

background image

1. Modelowanie struktury

3/41

1

2

3

4

5

Pełny sumator

background image

1. Modelowanie struktury

4/41

1

2

3

4

5

Sygnały: wire/reg, assign/always, initial

Inicjalizacja

background image

1. Modelowanie struktury

5/41

1

2

3

4

5

Konkatenacja

Selekcja części słowa

Tablice

Słowo

Słowa, tablice, konkatenacja

background image

1. Modelowanie struktury

6/41

1

2

3

4

5

Stałe

Długość słowa / 

liczba bitów

Format: b = binarny

Wartość stałej

Format: o = ósemkowy

Format: d = dziesiętny

Format: h = szesnastkowy

Wartość stałej

Wartość stałej 

(dziesiętnie)

background image

1. Modelowanie struktury

7/41

1

2

3

4

5

Multiple Driver Error

zwarcie

zwarcie

background image

1. Modelowanie struktury

8/41

1

2

3

4

5

Stałe z, x

Sygnały wand/wor/tri/supply1/supply0

wand/wor

z, x

background image

1. Modelowanie struktury

9/41

1

2

3

4

5

Sumator 4-bit

jawne przypisanie wyprowadzeń

a[0]
b[0]

y[0]

a

b

y

cout

HA

a[1]
b[1]

y[1]

a

b

y

FA

cin

cout

a[2]
b[2]

y[2]

a

b

y

FA

cin

cout

a[3]
b[3]

y[3]

a

b

y

FA

cin

cout

y[4]

c[3]

c[2]

c[1]

c[0]

background image

1. Modelowanie struktury

10/41

1

2

3

4

5

Generate, genvar

a[0]
b[0]

y[0]

a

b

y

cout

HA

a[1]
b[1]

y[1]

a

b

y

FA

cin

cout

a[2]
b[2]

y[2]

a

b

y

FA

cin

cout

a[3]
b[3]

y[3]

a

b

y

FA

cin

cout

y[4]

c[3]

c[2]

c[1]

c[0]

background image

1. Modelowanie struktury

11/41

1

2

3

4

5

Składnia Generate

Wykorzystanie do bloków 

warunkowych

Powielanie bloków

Powielanie bloków, 

iteracje zagłębione

background image

1. Modelowanie struktury

12/41

1

2

3

4

5

Kod nie syntezowalny na poziomie logicznym

background image

1. Modelowanie struktury

13/41

1

2

3

4

5

`define

background image

1. Modelowanie struktury

14/41

1

2

3

4

5

Składania define

background image

1. Modelowanie struktury

15/41

1

2

3

4

5

parameter

background image

1. Modelowanie struktury

16/41

1

2

3

4

5

enumeracja

background image

1. Modelowanie struktury

17/41

1

2

3

4

5

Przykładowe definicje obiektów (rejestr D i bufor 3-st.)

Środowisko Xilinx ISE

background image

1. Modelowanie struktury

18/41

1

2

3

4

5

ZADANIE: dekoder HEX na wyświetlacz 7seg.

Licznik 4 bitowy

?

background image

2. RTL = Register Transfer Level

19/41

1

2

3

4

5

RTL = Register Transfer Level

background image

2. RTL = Register Transfer Level

20/41

1

2

3

4

5

Operatory i ich priorytety

background image

2. RTL = Register Transfer Level

21/41

1

2

3

4

5

PRZYKŁAD: Narysować strukturę

?

background image

3. always, reg : modelowanie sekwencji

22/41

1

2

3

4

5

always: reg, liczta czułości

background image

3. always, reg : modelowanie sekwencji

23/41

1

2

3

4

5

always: ostrożnie z listą czułości

background image

3. always, reg : modelowanie sekwencji

24/41

1

2

3

4

5

always: „sekwencyjność”

background image

3. always, reg : modelowanie sekwencji

25/41

1

2

3

4

5

always: LATCH

background image

3. always, reg : modelowanie sekwencji

26/41

1

2

3

4

5

always: zbocze rosnące/malejące

przerzutnik D

background image

3. always, reg : modelowanie sekwencji

27/41

1

2

3

4

5

Reset asynchroniczny/synchroniczny

Mieszanie sygnałów synchr./asynchr.

background image

3. always, reg : modelowanie sekwencji

28/41

1

2

3

4

5

Przypisanie blokujące/nieblokujące

Przypisanie nieblokujące

background image

3. always, reg : modelowanie sekwencji

29/41

1

2

3

4

5

ZADANIE: rejestr przesuwny/licznik

?

background image

30/41

1

2

3

4

5

4. Instrukcje sekwencyjne

always: if, case

background image

31/41

1

2

3

4

5

4. Instrukcje sekwencyjne

case

background image

32/41

1

2

3

4

5

4. Instrukcje sekwencyjne

casex, casez

background image

33/41

1

2

3

4

5

4. Instrukcje sekwencyjne

always: synteza przerzutnika/latch

background image

34/41

1

2

3

4

5

4. Instrukcje sekwencyjne

always: for, while

background image

35/41

1

2

3

4

5

4. Instrukcje sekwencyjne

always: for, while - OSTROŻNIE

background image

36/41

1

2

3

4

5

4. Instrukcje sekwencyjne

always: for, while NIE ZAWSZE SYNTEZOWALNE

NA POZIOMIE LOGICZNYM

background image

5. Funkcje i zadania

37/41

1

2

3

4

5

Funkcje, zadania

FUNCTION

TASK

background image

5. Funkcje i zadania

38/41

1

2

3

4

5

Przykład funkcji

background image

5. Funkcje i zadania

39/41

1

2

3

4

5

Przykład zadania

background image

Verilog

40/41

Polecana literatura

1) J. Bhasker, Verilog HDL Synthesis, A Practical Primer, Star Galaxy Publishing 1998

3) C.M. Maxfield, The Design Warrior’s Guide to FPGAs, Linacre House 2004

2)  Synopsys, FPGA Compiler II/FPGA Express, Verilog HDL Reference Manual, 

Synopsys 1999

background image

Verilog

41/41

KONIEC

dr inż. Mariusz Kapruziak

mkapruziak@wi.ps.pl

pok. 107, tel. 449 55 44