Bài giảng Thiết kế vi mạch số với HDL - Chương 9: Giải thuật và kiến trúc cho các bộ xử lý số

High-level design: hiện thực kiến trúc sẽ thực hiện

một giải thuật cái mà có thể hoàn thành bằng bộ xử

lý thông thường (general processor)

• High-level design hoàn thành 2 công việc

 Xây dựng 1 giải thuật hiện thực một đặc tả hành vi (ví dụ:

thiết kế bộ lọc thông thấp thỏa yêu cầu hiệu suất)

 Ánh xạ giải thuật vào kiến trúc sẽ hiện thực hành vi bằng

phần cứng

• Bắt đầu với một giải thuật tính toán sẽ được hiện

thực bằng phần cứng

• Tập trung vào:

 Phá triển 1 bộ xử lý giải thuật

 Chọn lựa tradeoff các kiến trúc

 Đặc tả Verilog

 Tổng hợp

pdf46 trang | Chuyên mục: Thiết kế vi mạch số | Chia sẻ: dkS00TYs | Ngày: 15/10/2014 | Lượt xem: 1177 | Lượt tải: 5download
Tóm tắt nội dung Bài giảng Thiết kế vi mạch số với HDL - Chương 9: Giải thuật và kiến trúc cho các bộ xử lý số, để xem tài liệu hoàn chỉnh bạn click vào nút "TẢI VỀ" ở trên
m
p
u
te
r 
E
n
g
in
e
e
ri
n
g
 2
0
0
9 Data-Flow graph
• DFG: đồ thị có hướng và không có vòng G(V,E) V là
tập hợp các đỉnh và E là tập hợp các cạnh
• Mỗi node viV biễu diễn cho một đơn vị chức năng
(Functional Unit - FU), nó xử lý đầu vào và sinh ra
dữ liệu ngõ ra
• 1 FU có thể thực hiện 1 hành động đơn hay 1 chuỗi
hành đồng
• 1 cạnh eijE có hướng biễu diễn dữ liệu sinh ra từ
node vi và đi vào vj
• Phụ thuộc dữ liệu giữa 2 cặp đỉnh vi và vj trên cạnh
eij nếu và chỉ nếu vj sử dụng kết quả của vi và vj sẽ
không thể hoàn thành cho đến khi vi hoàn thành
(c) 2009 Department of Computer Engineering 7Thiết kế vi mạch số với HDL
C
o
m
p
u
te
r 
E
n
g
in
e
e
ri
n
g
 2
0
0
9 Cần phải làm gì?
• Chuyển đổi từ DFG cho 1 giải thuật thành cấu
trúc phần cứng
 Một sự phân chia giữa đơn vị điều khiển và dòng dữ
liệu (ASMD)
• Chỉ rõ 1 cấu trúc cho dòng dữ liệu
• Thiết kế bộ điều khiển cho dòng dữ liệu của giải
thuật
(c) 2009 Department of Computer Engineering 8Thiết kế vi mạch số với HDL
C
o
m
p
u
te
r 
E
n
g
in
e
e
ri
n
g
 2
0
0
9 Từ NLP-algorithms đến HW-architecture
• Nguyên tắc: 
 Baseline architecture cho 1 processor và datapath
hiện thực cho 1 DFG  1 tập hợp các FU kết nối
theo cấu trúc của DFG
(c) 2009 Department of Computer Engineering 9Thiết kế vi mạch số với HDL
C
o
m
p
u
te
r 
E
n
g
in
e
e
ri
n
g
 2
0
0
9 Design flow
(c) 2009 Department of Computer Engineering 10Thiết kế vi mạch số với HDL
C
o
m
p
u
te
r 
E
n
g
in
e
e
ri
n
g
 2
0
0
9 Cải tiến baseline design
• Re-composition: cắt các FU thành 1 chuỗi các
chức năng thực thi có thứ tự  tiết kiệm
hardware
• Pipelining: thêm các thanh ghi vào trong các
đường dữ liệ để thu ngắn đường tính toán
• Replication: sử dụng nhiều bộ xử lý để tăng
performance
(c) 2009 Department of Computer Engineering 11Thiết kế vi mạch số với HDL
C
o
m
p
u
te
r 
E
n
g
in
e
e
ri
n
g
 2
0
0
9 Ví dụ halftone image converter
• Floyd-Steinberg algorithm
 Chuyển đổi một ảnh N-dòng M-cột pixels, mỗi pixel 
có n-bit, thành ảnh đen trắng
 Phân phối giá trị lỗi do làm tròn khi chuyển đổi từ n-bit 
về 1 bit cho một tập con các pixel lân cận
 Dựa vào trọng số trung bình
(c) 2009 Department of Computer Engineering 12Thiết kế vi mạch số với HDL
Phân phối lỗi Nhận giá trị lỗi
C
o
m
p
u
te
r 
E
n
g
in
e
e
ri
n
g
 2
0
0
9 Dataflow graph
(c) 2009 Department of Computer Engineering 13Thiết kế vi mạch số với HDL
Node giả (dùng để tính cho các pixel ở bìa)
C
o
m
p
u
te
r 
E
n
g
in
e
e
ri
n
g
 2
0
0
9 Giải thuật
• Tại mỗi pixel (i,j), giá trị lỗi trung bình (E-av) 
được tính bằng
 Với wi là các trọng số không âm
 wT = w1 + w2 + w3 + w4
• Giá trị pixel được tính bằng
• CPV sẽ được làm tròn thành 0 hoặc 1 bằng
 Với trường hợp n = 8 bit, CPV_max = 255, 
CPV_thresh = 128
• HTPV = CPV_round và e[i,j] = CPV - HTPV
(c) 2009 Department of Computer Engineering 14Thiết kế vi mạch số với HDL
TwjiewjiewjiewjiewavE /])1,1[*4]1,[*3]1,1[*2],1[*1(_ 
avEjiPVCPV _],[ 
1:0?__ threshCPVCPVroundCPV 
C
o
m
p
u
te
r 
E
n
g
in
e
e
ri
n
g
 2
0
0
9 Giải thuật (tt)
• Dãy các node trong DFG đồng dạng với dãy các pixel
• Thêm vào cột bên trái, bên phải và hàng trên cùng với các giá trị
Error là 0
• NLP in C:
(c) 2009 Department of Computer Engineering 15Thiết kế vi mạch số với HDL
C
o
m
p
u
te
r 
E
n
g
in
e
e
ri
n
g
 2
0
0
9 Baseline design cho HPIC
• Kiến trúc đơn giản nhất
• Mô hình tập trung vào phần cứng và cấu trúc
 Cần 1 dãy 48 processor
 Thời gian xử lý phụ thuộc vào đường dài nhất
• Thiết kế khả tổng hợp thành mạch tổ hợp và
không cần bộ điều khiển
(c) 2009 Department of Computer Engineering 16Thiết kế vi mạch số với HDL
C
o
m
p
u
te
r 
E
n
g
in
e
e
ri
n
g
 2
0
0
9 Testbench – sharp image constract
(c) 2009 Department of Computer Engineering 17Thiết kế vi mạch số với HDL
(w1, w2, w3, w4) = (2, 8, 4, 2)
C
o
m
p
u
te
r 
E
n
g
in
e
e
ri
n
g
 2
0
0
9 Testbench – graduated image constract
(c) 2009 Department of Computer Engineering 18Thiết kế vi mạch số với HDL
(w1, w2, w3, w4) = (2, 8, 4, 2)
C
o
m
p
u
te
r 
E
n
g
in
e
e
ri
n
g
 2
0
0
9 Baseline Design
(c) 2009 Department of Computer Engineering 19Thiết kế vi mạch số với HDL
C
o
m
p
u
te
r 
E
n
g
in
e
e
ri
n
g
 2
0
0
9 Baseline Design (tt)
(c) 2009 Department of Computer Engineering 20Thiết kế vi mạch số với HDL
C
o
m
p
u
te
r 
E
n
g
in
e
e
ri
n
g
 2
0
0
9 Baseline Design (tt)
(c) 2009 Department of Computer Engineering 21Thiết kế vi mạch số với HDL
C
o
m
p
u
te
r 
E
n
g
in
e
e
ri
n
g
 2
0
0
9 Baseline Design (tt)
(c) 2009 Department of Computer Engineering 22Thiết kế vi mạch số với HDL
C
o
m
p
u
te
r 
E
n
g
in
e
e
ri
n
g
 2
0
0
9 Kiến trúc NLP-Based cho HPIC
(c) 2009 Department of Computer Engineering 23Thiết kế vi mạch số với HDL
C
o
m
p
u
te
r 
E
n
g
in
e
e
ri
n
g
 2
0
0
9 Kiến trúc NLP-Based cho HPIC (tt)
(c) 2009 Department of Computer Engineering 24Thiết kế vi mạch số với HDL
C
o
m
p
u
te
r 
E
n
g
in
e
e
ri
n
g
 2
0
0
9 Kiến trúc NLP-Based cho HPIC (tt)
(c) 2009 Department of Computer Engineering 25Thiết kế vi mạch số với HDL
Level sensitive
C
o
m
p
u
te
r 
E
n
g
in
e
e
ri
n
g
 2
0
0
9 Kiến trúc NLP-Based cho HPIC (tt)
(c) 2009 Department of Computer Engineering 26Thiết kế vi mạch số với HDL
C
o
m
p
u
te
r 
E
n
g
in
e
e
ri
n
g
 2
0
0
9 Kiến trúc NLP-Based cho HPIC (tt)
(c) 2009 Department of Computer Engineering 27Thiết kế vi mạch số với HDL
C
o
m
p
u
te
r 
E
n
g
in
e
e
ri
n
g
 2
0
0
9 Kiến trúc NLP-Based cho HPIC (tt)
(c) 2009 Department of Computer Engineering 28Thiết kế vi mạch số với HDL
C
o
m
p
u
te
r 
E
n
g
in
e
e
ri
n
g
 2
0
0
9 Kiến trúc NLP-Based cho HPIC (tt)
(c) 2009 Department of Computer Engineering 29Thiết kế vi mạch số với HDL
C
o
m
p
u
te
r 
E
n
g
in
e
e
ri
n
g
 2
0
0
9 Kiến trúc NLP-Based cho HPIC (tt)
(c) 2009 Department of Computer Engineering 30Thiết kế vi mạch số với HDL
C
o
m
p
u
te
r 
E
n
g
in
e
e
ri
n
g
 2
0
0
9 Kiến trúc máy tuần tự cho HPIC
• Cần bộ nhớ nhưng giải phóng bus hệ thống khi
bộ xử lý đang thực thi
• Có thể thiết kế chỉ sử dụng 1 FU với bộ nhớ và
bộ điều khiển để chuyển đổi ảnh trong 48 chu kỳ
(Ảnh 6x8)
• Viết một hành vi vòng biểu diễn giải thuật các
vòng lặp lồng nhau và để bộ tổng hợp tạo tự
động kiến trúc cho mạch => Không cần hiện
thực bộ điều khiển (image_converter_1)
(c) 2009 Department of Computer Engineering 31Thiết kế vi mạch số với HDL
C
o
m
p
u
te
r 
E
n
g
in
e
e
ri
n
g
 2
0
0
9 Kiến trúc máy tuần tự cho HPIC
(c) 2009 Department of Computer Engineering 32Thiết kế vi mạch số với HDL
Kiến trúc dãy pixel 2 chiều MxN
C
o
m
p
u
te
r 
E
n
g
in
e
e
ri
n
g
 2
0
0
9 Chuẩn bị cho image_converter_1
• Khai báo 1 dãy các word cho các hàng pixel
• Đặt tuần tự các hàng trong các vòng lặp for bên trong một hành vi 
vòng
• Thực hiện phép gán thủ tục (=)
• Viết các lệnh (statement) biểu diễn sự phụ thuộc dữ liệu sẽ được
thực thi bởi FU
• Thực hiện chuyển đổi ảnh trong 1 chu kỳ
• Dùng tín hiệu Go để điều khiển thực thi chuyển đổi ảnh
• Dùng tín hiệu Done để thông báo việc chuyển đổi hoàn tất
• Dùng tín hiệu reset để đưa hệ thống về trạng thái ban đầu
(c) 2009 Department of Computer Engineering 33Thiết kế vi mạch số với HDL
C
o
m
p
u
te
r 
E
n
g
in
e
e
ri
n
g
 2
0
0
9 Hiện thực image_converter_1
(c) 2009 Department of Computer Engineering 34Thiết kế vi mạch số với HDL
C
o
m
p
u
te
r 
E
n
g
in
e
e
ri
n
g
 2
0
0
9 Hiện thực image_converter_1 (tt)
(c) 2009 Department of Computer Engineering 35Thiết kế vi mạch số với HDL
C
o
m
p
u
te
r 
E
n
g
in
e
e
ri
n
g
 2
0
0
9 Hiện thực image_converter_1 (tt)
(c) 2009 Department of Computer Engineering 36Thiết kế vi mạch số với HDL
C
o
m
p
u
te
r 
E
n
g
in
e
e
ri
n
g
 2
0
0
9 Hiện thực image_converter_1 (tt)
(c) 2009 Department of Computer Engineering 37Thiết kế vi mạch số với HDL
C
o
m
p
u
te
r 
E
n
g
in
e
e
ri
n
g
 2
0
0
9 Hiện thực image_converter_1 (tt)
(c) 2009 Department of Computer Engineering 38Thiết kế vi mạch số với HDL
C
o
m
p
u
te
r 
E
n
g
in
e
e
ri
n
g
 2
0
0
9 Hiện thực image_converter_1 (tt)
(c) 2009 Department of Computer Engineering 39Thiết kế vi mạch số với HDL
C
o
m
p
u
te
r 
E
n
g
in
e
e
ri
n
g
 2
0
0
9 Hiện thực image_converter_1 (tt)
(c) 2009 Department of Computer Engineering 40Thiết kế vi mạch số với HDL
C
o
m
p
u
te
r 
E
n
g
in
e
e
ri
n
g
 2
0
0
9 Kiểm tra image_converter_1
(c) 2009 Department of Computer Engineering 41Thiết kế vi mạch số với HDL
C
o
m
p
u
te
r 
E
n
g
in
e
e
ri
n
g
 2
0
0
9 Kiểm tra image_converter_1 (tt)
(c) 2009 Department of Computer Engineering 42Thiết kế vi mạch số với HDL
C
o
m
p
u
te
r 
E
n
g
in
e
e
ri
n
g
 2
0
0
9 Kiểm tra image_converter_1 (tt)
(c) 2009 Department of Computer Engineering 43Thiết kế vi mạch số với HDL
C
o
m
p
u
te
r 
E
n
g
in
e
e
ri
n
g
 2
0
0
9 Kiểm tra image_converter_1 (tt)
(c) 2009 Department of Computer Engineering 44Thiết kế vi mạch số với HDL
C
o
m
p
u
te
r 
E
n
g
in
e
e
ri
n
g
 2
0
0
9 Kiểm tra image_converter_1 (tt)
(c) 2009 Department of Computer Engineering 45Thiết kế vi mạch số với HDL
C
o
m
p
u
te
r 
E
n
g
in
e
e
ri
n
g
 2
0
0
9 Kết quả mô phỏng
(c) 2009 Department of Computer Engineering 46Thiết kế vi mạch số với HDL
(w1, w2, w3, w4) = (2, 8, 4, 2)
Kết quả mô phỏng cho các bộ image_convert là giống nhau

File đính kèm:

  • pdfBài giảng Thiết kế vi mạch số với HDL - Chương 9 Giải thuật và kiến trúc cho các bộ xử lý số.pdf