ạng dữ liệu ảnh YCrCb 8 bit sang dạng RGB 10 bit cho phù ập phân, trong khi đó các phép toán của phần cứng được ủa Pixel được tách ra.. ược tách ra.c t ng h p ch th c hi n trên s nguyên
Trang 12 KH I CONVERT YCRCB TO RGB ỐI CONVERT YCRCB TO RGB
2.1S Đ KH I Ơ ĐỒ KHỐI Ồ KHỐI ỐI CONVERT YCRCB TO RGB
Hình 11.1: S đ c a kh i Convert YCrCb to RGB ơ đồ của khối Convert YCrCb to RGB ồ của khối Convert YCrCb to RGB ủa khối Convert YCrCb to RGB ối Convert YCrCb to RGB
CLK
Xung clock 27Mhz t kit DE2.ừ kit DE2
RESET Reset h th ng.ệ thống ống
iY[7:0]
Thành ph n đ sáng (Luma) c a Pixel đần độ sáng (Luma) của Pixel được tách ra ộ sáng (Luma) của Pixel được tách ra ủa Pixel được tách ra ược tách ra.c tách ra iCb[7:0]
Thành ph n Cb c a Pixel đần độ sáng (Luma) của Pixel được tách ra ủa Pixel được tách ra ược tách ra.c tách ra
iCr[7:0]
Thành ph n Cr c a Pixel đần độ sáng (Luma) của Pixel được tách ra ủa Pixel được tách ra ược tách ra.c tách ra
Red[9:0]
Thành ph n Red c a Pixel tần độ sáng (Luma) của Pixel được tách ra ủa Pixel được tách ra ương ứng.ng ng.ứng
Green[9:0]
Thành ph n Green c a Pixel tần độ sáng (Luma) của Pixel được tách ra ủa Pixel được tách ra ương ứng.ng ng.ứng
Blue[9:0]
Thành ph n Blue c a Pixel tần độ sáng (Luma) của Pixel được tách ra ủa Pixel được tách ra ương ứng.ng ng.ứng
Trang 2Kh i này chuy n đ i t d ng d li u nh YCrCb 8 bit sang d ng RGB 10 bit cho phùống ổi từ dạng dữ liệu ảnh YCrCb 8 bit sang dạng RGB 10 bit cho phù ừ kit DE2 ạng dữ liệu ảnh YCrCb 8 bit sang dạng RGB 10 bit cho phù ữ liệu ảnh YCrCb 8 bit sang dạng RGB 10 bit cho phù ệ thống ả ạng dữ liệu ảnh YCrCb 8 bit sang dạng RGB 10 bit cho phù
h p v i yêu c u ngõ vào c a VGA DAC là ADV7123 Dợc tách ra ần độ sáng (Luma) của Pixel được tách ra ủa Pixel được tách ra ư i đây là công th c chuy n đ i sangứng ổi từ dạng dữ liệu ảnh YCrCb 8 bit sang dạng RGB 10 bit cho phù
d ng RGB 8 bit:ạng dữ liệu ảnh YCrCb 8 bit sang dạng RGB 10 bit cho phù
R = 1.164 ( Y - 16 ) + 1.596 ( Cr – 128 ) ;
G = 1.164 ( Y - 16) - 0.392 ( Cb - 128 ) - 0.813 ( Cr - 128 ) ;
B = 1.164 ( Y - 16 ) + 2.017 ( Cb – 128 ) ; Sau đó đ có d ng RGB 10 bit thì ta d ch trái 2 bit ( nhân 4 ) nên có công th c m i:ạng dữ liệu ảnh YCrCb 8 bit sang dạng RGB 10 bit cho phù ịch trái 2 bit ( nhân 4 ) nên có công thức mới: ứng
R’ = 4.656 ( Y - 16 ) + 6.384 ( Cr - 128 ) ; G’ = 4.656 ( Y - 16 ) - 1.568 ( Cb - 128 ) - 3.252 ( Cr - 128 );
B’ = 4.656 ( Y - 16 ) + 8.068 ( Cb - 128 ) ;
Do các h s có d ng th p phân, trong khi đó các phép toán c a ph n c ng đệ thống ống ạng dữ liệu ảnh YCrCb 8 bit sang dạng RGB 10 bit cho phù ập phân, trong khi đó các phép toán của phần cứng được ủa Pixel được tách ra ần độ sáng (Luma) của Pixel được tách ra ứng ược tách ra.c
t ng h p ch th c hi n trên s nguyên nên khi làm tròn và tính toán thì sai s khá l n, vìổi từ dạng dữ liệu ảnh YCrCb 8 bit sang dạng RGB 10 bit cho phù ợc tách ra ệ thống ống ống
v y ta ph i nhân bi u th c trên v i m t s nguyên H nào đó đ gi m b t sai s khi làmập phân, trong khi đó các phép toán của phần cứng được ả ứng ộ sáng (Luma) của Pixel được tách ra ống ả ống tròn các h s , sau đó tính toán bi u th c r i chia l i cho H S nguyên H ta ch n có d ngệ thống ống ứng ồi chia lại cho H Số nguyên H ta chọn có dạng ạng dữ liệu ảnh YCrCb 8 bit sang dạng RGB 10 bit cho phù ống ọn có dạng ạng dữ liệu ảnh YCrCb 8 bit sang dạng RGB 10 bit cho phù
2k thì thay vì th c hi n phép chia cho A ta ch c n d ch ph i k bit đây ta ch n k = 7 hay Hệ thống ần độ sáng (Luma) của Pixel được tách ra ịch trái 2 bit ( nhân 4 ) nên có công thức mới: ả Ở đây ta chọn k = 7 hay H ọn có dạng
= 128 thì đô chính xác c a h s sẽ đ n ch s th 2 sau d u ph y Ta có công th c cu iủa Pixel được tách ra ệ thống ống ến chữ số thứ 2 sau dấu phẩy Ta có công thức cuối ữ liệu ảnh YCrCb 8 bit sang dạng RGB 10 bit cho phù ống ứng ấu phẩy Ta có công thức cuối ẩy Ta có công thức cuối ứng ống cùng (đã làm tròn đ tính toán trên các s nguyên) : ống
oR = (596 Y + 817Cr – 114131) : 128 ;
oG = (596 Y – 200Cb – 416Cr + 69370) : 128 ;
oB = (596 Y + 1033Cb – 141781) : 128 ;
Đ th c hi n công th c trên ta ti n hành theo các bệ thống ứng ến chữ số thứ 2 sau dấu phẩy Ta có công thức cuối ư c:
Nhân các thành ph n Y, Cb, Cr v i các h s tần độ sáng (Luma) của Pixel được tách ra ệ thống ống ương ứng.ng ng r i c ng chúng l i, sứng ồi chia lại cho H Số nguyên H ta chọn có dạng ộ sáng (Luma) của Pixel được tách ra ạng dữ liệu ảnh YCrCb 8 bit sang dạng RGB 10 bit cho phù ử
d ng b t ng h p c ng nhân ( ALTMULT_ADD ) trong th vi n c a Quartus :ộ sáng (Luma) của Pixel được tách ra ổi từ dạng dữ liệu ảnh YCrCb 8 bit sang dạng RGB 10 bit cho phù ợc tách ra ộ sáng (Luma) của Pixel được tách ra ư ệ thống ủa Pixel được tách ra
Ph n Menu >> Tools >> MegaWizard Plug_in Manager… >> Create … t o customần độ sáng (Luma) của Pixel được tách ra ạng dữ liệu ảnh YCrCb 8 bit sang dạng RGB 10 bit cho phù
m i, đ t tên là MAC3ặt tên là MAC3 ; ch n ph n Arithmetic>>ALTMULT_ADD V i các thông s đọn có dạng ần độ sáng (Luma) của Pixel được tách ra ống ược tách ra.c ch nọn có dạng
nh sau:ư
- Tính oG c n 3 phép nhân : s lần độ sáng (Luma) của Pixel được tách ra ống ược tách ra.ng b nhân là 3.ộ sáng (Luma) của Pixel được tách ra
- Y,Cb,Cr là s 8 bit dống ương ứng.ng: đ r ng ngõ vào A là 8, ki u d li u không d uộ sáng (Luma) của Pixel được tách ra ộ sáng (Luma) của Pixel được tách ra ữ liệu ảnh YCrCb 8 bit sang dạng RGB 10 bit cho phù ệ thống ấu phẩy Ta có công thức cuối (Unsigned)
- Trong các h s có s âm nên, giá tr l n nh t là 1033 (s 11 bit) : đ r ngệ thống ống ống ịch trái 2 bit ( nhân 4 ) nên có công thức mới: ấu phẩy Ta có công thức cuối ống ộ sáng (Luma) của Pixel được tách ra ộ sáng (Luma) của Pixel được tách ra ngõ vào B là 11, ki u d li u có d u (signed)ữ liệu ảnh YCrCb 8 bit sang dạng RGB 10 bit cho phù ệ thống ấu phẩy Ta có công thức cuối
Trang 3- Ch n hàm gi a hai b nhân đ u tiên (first pair of multiplier) là phép c ngọn có dạng ữ liệu ảnh YCrCb 8 bit sang dạng RGB 10 bit cho phù ộ sáng (Luma) của Pixel được tách ra ần độ sáng (Luma) của Pixel được tách ra ộ sáng (Luma) của Pixel được tách ra (Add) Khi t ng h p xong ta đổi từ dạng dữ liệu ảnh YCrCb 8 bit sang dạng RGB 10 bit cho phù ợc tách ra ược tách ra.c m t kh i v i khai báo nh sau :ộ sáng (Luma) của Pixel được tách ra ống ư
module MAC_3 ( dataa_0,
dataa_1, dataa_2, datab_0, datab_1, datab_2, result, aclr0, clock0);
Trong đó:
- Ngõ vào đi u khi n : xóa b t đ ng b aclr0 và xung clock làm vi c clock0ều khiển : xóa bất đồng bộ aclr0 và xung clock làm việc clock0 ấu phẩy Ta có công thức cuối ồi chia lại cho H Số nguyên H ta chọn có dạng ộ sáng (Luma) của Pixel được tách ra ệ thống
- Các ngõ vào d li u là dataa_0; dataa_1; dataa_2 là các s 7 bit không d u;ữ liệu ảnh YCrCb 8 bit sang dạng RGB 10 bit cho phù ệ thống ống ấu phẩy Ta có công thức cuối datab_0; datab_1; datab_2 là các s 11 bit có d u;ống ấu phẩy Ta có công thức cuối
- Ngõ ra là d li u 21 bit có d u:ữ liệu ảnh YCrCb 8 bit sang dạng RGB 10 bit cho phù ệ thống ấu phẩy Ta có công thức cuối
result = (dataa_0 × datab_0) + (dataa_1 × datab_1) + (dataa_2 × datab_2)
Chú ý: data_b0, data_b1, data_b2 là các h s công th c đã tính trên:ệ thống ống ở công thức đã tính ở trên: ứng ở công thức đã tính ở trên: 596d =
254h , 817d = 331h , -200d = F38h (s bù hai),ống -416d = E60h (s bù hai), 1033ống d = 409h V y đập phân, trong khi đó các phép toán của phần cứng được
th c hi n bệ thống ư c này ta sẽ g i các kh i MAC_3 nh sau:ọn có dạng ống ư
MAC_3 u0( iY, iCb, iCr,
11'h254, 11'h000, 11'h331,
X, iRESET, iCLK);
MAC_3 u1( iY, iCb, iCr,
11'h254, 11'hF38, 11'hE60,
Y, iRESET, iCLK);
MAC_3 u2( iY, iCb, iCr,
11'h254, 11'h409, 11'h000,
Z, iRESET, iCLK);
Sau đó tr (c ng) v i các s h ng còn l i r i chia cho 128 b ng cách d ch ph i 7 bit:ừ kit DE2 ộ sáng (Luma) của Pixel được tách ra ống ạng dữ liệu ảnh YCrCb 8 bit sang dạng RGB 10 bit cho phù ạng dữ liệu ảnh YCrCb 8 bit sang dạng RGB 10 bit cho phù ồi chia lại cho H Số nguyên H ta chọn có dạng ằng cách dịch phải 7 bit: ịch trái 2 bit ( nhân 4 ) nên có công thức mới: ả
X_OUT <= ( X - 114131 ) >>7;
Trang 4Y_OUT <= ( Y + 69370 ) >>7;
Z_OUT <= ( Z - 141787 ) >>7;
Tuy nhiên khi các giá tr R, G, B địch trái 2 bit ( nhân 4 ) nên có công thức mới: ược tách ra.c tính theo công th c trên thì có th là s âmứng ống
ho c vặt tên là MAC3 ược tách ra.t quá 1023 (10 bit ) vì v y ta gi i h n l i giá tr vào trong kho ng 0 đ n 1023:ập phân, trong khi đó các phép toán của phần cứng được ạng dữ liệu ảnh YCrCb 8 bit sang dạng RGB 10 bit cho phù ạng dữ liệu ảnh YCrCb 8 bit sang dạng RGB 10 bit cho phù ịch trái 2 bit ( nhân 4 ) nên có công thức mới: ả ến chữ số thứ 2 sau dấu phẩy Ta có công thức cuối
if(X_OUT[13])
oRed<=0;
else if(X_OUT[12:0]>1023)
oRed<=1023;
Th c hi n tệ thống ương ứng.ng t v i 2 thành ph n còn l i thì d li u kh i xu t ra sẽ là d ngần độ sáng (Luma) của Pixel được tách ra ạng dữ liệu ảnh YCrCb 8 bit sang dạng RGB 10 bit cho phù ữ liệu ảnh YCrCb 8 bit sang dạng RGB 10 bit cho phù ệ thống ống ấu phẩy Ta có công thức cuối ạng dữ liệu ảnh YCrCb 8 bit sang dạng RGB 10 bit cho phù RGB phù h p v i yêu c u đ t ra.ợc tách ra ần độ sáng (Luma) của Pixel được tách ra ặt tên là MAC3
3.1 S Đ KH I Ơ ĐỒ KHỐI Ồ KHỐI ỐI CONVERT YCRCB TO RGB
Hình 12.1: S đ c a kh i VGA Controller ơ đồ của khối Convert YCrCb to RGB ồ của khối Convert YCrCb to RGB ủa khối Convert YCrCb to RGB ối Convert YCrCb to RGB
CLK Xung clock 27Mhz t kit DE2.ừ kit DE2
RESET Tín hi u reset do kh i Timer trì hoãn ban đ u cung c p.ệ thống ống ần độ sáng (Luma) của Pixel được tách ra ấu phẩy Ta có công thức cuối
oRequest Tín hi u đi u khi n cho phép xu t d li u t SDRAM BUFFERvà l u các giá tr c a Line Pixel vào kh i Line Buffer.ư ệ thống. ều khiển : xóa bất đồng bộ aclr0 và xung clock làm việc clock0 ịch trái 2 bit ( nhân 4 ) nên có công thức mới: ủa Pixel được tách ra. ấu phẩy Ta có công thức cuối ữ liệu ảnh YCrCb 8 bit sang dạng RGB 10 bit cho phù ệ thống.ống. ừ kit DE2. oVGA_BLANK
oVGA_SYNC
oVGA_VS
oVGA_HS
Các chân này được tách ra.c g n tắn tương ứng vào chip giải mã ADV7123 ương ứng.ng ng vào chip gi i mã ADV7123ứng ả
và c ng VGA trên kit DE2 đ đ ng b vi c xu t ra monitor cácổi từ dạng dữ liệu ảnh YCrCb 8 bit sang dạng RGB 10 bit cho phù ồi chia lại cho H Số nguyên H ta chọn có dạng ộ sáng (Luma) của Pixel được tách ra ệ thống ấu phẩy Ta có công thức cuối frames nh Do xu t nh theo chu n VGA 640 x 480 nên chânả ấu phẩy Ta có công thức cuối ả ẩy Ta có công thức cuối VGA_SYNC luôn ph i đ t m c cao đ đ m b o vi c đ ng b ả ặt tên là MAC3 ở công thức đã tính ở trên: ứng ả ả ệ thống ồi chia lại cho H Số nguyên H ta chọn có dạng ộ sáng (Luma) của Pixel được tách ra VGA_X[0] Cho bi t v trí c a Pixel là ch n hay l đ đi u khi n vi c tách ến chữ số thứ 2 sau dấu phẩy Ta có công thức cuối ịch trái 2 bit ( nhân 4 ) nên có công thức mới: ủa Pixel được tách ra ẵn hay lẻ để điều khiển việc tách ẻ để điều khiển việc tách ều khiển : xóa bất đồng bộ aclr0 và xung clock làm việc clock0 ệ thống
Trang 5các thành ph n Y, Cr, Cb trong kh i x lý nh YUVần độ sáng (Luma) của Pixel được tách ra ống ử ả VGA_Y[0] Cho bi t Line sẽ hi n th trên màn hình là thu c Odd Frame hayEven Frame đ ch n d li u đ a ra t SDRAM BUFFERến chữ số thứ 2 sau dấu phẩy Ta có công thức cuối ọn có dạngệ thống. ữ liệu ảnh YCrCb 8 bit sang dạng RGB 10 bit cho phù ệ thống.ịch trái 2 bit ( nhân 4 ) nên có công thức mới: ư ừ kit DE2. ộ sáng (Luma) của Pixel được tách ra.
Các chân d li u iRed, iGreen, iBlue đữ liệu ảnh YCrCb 8 bit sang dạng RGB 10 bit cho phù ệ thống ược tách ra.c n i tr c ti p v i ngõ ra VGA_R, VGA_G,ống ến chữ số thứ 2 sau dấu phẩy Ta có công thức cuối VGA_B Ngõ ra oVGA_CLOCK là ngh ch đ o c a ngõ vào CLK ịch trái 2 bit ( nhân 4 ) nên có công thức mới: ả ủa Pixel được tách ra
3.2 L U Đ GI I THU T ƯU ĐỒ GIẢI THUẬT Ồ KHỐI Ả ẬT
Gi i thu t t o tín hi u đ ng b đ giao ti p v i VGA là t o các b đ m v i cácả ập phân, trong khi đó các phép toán của phần cứng được ạng dữ liệu ảnh YCrCb 8 bit sang dạng RGB 10 bit cho phù ệ thống ồi chia lại cho H Số nguyên H ta chọn có dạng ộ sáng (Luma) của Pixel được tách ra ến chữ số thứ 2 sau dấu phẩy Ta có công thức cuối ạng dữ liệu ảnh YCrCb 8 bit sang dạng RGB 10 bit cho phù ộ sáng (Luma) của Pixel được tách ra ến chữ số thứ 2 sau dấu phẩy Ta có công thức cuối thông s chu n đ t o ra các tín hi u đ ng b theo gi n đ th i gian:ống ẩy Ta có công thức cuối ạng dữ liệu ảnh YCrCb 8 bit sang dạng RGB 10 bit cho phù ệ thống ồi chia lại cho H Số nguyên H ta chọn có dạng ộ sáng (Luma) của Pixel được tách ra ả ồi chia lại cho H Số nguyên H ta chọn có dạng ời gian:
Trang 6Hình 12.2: Vùng hi n th trong m t chu kỳ quét v i tình hi u reset t h th ng ển thị trong một chu kỳ quét với tình hiệu reset từ hệ thống ị trong một chu kỳ quét với tình hiệu reset từ hệ thống ột chu kỳ quét với tình hiệu reset từ hệ thống ới tình hiệu reset từ hệ thống ệu reset từ hệ thống ừ hệ thống ệu reset từ hệ thống ối Convert YCrCb to RGB
T các thông s đ nh thì cho chu n VGA 640ừ kit DE2 ống ịch trái 2 bit ( nhân 4 ) nên có công thức mới: ẩy Ta có công thức cuối x 480 60Hz trên, do xung clock trongở công thức đã tính ở trên: thi t k có t n s 27Mến chữ số thứ 2 sau dấu phẩy Ta có công thức cuối ến chữ số thứ 2 sau dấu phẩy Ta có công thức cuối ần độ sáng (Luma) của Pixel được tách ra ống hz nên ta ch n các giá tr tọn có dạng ịch trái 2 bit ( nhân 4 ) nên có công thức mới: ương ứng.ng ng cho các thông s nh sau:ứng ống ư
a) Đ i v i VGA_HS (tín hi u đ ng b quy đ nh th i gian hi n th 1 hàng trong 1ống ệ thống ồi chia lại cho H Số nguyên H ta chọn có dạng ộ sáng (Luma) của Pixel được tách ra ịch trái 2 bit ( nhân 4 ) nên có công thức mới: ời gian: ịch trái 2 bit ( nhân 4 ) nên có công thức mới: chu kỳ quét ngang):
H_FRONT = 16, H_SYNC = 96, H_BACK = 48, H_ACT = 640
Nh v y khi hi n th xong 1 hàng thì ph i ch 1 kho ng th i gian là ư ập phân, trong khi đó các phép toán của phần cứng được ịch trái 2 bit ( nhân 4 ) nên có công thức mới: ả ời gian: ả ời gian:
H_BLANK = H_FRONT + H_SYNC + H_BACK = 160 (đ n v là s chu kỳ xung clock) thì hi n th hàng m i Lúc này th i gian quét ngang là:ơng ứng ịch trái 2 bit ( nhân 4 ) nên có công thức mới: ống ịch trái 2 bit ( nhân 4 ) nên có công thức mới: ời gian: H_TOTAL = H_BLANK + H_ACT = 800
b) Đ i v i VGA_VS(tín hi u đ ng b quy đ nh th i gian hi n th 1 frame trong 1ống ệ thống ồi chia lại cho H Số nguyên H ta chọn có dạng ộ sáng (Luma) của Pixel được tách ra ịch trái 2 bit ( nhân 4 ) nên có công thức mới: ời gian: ịch trái 2 bit ( nhân 4 ) nên có công thức mới: chu kỳ quét toàn b màn hình): ộ sáng (Luma) của Pixel được tách ra
V_FRONT = 11; V_SYNC = 2; V_BACK = 31; V_ACT = 480
Nh v y khi hi n th xong 1 frame thì ph i ch 1 kho ng th i gian là:ư ập phân, trong khi đó các phép toán của phần cứng được ịch trái 2 bit ( nhân 4 ) nên có công thức mới: ả ời gian: ả ời gian:
V_BLANK = V_FRONT + V_SYNC + V_BACK = 44 (đ n v là chu kỳ xung quét ngang VGA_HS) thì hi n th frame m i Th i gian quét mànơng ứng ịch trái 2 bit ( nhân 4 ) nên có công thức mới: ịch trái 2 bit ( nhân 4 ) nên có công thức mới: ời gian: hình là:
V_TOTAL = V_BLANK + V_ACT= 524
L u đ gi i thu t t o VGA_VS cũng đư ồi chia lại cho H Số nguyên H ta chọn có dạng ả ập phân, trong khi đó các phép toán của phần cứng được ạng dữ liệu ảnh YCrCb 8 bit sang dạng RGB 10 bit cho phù ược tách ra.c th c hi n tệ thống ương ứng.ng t ch khác là V_Cont
được tách ra.c đ m lên sau m i c nh lên c a VGA_HS.ến chữ số thứ 2 sau dấu phẩy Ta có công thức cuối ỗi cạnh lên của VGA_HS ạng dữ liệu ảnh YCrCb 8 bit sang dạng RGB 10 bit cho phù ủa Pixel được tách ra
3.3 MÔ TẢ
Kh i sẽ t o các tín hi u đi u khi n cho ADV7123 và đ ng b vi c truy xu t, x lýống ạng dữ liệu ảnh YCrCb 8 bit sang dạng RGB 10 bit cho phù ệ thống ều khiển : xóa bất đồng bộ aclr0 và xung clock làm việc clock0 ồi chia lại cho H Số nguyên H ta chọn có dạng ộ sáng (Luma) của Pixel được tách ra ệ thống ấu phẩy Ta có công thức cuối ử
d li u v i các kh i khác d a trên các tín hi u đ nh thì quét ngang và quét d c ữ liệu ảnh YCrCb 8 bit sang dạng RGB 10 bit cho phù ệ thống ống ệ thống ịch trái 2 bit ( nhân 4 ) nên có công thức mới: ọn có dạng nh ư sao:
T o tín hi u quét ngang VGA_HS v i b đ m lên H_Cont :ạng dữ liệu ảnh YCrCb 8 bit sang dạng RGB 10 bit cho phù ệ thống ộ sáng (Luma) của Pixel được tách ra ến chữ số thứ 2 sau dấu phẩy Ta có công thức cuối
always@(posedge iCLK or negedge iRST_N) begin
if(!iRST_N) begin
H_Cont <= 0;
oVGA_HS <= 1;
Trang 7end else begin
if( H_Cont < H_TOTAL ) H_Cont <= H_Cont+1'b1;
else H_Cont <= 0;
//đ a VGA_HS v 0 t ưa VGA_HS về 0 tương ứng với khoảng thời gian Horizontal SYNC ề 0 tương ứng với khoảng thời gian Horizontal SYNC ưa VGA_HS về 0 tương ứng với khoảng thời gian Horizontal SYNCơ đồ của khối Convert YCrCb to RGB ng ng v i kho ng th i gian Horizontal SYNC ứng với khoảng thời gian Horizontal SYNC ới tình hiệu reset từ hệ thống ảng thời gian Horizontal SYNC ời gian Horizontal SYNC
if(H_Cont == H_FRONT-1) oVGA_HS <= 1'b0;
if(H_Cont == H_FRONT+H_SYNC-1) oVGA_HS <= 1'b1;
end end
T o tín hi u quét d c VGA_VS v i b đ m V_Cont theo c nh lên c a VGA_HS:ạng dữ liệu ảnh YCrCb 8 bit sang dạng RGB 10 bit cho phù ệ thống ọn có dạng ộ sáng (Luma) của Pixel được tách ra ến chữ số thứ 2 sau dấu phẩy Ta có công thức cuối ạng dữ liệu ảnh YCrCb 8 bit sang dạng RGB 10 bit cho phù ủa Pixel được tách ra
always@(posedge oVGA_HS or negedge iRST_N)
begin
if(!iRST_N) begin
V_Cont <= 0;
oVGA_VS <= 1;
end else begin
if(V_Cont < V_TOTAL) V_Cont <= V_Cont+1'b1;
Else V_Cont <= 0;
//đ a VGA_HS v 0 t ưa VGA_HS về 0 tương ứng với khoảng thời gian Horizontal SYNC ề 0 tương ứng với khoảng thời gian Horizontal SYNC ưa VGA_HS về 0 tương ứng với khoảng thời gian Horizontal SYNCơ đồ của khối Convert YCrCb to RGB ng ng v i kho ng th i gian Hrizontal SYNC ứng với khoảng thời gian Horizontal SYNC ới tình hiệu reset từ hệ thống ảng thời gian Horizontal SYNC ời gian Horizontal SYNC
if(V_Cont == V_FRONT-1) oVGA_VS <= 1'b0;
Trang 8if(V_Cont == V_FRONT+V_SYNC-1) oVGA_VS <= 1'b1;
end end
Sau đó xu t các tính hi u đi u khi n khác:ấu phẩy Ta có công thức cuối ệ thống ều khiển : xóa bất đồng bộ aclr0 và xung clock làm việc clock0
//tích c c tín hi u BLANK đ xóa các Flicker: ực tín hiệu BLANK để xóa các Flicker: ệu reset từ hệ thống ển thị trong một chu kỳ quét với tình hiệu reset từ hệ thống
assign oVGA_BLANK = ~((H_Cont < H_BLANK) || (V_Cont <_BLANK));
//oRquest lên 1 th i gian hi n th frame trong m t chu kỳ quét màn hình: ở thời gian hiển thị frame trong một chu kỳ quét màn hình: ời gian Horizontal SYNC ển thị trong một chu kỳ quét với tình hiệu reset từ hệ thống ị trong một chu kỳ quét với tình hiệu reset từ hệ thống ột chu kỳ quét với tình hiệu reset từ hệ thống
assign oRequest = ( ( H_Cont >= H_BLANK && H_Cont < H_TOTAL )
&& ( V_Cont>=V_BLANK && V_Cont<V_TOTAL ) );
//tính toán v trí X,Y c a Pixel trong frame (X ị trong một chu kỳ quét với tình hiệu reset từ hệ thống ủa khối Convert YCrCb to RGB : v trí pixel trong hàng và Y ị trong một chu kỳ quét với tình hiệu reset từ hệ thống : //v trí ị trong một chu kỳ quét với tình hiệu reset từ hệ thống hàng trong frame) :
assign oCurrent_X = (H_Cont>=H_BLANK)? H_Cont-H_BLANK : 11'h0;
assign oCurrent_X = (V_Cont>=V_BLANK)? V_Cont-V_BLANK : 11'h0;
Nh v y k t khi b t đ u quét 1 frame thì ph i ch 1 kho ng th i gian có đ dài làư ập phân, trong khi đó các phép toán của phần cứng được ừ kit DE2 ắn tương ứng vào chip giải mã ADV7123 ần độ sáng (Luma) của Pixel được tách ra ả ời gian: ả ời gian: ộ sáng (Luma) của Pixel được tách ra (V_BLANK × H_TOTAL) + H_ BLANK = 35360 (chu kỳ) thì oRequest m i được tách ra.c tích c c
[1] Stuart Sutherland, Simon Davidmann, Peter Flake, System Verilog for Design.
[2] DAVID R SMITH, PAUL D FRANZON, verilog styles for Synthesis of Digital Systems.
[3] D Vanden Bout, VGA Generator for the XSA Boards, XESS Corporation, October 12, 2004
[4] J BHASKER, A Verilog HDL Primer
[5] T R PADMANABHAN, B BALA TRIPURA SUNDARI, Design Through Verilog HDL
[6] FPGA Design with Verilog
[7] Peter J Ashenden, Digital Design