VLSI ??? ?? Project - PowerPoint PPT Presentation

1 / 73
About This Presentation
Title:

VLSI ??? ?? Project

Description:

VLSI Project Motion Estimator (2) C D E F ... – PowerPoint PPT presentation

Number of Views:131
Avg rating:3.0/5.0
Slides: 74
Provided by: Jun122
Category:

less

Transcript and Presenter's Notes

Title: VLSI ??? ?? Project


1
VLSI ??? ?? Project
  • Motion Estimator ??

2
Motion Estimation (ME)
  • ??? ??? ??
  • ?? ?? 8 x 8 Block
  • ?? ??? 16 x 16 Block
  • ?? ???? Full Search
  • ?? ?? ???
  • ??? ?? MVx, MVy

3
Full search (1)
  • ?? ??

-
4
Full search (2)
  • current block? ?? ??? ?? ?? ?? ??? ?? SAD ?? ???
    ?? ????.
  • ?? ??
  • ? ?? ???? ?? ?? ?? ??? ????.
  • ? ??? ?? ?? ???? 4x1 block ??.

1 clk
1 clk
4 clk? 4x4 block ? SAD ? ??
1 clk
1 clk
5
Frame ??
  • ??? ??? ??
  • 32 x 32 Block
  • ? ?? ??
    ?? ??
  • - 8 bit

6
Frame ??
  • ???? ??? ??

255
? ? ?
12
11
10
? ? ?
2
1
70
0
32 bit
7
? ? ? ? ?
  • Sum of Absolute Differences(SAD) UNIT

8
TOP Block Diagram (ME)
9
TOP Block (ME)
10
TOP Block (ME)
AGU module
11
SAD Top Block Diagram
SAD unit Block Diagram
12
Ripple Carry Adder
  • n-?? ?? ?? ???(RCA Ripple Carry Adder)? ??
    ?????
  • n?? full adder(FA)? ??? ???? ??
  • ? carry-out? ?????? ??? ???? ???? ?? ???????
    ????? ??

13
Carry Lookahead Adder (1)
  • Carry Lookahead Adder (CLA)
  • FA? ??? ?? ???? ?? ??? ??? ???(RCA? ?? ??)
  • i ?? stage??? carry generate function(Pi), carry
    propagate function(Gi)
  • Gi i?? stage??? carry-in? ???? ????
    ???(primary carry)? ??? ???? ??
  • Pi i?? stage??? carry-in? carry-out?? ???
    ? ???? ??

14
Carry Lookahead Adder (2)
  • i ?? stage??? ???
  • i ?? stage??? carry-out
  • Pi ? Gi ? ??? Si? Ci? ???
  • Pi ? Gi ? ?? ??? ????? ?? stage? carry-out?
    stage?? ?? ?? ?? ??

15
Carry Lookahead Adder (3)
  • 16-?? CLA? ?? ??
  • CLA ???? carry-in? ???? ?? ???? fan-in? ?????
    4-?? BCLU (Block CLU)? 8-?? CLU? ??? ???

16
Carry Lookahead Adder (4)
  • ?? ???? ? ???? ???(PGU)
  • ?? 16??? P, G ?? ??? ??

module name pgu_16bit Input (16bit) a,
b Output (16bit) p, g
17
Carry Lookahead Adder (5)
  • PGU

Input a, b
Output p, g
a 0011110110111011 b 1010001110111101
p 1001111000000110 g 0010000110111001
a 1100011000101011 b 0011011110111110
p 1111000110010101 g 0000011000101010
18
Carry Lookahead Adder (6)
  • ?? ?? ??? (BCLU)
  • 16-?? CLU? fan-in ??? ??,
  • 4?? 4-?? BCLU? 1?? CLU? ??, 2-??? ??

19
Carry Lookahead Adder (7)
  • BCLU

module name bclu_16bit Input (1bit)
cin Input (4bit) p, g Output (3bit) c Output
(1bit) ps, gs
  • BCLU unit? 4 ???? P? G, ??? 1 ???
  • Cin? ???? ??? 3??? ?? (C)? ?? ??
  • ?? (ps)? ?? ?? ?? (gs)? ??? ???.
  • cn gn pncn-1
  • ps p0 p1 p2 p3
  • gs g3 g2 p3 g1 p3 p2 g0 p3 p2
    p3

Input cin 1b0, p, g
Output c, ps, gs
20
Carry Lookahead Adder (8)
  • ?? ??? (CLU)
  • CLU unit? ?? 16 ?? ???? ???? 4??
  • BCLU??? ?? ps? gs? ???? ?? ?
  • 3??? ?? ??? ?????.
  • c4k3 gsk gsk-1psk-1
    gs0pskpsk-1 ps1
  • cin psk ps0

module name clu_16bit Input (1bit) cin Input
(4bit) ps, gs Output (3bit) c
Input cin, ps, gs
Output c
21
Carry Lookahead Adder (9)
  • ?? ?? (SU)

module name su_16bit Input (15bit) c Input
(1bit) cin Input (16bit) p Output (16bit) s
  • SU unit? 16?? p? 16?? c? ??? ??
  • 16?? ?? ?? ???? ??.
  • s p xor c

Input cin, c, p
Output s
22
Carry Lookahead Adder (10)
  • CLA top block

module name cla_16bit Input (16bit) a,
b Input (1bit) cin Output (16bit) s
  • Top block? 16??? ? ??? ?? 16???
  • ?? ??? ????. ?? ?? ??? ????
  • ???. ?? block diagram? ???? ???
  • ??? ????.

Input a, b, cin
Output s
Carry out
23
Register File (1)
  • Register file

module name reg_file Input (1bit) clk,
reset, cur_start Input (64bit) data_in Output
(64bit) cur_data, ref_data Output cnt1, cnt2
  • Register ??? 64??? ???? ?? ???
  • 8 ?? ?? current block ???? register? ??
  • ?? ? ??? current block ???? reference
  • block ???? ???? ????.

24
Register File (2)
  • Register file

???? ?? ? cnt, cnt0 ? ?? ??? ???? cnt? 07?? ??
??? ??? current register 8?? ????, cnt0? 816??
?? ??? ??? ?? ??? ??? ???? ????. ? ? register
file? ???? ??? dat_in_tmp? ???? ? ?? ?? current
register? ???? register file? ????
????. count_16 input clk, reset,
load(cur_start) output cnt_out(cnt),
cnt_out0(cnt0), cnt_out1(cnt1),
cnt_out2(cnt2) cnt0 ?? ?? register file? ?? ??
???? ?? ???? Hiz? ???? ????.
25
Register File (3)
  • Register file

Input clk, reset, cur_start, data_in
Output cur_data, ref_data
Hiz output
26
2s Complement
  • 2s complement

module name twos_com Input (8bit)
ref_data_8bit Output (16bit) com_out
  • ???? ???? 8bit unsigned ??
  • DATA?? 16bit signed ??? ????
  • ? ?? ?? ?? ???.

Input ref_data_8bit
146 ? -146
23 ? -23
200 ? -200
Output com_out
27
Absolute Block
  • Absolute

module name abs_mode Input (10bit)
abs_in Output (10bit) abs_out
  • ? ?? ADDER??? ?? DATA ?
  • (10?? ??? ??)? ???? ???.

Input abs_in
-393 ? 393
362 ? 362
-118 ? 118
Output abs_out
28
SAD Top Block (1)
  • SAD top

Register file? ???? top block? ??? ?, ? ??
complement unit? ?? ??. ?? Adder? ??? ???? 0??
???? complement unit? ???? ? ?? Adder (8?)? ????.
? ??? Absolute unit? ???? ?? ?? ???, ? ??? ? ??
Adder(4?)? ???? ?? ??? ???. ? ?? ? ?? Adder(2?)?
???? ? ??? ? ?? Adder(1?)? ???? 8 X 1? ??? ???.
??? ?? ?? (8 X 1? ?? 8?)? ??? 8 X 8? ?? SAD ??
??? ????. ?????? ?? ? ?? ??? ?(cnt1, cnt2)?
???? ?? SAD ??? ??? ??? CC Block? ??? ?? enable
(sig_sad_out) ??? ????.
module name top_sad_unit Input (1bit) clk,
reset, cur_start Input (64bit) data_in Output
(1bit) sig_sad_out Output (14bit) sad_out
29
SAD Top Block (2)
  • SAD top

Input clk, reset, cur_start, data_in
Output sad_out, sig_sad_out
Reference block data
SAD Value
Current block data
30
? ? ? ? ?
  • Motion Vector Generation

31
MV generation block
MV generation
clk
count
MV_gen
reset
Count 60
MV_X 30
en
MV_Y 30
Compare
SAD 130
exch
  • SAD? ??? ??? Search Window ??? SAD ?? ?? ?? ???
    MV ?? ??.

32
Counter (1)
  • ?? Search Window ???? MB? ?? ??? ?
  • ?? ?? clk, reset, en
  • en ? ?? SAD? ??? ???? ??? SAD? ??? ??? ???,
    en ??? ??? ??? count
  • ?? ?? count60

33
Counter (2)
  • ??? Search Window ??? MB? ?? ? ? ?? ??? count
  • ??? Search Window ??? ? 81?? MV? ??
  • MB? Search Window ??? ?? ? ???? ??? ?? ??? ? ???
    count? 1? ?? ??? ??? Search Window? ??? ??? ????
    ??? count? 81? ?

34
Counter (3)
1. ? 81?? count?? ??? ?
2. Counter? ?? ?? 0? ?? ?? ??? en ??? ??? ? count
35
Compare (1)
  • ?? ? MB? Search Window?? ????? ???? ??? SAD?
    ???? ??
  • ?? ?? clk, reset, en, SAD130
  • en ? ?? SAD? ??? ???? ??? SAD? ??? ??? ???
    en ??? ??? ??? count
  • SAD130 ? ??? ???? SAD ?,
  • ?? ?? exch
  • exch ?? ??? SAD ?? compare?? ??? ?? ?? ???
    ????? ??? exch ??? ???? mv ?? ????

36
Compare (2)
  • ???? SAD?? ??
  • Compare_old? ??? ???? ??? ??
  • -gt? Search Window? ? SAD? ???? compare_old? SAD??
    ?? ??
  • -gtSearch Window? ??? ?? ????? ??
  • Compare block?? ?? ??? SAD? compare_old? ?? ??
  • SAD? ? ??? compare_old update, exch ?? high
  • SAD? ? ?? compare_old ??? ??, exch ?? low

37
Compare (3)
1. Compare? ??? ???? ??? ??.
2. Compare? Search Window? ??? ?? ??? ?? ?????
??. -gt ?? Search Window? ?? SAD ??? ???? update
?? ??
38
Compare (4)
3. ????? SAD ?? ?? exch ?? high, ???? SAD ???
update.
4. ????? SAD ?? ?? exch ?? low, ???? ??? ??.
39
MV_generation (1)
  • ?? ? ???? count? exch ??? ?? ?? ?? MV? ??.
  • MB? Search Window? ?? ??? ??? ??? ?? ?? -4, -4?
    ??
  • ?? ?? clk, reset, count60, exch
  • Count count? ?? MV ?? ??
  • Exch MV ?? ??.
  • ?? ?? MV_X30, MV_Y30

40
MV_generation (2)
  • Compare ???? ?? exch ??? Counter ???? ?? count
    ??? ??? MV ?? ??
  • Exch ??? SAD ?? ?? ? ??? high? ??, ? ? count? ??
    MB? Search Window? ??? ???? ? ? ??
  • Search Window ??? ???? MV ?? ??? ??? ???? ????
    ???? MV ?? ???

41
MV_generation(3)
  • MV? ?? ??
  • exch ?? high? ? ??? count? ?? ???? MV?? ??(case?
    ??)
  • ?) count? 1? ?? (-4,-4), count? 9? ??
    (-4,4), count? 81? ?? (4,4)
  • SAD? ?? ??? ??? ????? MV?? (0,0)??? ?

-4,4, count9
-4,2, count7
-4,0, count5
-4,-4, count1
42
MV_generation (4)
1. ???(-4,-4), exch ??? high?? ? ?? count ?? ???
MV ? ??
2. Count? 81? ?? ??? Search Window? ??? ??? MV?
??? ?
43
? ? ? ? ?
  • Address Generation Unit(AGU)

44
Memory (1)
  • ??? ??? ???
  • current frame
  • CLK ??
  • WE write enable (1 ?? ??, 0 ?? ??)
  • A ??
  • D ???? ? data
  • SPO ????? ??? data

45
Memory (2)
  • ??? ??? ???
  • reference frame
  • CLK ??
  • WE write enable (1 ?? ??, 0 ?? ??)
  • A ??
  • D ???? ? data
  • SPO ????? ??? data

46
Address Generation Unit (AGU) (1)
  • ?????? ???? ?? ?? ?? ?? ??
  • ??? ???? ???? ???? ?? ??? ??? ?? ???? ?? ???
  • ??? ??? ??.
  • clk posedge? ????? ??
  • rst set ?? ???
  • enable set ???? ?? ??
  • data_bus 4 x 1 ??? ??? (64bit) ? clk ? ??
  • start_tran ?? ??? ???? ?? ?? ?? set

47
Address Generation Unit (AGU) (2)
  • ????? ??

48
Address Generation Unit (AGU) (3)
  • ?? ???
  • data_bus 4 x 1 ?? ??
  • start_tran ? ?? ??
  • ???? ?? ?? ??
  • set ???? ??? current block ???? ??.
  • clear ???? ??? reference block ???? ??.
  • ?? ???? ??? ???? ??? SAD ?? ????.

49
AGU ??
  • AGU ??? ??? ??
  • ??? ???? ?? ???? ??.
  • SAD ??? ?? data? ?? ?? ??.

50
?? ??? ?? ?? (1)
  • ?? (I)
  • ???? ?? ??? ???? ?? ??? ?? ??

clk
ctrl_cur_addr_gen
get_cur_row_block
rst
cur_block_cnt
enable
cnt_1block
  • get_cur_row_block ???? ?? ???.
  • cur_block_cnt ???? ?? ?? ??.
  • cnt_1block current? ? ??? ???? ??? ???.
  • ???? ???? ????.

???? ???? ? ??? ??
51
?? ??? ?? ?? (2)
  • ctrl_cur_regAB ??
  • ??? ???? A,B (32bit x 8)? ??.
  • ? ? ????? current block ? ???? ??? ??.
  • ??? ??? ??? ? ????? ??? ?? ????.

0
0
1
1
2
2
3
3
4
4
5
5
6
6
7
7
A
B
52
?? ??? ?? ?? (3)
  • ?? ??? ???? ??
  • ? ?? ??? ??? ????? ??? ?? ? 672 clk
  • ?? 16 clk ?? ?? ??? ?? ??? ?? ??.
  • ?? ??? ????? ? ? ??? ??? ?? ??.
  • ?? ?? ??? ???? ??.
  • ?? ??? ?? ?? ??? ?? ?? ??.
  • ???? ????? ??? ? ??? ??? ??? ?? ??? ???

C
D
E
F
???? ???? ? ??? ??
A
B
53
?? ??? ?? ?? (4)
  • ?? ???? ?? ?? (cur_block_cnt)
  • ? ??? ??? ?? ? ?? ??? ?? ???.
  • ? ?? ?? ? ??? ?? ? 672 clk

54
?? ??? ?? ?? (5)
  • ?? (II)
  • ??? ??? ???? ?? ?? ?? ??

clk
cur_block_addr_gen
rst
cur_addr
get_cur_row_block
cur_block_cnt
  • cur_block_cnt ???? ?? ?? ??.
  • get_cur_row_block ?? ?? ???.
  • cur_addr ??? ??? ??? ? ?? ??? ?? ?? ??.

???? ???? ??
55
?? ??? ?? ?? (6)
  • ?? ?? ??
  • ??? 8? ???? ?? ??
  • current ? ? ?? 8x8
  • 0, 8, 16 ... 56, 1, 9 ...

16 clk, ?? ?? ??? ??
56
?? ??? ??? ?? (I)
  • ?? (III)
  • cnt_1block? ??? ???? ????AB? ?? ? ??? ?? ?? ??

???? ???? ? ??
  • data_bus_cur cnt_1block ?? ???? ?? ??? ??

??????? ?? ?? ??
57
?? ??? ??? ?? (II)
  • ??? ?? ??
  • ??? 8? ???? ?? ??
  • current ? ? ?? 8x8
  • 0, 8, 16 ... 56, 1, 9 ...

16 clk, ?? ?? ??? ?? reg AB
8 clk, ?? ?? ??? ??
58
?? ??? ?? ?? (1)
  • ?? (IV)
  • ?? ??? ?????? ?? ? ???? ?? ??? ?? ??

clk
get_ref_row_block
ctrl_ref_addr_gen
rst
get_bottom_ref_row_block
enable
ref_x
cur_block_cnt
( -4, -4 )
ref_y
cnt_1block
  • get_ref_row_block ???? ?? ??? 1
  • get_bottom_row_block ???? ?? ??? 2
  • ref_x, ref_y get ?? ??? ???? ??? ? ?? ??

??????? ?? ??
??????? ?? ?? ??? 1
59
?? ??? ?? ?? (2)
  • ?? ???
  • ??? ? ?? ?? ref_x, ref_y

-4 , -4
  • get_xxx ??? ??? ? ??? ??? ? ?? ?? ? ?? ??.
  • ?? ???? ? ?? ??? ????? ????? ??? ??.

60
?? ??? ?? ?? (3)
  • ?? ?? ???
  • ?? 1? ??? get_ref_row_block ??.
  • ?? 2? ??? get_bottom_row_block ?? ?? ???.

32 clk, ??? ??1
4 clk, ??? ??2
61
?? ??? ?? ?? (4)
  • ?? (V)
  • ??? ??? ???? ???? ?? ?? ??

clk
ref_block_addr_gen
rst
get_bottom_ref_block
ref_addr
get_ref_row_block
overflow
ref_x
ref_y
  • ref_addr ??? ??? ??? ? ?? ??? ?? ???? ??.
  • overflow ??? ????? ???? ??? ?? ?? ??? set ??
    ??.

?? ???? ? ? ?? ??
???? ??? ??? overflow ??
62
?? ??? ?? ?? (5)
  • Overflow ?
  • ???? ??? ??
  • overflow ? ? ??? ?? ?? ?? 0 ?? ??.

overflow ? ??
63
?? ??? ?? ?? (6)
  • ????? ?? ???? ??
  • overflow? ? ??? ??? 0?? ??.
  • ???? ??? ref_x, ref_y ? ?? ?? ?? tref_x, tref_y?
    ??.
  • ??? ?? ?? ??? ?? ??? ?? ??.
  • ref_addr 8 (tref_y) tref_x/4
  • (x, y)
  • (0, 0) 0
  • (4, 0) 1
  • (8, 8) 8 8 2 66
  • (-4, 0) 0
  • (0, -4) 0

x
y
64
?? ??? ??? ?? (I)
  • ?? (IV)
  • cnt_1block ? ??? ?? ?? ??? 4x1 ??? ?? ?? ??

clk
ctrl_ref_regCDEF
rst
overflow
data_bus_ref
cnt_1block
ref_data_from_mem
  • ref_data_from_mem ???? ?? ?? ???
  • data_bus_ref cnt_1block ?? ???? ?? ???? ????.
  • ??? ? ?? ???? ?? (C,D,E,F)? ??? ?? ?? ???? ?? ???
    ??? ??? ????.

65
?? ??? ??? ?? (II)
  • ??

???? ??? ??? ???
?? ???? CDEF ?? ???
66
?? ??? ??? ?? (2)
  • ??? ?? ??

D
E
F
D
E
F
C
C
  • ? ?? ????? ?? ??? ???? ???? ?????.
  • ???? ????? ??? ? ??.
  • 8 x 8 ??? ??? ? ? ?? ?????.
  • ?? 8 x 8 ??? ??? ? ? ?? ?????.
  • 9?? ??? ????.

67
?? ??? ???? (1)
  • ??? ??? ??
  • ??? ???? C,D,E,F (32bit x 8)? ??.
  • ? ? ????? ?? ???? reference block ? ???? ??? ??.
  • ??? ??? ??? ? ????? ??? ?? ????.

C
D
E
F
68
?? ??? ???? (2)
  • ??? ??? ??
  • 1 row? ??? ??? ??? 2 row? ??? ?? ??.
  • ??? ??? ??? ?? ?? ??? ?? ? ?? ???? ?? ?? ??.

D
E
F
C
tF
tC
tD
tE
69
?? ??? ???? (3)
  • ??? ??? ??
  • ? ?? row ??? ??? ?? ? ??? ?? ??? ??.
  • ??, ??? ????? ?? ?? ? ? ??? ?? ????.

D
E
F
C
tF
tC
tD
tE
70
?? ??? ???? (4)
  • tC, tD, tE, tF ???? ??? ?? ???

???? ??? ??? ???
?? ???? CDEF ?? ???
71
?? ??? ?? ??
  • ?? ?? ??
  • data_bus_cur ? data_bus_ref ? AGU? ?? data_bus?
    ????
  • start_tran ??? ???? ?? ??? ??.

data_bus_cur
data_bus
data_bus_ref
start_tran
72
Next Generation System Engines
  • Wireless Modem Technology Trend
  • ?? Dedicated Modem H/W
  • ?? DSP Processor
  • ?? ASDSP Processor Reconfigurable DSPs
  • ?? ??? ???
  • ??? Architecture? H/W ??? ??? ?? ??
  • S/W? ???? ?? H/W ?? ??? ??? ???? ??
  • ??? Paradigm? S/W tool ??
  • Reconfigurable DSP? ???? S/W ?? ?? ??? ??

System ?? ?? ?? (Simulator / DSP ??)
73
Next Generation System Engines
  • Future SOC Architecture
  • Application-specific
  • Reconfigurable
  • Heterogeneous
  • Multi-CPU
  • Multi-CPU, Multi-DSP ? ??? high performance SOC
    ??
  • Flexible? ??? ?? (Reconfigurable Logic)
  • Multi-standard, Multi-carrier, Multi-service ??
    (??? Peripheral)
Write a Comment
User Comments (0)
About PowerShow.com