background image

I

T
P

W

ZPT

1

Układ

sterujący

(kontroler

)

Dane wyjściowe

Dane

wejściowe

Sygnały

sterujące

Stan części

operacyjnej

Układ operacyjny

(Datapath)

System cyfrowy

Mikrooperac
je 

wywoływane przez

sygnały sterujące

background image

I

T
P

W

ZPT

2

System cyfrowy - realizacja

UO – z bloków funkcjonalnych

US – automat lub układ 
mikroprogramowany 

X

Z

X

P

Z

Y

Z

D

F

US

UO

background image

I

T
P

W

ZPT

3

Przykład syntezy strukturalnej

 W kodzie BCD (Binary Coded Decimal) każda 

cyfra liczby zapisanej w kodzie dziesiętnym 

jest przedstawiana  czterobitową liczbą binarną 

Konwerter kodu binarnego na kod 

BCD:

                 4          8        9

 Np. liczba 489 zostanie zapisana jako 

wektor  binarny z wykorzystaniem 12 bitów 

(3  4 bity) 

          

BCD

   0100   1000  1001

background image

I

T
P

W

ZPT

4

Konwerter Bin2BCD

BIN/BCD

0  liczby  99

0

0

0

1

1

0

1

1

27

BI

N

Celem jest pokazanie różnych metod 

projektowania

27

BCD

0

0

1

0

 

0

1

1

1

background image

I

T
P

W

ZPT

5

0

0

0 0 0 0 0 0

0

0

0 1 1 0 1 1

27

LDA

LDB

LB

=

0

0

0 0 0 0 0 0

LDB  5

LDB := LDB+3

NIE

TAK

LDB := LDB

 8

Metoda +3

background image

I

T
P

W

ZPT

6

0

0

0 1 1 0 1 1

LDA

LDB

LB

0

0

0 0 0 0 0 0

0

0

0

0

0 0 0 0 0 0

0

0

0

0 0 0 0 0 0

0

0

0 0 0 0 0 0

0

0

0 0 0 0 0 1

0

0

0 0 0 0 1 1

0

0

0 0 0 1 1 0

0 0 1 1

0

0

0 0 1 0 0 1

0 1 1

0

0

0 1 0 0 1 1

0

0

1 0 0 1 1 1

LDB < 5

LDB < 5

LDB < 5

LDB < 5

LDB < 5

LDB < 5

LDB  5

+

LDB < 5

1

2

3

4

5

6

7

8

1 1 0 1 1

1 1 0 1 1

1 1 0 1 1

1 0 1 1

1 1

1

0

0

1 0 0 1 1 1

LD

BCD

 =

2

7

 = 27

background image

I

T
P

W

ZPT

7

Algorytm 
konwersji
 z kodu BIN na 
BCD

KONIEC

LOAD (LB)

LDA := 0
LDB := 0

LK := 8

LDB  5

LDB := LDB + 3

LDA := LDA + 3

LDA  5

START

LDA := SHL(LDA,LDB

3

)

LDB := SHL(LDB,LB

7

)

LB := SHL(LB)

LK := DEC(LK)

LD := LDA 

 LDB

LK = 

0

NIE

TAK

NIE

NIE

TAK

TAK

 Liczba konwertowana 

zapisana jest w postaci 
binarnej

 Przekształcenie polega na 

wykonaniu określonej liczby 
prostych operacji

 Przy konwersji liczb z zakresu 

0 – 99 można algorytm 
uprościć

 Wykorzystuje proste operacje 

na liczbach binarnych:

przesunięcie w lewo,

zwiększenie  o 3,

porównanie ze stałą.

background image

I

T
P

W

ZPT

8

Algorytm 
konwersji

 Rejestry LB, LDA, LDB z 

operacjami:

zeruj

wpisz,

przesuń.

 Licznik LK z operacjami:

ustaw,

zmniejsz o 1.

 Sumator
 
 Komparator

KONIEC

LOAD (LB)

LDA := 0
LDB := 0

LK := 8

LDB  5

LDB := LDB + 3

LDA := LDA + 3

LDA  5

START

LDA := SHL(LDA,LDB

7

)

LDB := SHL(LDB,LB

7

)

LB := SHL(LB)

LK := DEC(LK)

LD := LDA 

 LDB

LK = 

0

NIE

TAK

NIE

NIE

TAK

TAK

background image

I

T
P

W

ZPT

9

Opis strukturalny

R3

R2

R1

K

S3

S2

S1

A

B

8

4

4

4

„3”

„5”

 5

LK

4

„8”

LOAD1
DEC

LK = 0

R4

LOAD2

8

Y = LD

UO

LB

Y

LK = 0

10

US

S

 5

MUX

1

0

MUX

4

A

B

4

LB

background image

I

T
P

W

ZPT

10

Sieć działań

z uwzględnieniem UO

LK = 0

0

0

SHL 1, SHL 2, SHL 3,

DEC (LK)

MUX := 0

MUX := 1

LOAD 4

LOAD 2

LOAD 3

S

0

1

1

0

1

1

LOAD 1

CLEAR 2,3

LOAD (LK)

K  >  5

K  >  5

A

0

A

1

A

3

A

4

A

5

A

6

A

7

A

2

Synteza układu 

sterującego!

Numeracja stanów 

wewnętrznych

background image

I

T
P

W

ZPT

11

Zamiana SD na automat sterujący

LK = 0

0

0

SHL 1, SHL 2, SHL 3,

DEC (LK)

MUX := 0

MUX := 1

LOAD 4

LOAD 2

LOAD 3

S

0

1

1

0

1

1

LOAD 1

CLEAR 2,3

LOAD (LK)

K  >  5

K  >  5

A

0

A

1

A

2

A

3

A

4

A

5

A

6

A

7

A

0

/Z

0

A

1

/Z

1

A

2

/Z

2

A

3

/Z

3

A

4

/Z

6

A

6

/Z

4

A

7

/Z

5

A

5

/Z

7

x

1

x

1

x

0

x

2

0

x

1

x

1

x

2

x

Zamiana SD na automat sterujący

Nowe oznaczenia 

sygnałów 

predykatowych

background image

I

T
P

W

ZPT

12

Tablica p-w automatu sterującego  

x

2

x

1

x

0

S

00
0

00
1

01
1

01
0

11
0

11
1

10
1

10
0

Z

A

0

Z

0

A

1

Z

1

A

2

Z

2

A

3

Z

3

A

4

Z

6

A

5

Z

7

A

6

Z

4

A

7

Z

5

A

0

/Z

0

A

1

/Z

1

A

2

/Z

2

A

3

/Z

3

A

4

/Z

6

A

6

/Z

4

A

7

/Z

5

A

5

/Z

7

x

1

x

1

x

0

x

2

0

x

1

x

1

x

2

x

A

0

A

0

A

0

A

0

A

1

A

1

A

1

A

1

A

2

A

2

A

2

A

2

A

2

A

2

A

2

A

2

A

6

A

6

A

6

A

6

A

3

A

3

A

3

A

3

A

4

A

4

A

7

A

7

A

7

A

7

A

4

A

4

A

2

A

5

A

5

A

2

A

2

A

5

A

5

A

2

A

0

A

0

A

0

A

0

A

0

A

0

A

0

A

0

A

3

A

3

A

3

A

3

A

3

A

3

A

3

A

3

A

4

A

4

A

4

A

4

A

4

A

4

A

4

A

4

Tablica p-w wystarcza 
do realizacji automatu!

background image

I

T
P

W

ZPT

13

Opis strukturalny

R3

R2

R1

K

S3

S2

S1

A

B

8

4

4

4

„3”

„5”

 5

LK

4

„8”

LOAD1
DEC

LK = 0

R4

LOAD2

8

Y = LD

UO

LB

Y

LK = 0

10

US

S

 5

MUX

1

0

MUX

4

A

B

4

LB

Zrealizowany automat 
jest Układem 
Sterującym

background image

I

T
P

W

ZPT

14

Opis strukturalny

R3

R2

R1

K

S3

S2

S1

A

B

8

4

4

4

„3”

„5”

 5

LK

4

„8”

LOAD1
DEC

LK = 0

R4

LOAD2

8

Y = LD

UO

LB

Y

LK = 0

10

US

S

 5

MUX

1

0

MUX

4

A

B

4

LB

Co dalej?

background image

I

T
P

W

ZPT

Stosując rutynowe metody…

SPECYFIKACJA

FUNKCJONALNA

(HDL)

SYNTEZA

FUNKCJONALNA

OPIS RTL

TRANSLACJE

SPECYFIKACJI

SIEĆ

LOGICZNA

OPTYMALIZACJA

LOGICZNA

ODWZOROWANIE

TECHNOLOGICZN
E

uzyskaną strukturę zapisujemy  w języku opisu 
sprzętu i kompilujemy w systemie Quartus 

54 LEs ─ 33 

mln/sek

FPGA

34 LEs ─ 39 

mln/sek

background image

I

T
P

W

ZPT

16

.type fr
.i 9
.o 8
.p 100
000000000  0000 
0000
000000001  0000 
0001
000000010  0000 
0010
000000011  0000 
0011
000000100  0000 
0100
000000101  0000 
0101
000000110  0000 
0110
000000111  0000 
0111
000001000  0000 
1000
000001001  0000 
1001
000001010  0001 
0000
000001011  0001 
0001
000001100  0001 
0010
000001101  0001 
0011
* * *
001100001  1001 
0111
001100010  1001 
1000
001100011  1001 
1001
.e

Konwerter Bin2BCD na poziomie 

Konwerter Bin2BCD na poziomie 

logicznym

logicznym

AHDL/VHDL

background image

I

T
P

W

ZPT

17

Komputerowe projektowanie…

SPECYFIKACJA

FUNKCJONALNA

(HDL)

SYNTEZA

FUNKCJONALNA

OPIS RTL

TRANSLACJE

SPECYFIKACJI

SIEĆ

LOGICZNA

OPTYMALIZACJA

LOGICZNA

ODWZOROWANIE

TECHNOLOGICZN
E

24 LEs ─ 313 

mln/sek

background image

I

T
P

W

ZPT

18

.type fr
.i 9
.o 8
.p 100
000000000  0000 
0000
000000001  0000 
0001
000000010  0000 
0010
000000011  0000 
0011
000000100  0000 
0100
000000101  0000 
0101
000000110  0000 
0110
000000111  0000 
0111
000001000  0000 
1000
000001001  0000 
1001
000001010  0001 
0000
000001011  0001 
0001
000001100  0001 
0010
000001101  0001 
0011
* * *
001100001  1001 
0111
001100010  1001 
1000
001100011  1001 
1001
.e

Konwerter Bin2BCD na poziomie 

Konwerter Bin2BCD na poziomie 

logicznym

logicznym

AHDL/VHDL

background image

I

T
P

W

ZPT

19

Tablica prawdy – bin2bcd

TITLE " Decomposed project: bin2bcd ";
%   Translated from DEMAIN format   %
%  Warsaw University of Technology  %
%  Institute of Telecommunications  %
SUBDESIGN A
(
   in_1, in_2, in_3, in_4

   

:INPUT;

   in_5, in_6, in_7

   

:INPUT;

   out_1, out_2, out_3, out_4 :OUTPUT;
   out_5, out_6, out_7, out_8 :OUTPUT;
)
VARIABLE
   g1_1, g1_2, g1_3, g3_1

   :LCELL;

   g2_1, g2_2

   

   :LCELL;

BEGIN
---- Level 1 ----
TABLE
  (in_1, in_2, in_3, in_4) => (g1_1);
    B"1000" => B"0";
    B"0011" => B"0";
    .................
    B"0001" => B"1";
    B"1011" => B"1";
END TABLE;
TABLE
  (in_6, g1_1, g2_1, g2_2) => (out_7);
    B"0X10" => B"0";

    

.................

    B"1011" => B"1";
END TABLE;
END;

# Konwerter 
bin2bcd
.type fr
.i 7
.o 8
.p 100
0000000  00000000
0000001  00000001
0000010  00000010
0000011  00000011
0000100  00000100
0000101  00000101
. . . ..........
1011111  10010101
1100000  10010110
1100001  10010111
1100010  10011000
1100011  10011001
.e

Procedura syntezy 
logicznej 

 13 komórek 

(!!!)

19

352 
mln/sek

background image

I

T
P

W

ZPT

Realizacja programowa

Procesor AMD Athlon™ 
64X2 Dual Core 4200+ 

2.2 GHz

 – 

9,17 mln/sek

KONIEC

LOAD (LB)

LDA := 0
LDB := 0

LK := 8

LDB  5

LDB := LDB + 3

LDA := LDA + 3

LDA  5

START

LDA := SHL(LDA,LDB

3

)

LDB := SHL(LDB,LB

7

)

LB := SHL(LB)

LK := DEC(LK)

LD := LDA 

 LDB

NIE

TAK

NIE

NIE

TAK

TAK

LK = 0

background image

I

T
P

W

ZPT

21

Porównanie realizacji BIN2BCD

Synteza  strukturalna – 54 LEs ─ 33 

mln/sek

Synteza logiczna:

system komercyjny Quartus  – 24 LEs ─ 313 

mln/sek

system specjalizowany – 13 LEs ─ 352 

mln/sek

Liczba elementów logicznych ─ liczba 

słów

Procesor AMD Athlon™ 64X2 Dual Core 4200+ 

2.2 GHz – 9,17 mln/sek

background image

I

T
P

W

ZPT

Mając świadomość, 
że…

FP

GA

Specyfikacja HDL

Synteza 

funkcjonalna

Synteza logiczna

Odwzorowanie 

technologiczne

Specjalistyczne 

oprogramowanie

akademickie

metody syntezy 

logicznej są 

niedoskonałe

nowocześnie wykształcony

inżynier

System 
komercyjny

background image

I

T
P

W

ZPT

Niedoskonałość metod 

syntezy

f

Sieć dwupoziomowa

Sieć wielopoziomowa

FPGA

y = f(x

1

, x

2

, x

3

, x

4

) !!!

x

1

x

2

x

3

x

4

CLB

x

1

x

2

x

3

x

4

CLB


Document Outline