CHƯƠNG 1. GIỚI THIEU DE TÀẦI.---2- 22 £+E£2EE£2EE£2EE+EEEEEEvEEEeExerrxreri 2 1. Tổng quan để tài.----:- s5 5x+SE£EEEEE£EEEEEEEEEE12112112212112112112111111 1. Giới hạn đề tài.----s-5cSt SE 2 EE21121127121121111121111111 1111111111 crrre.--2- 22 5¿2E£2EE2EE+2EEtEEEvEEEvrEeerkerrxeers 5 2.
Không Ø1an màU.- - - << + 11 E119 9190019 HH 5 “AC con. Tính di động (MetastabilIfy)).- - c SH HH HH ng ng rưệp 9 2. Vượt miền xung clock (Clock domain crOSSIR8)). Tổng quan về UVM.
Cầu trúc của UVM testbench.-- - c6 Sk+k‡E£EE+EeEeEEeEeEkreererkexereree 18 CHƯƠNG 3. THIẾT KE VIDEO FRAME BUFFER. Kiến trúc hệ thống. - -- +: 2-1 t9EE9EE9EE9EE9E15215212111111221111111 111.
FIFO bat đồng bộ (Asynchronous FIFO). Dual Port RAÌM.- - -ccG 11111111100 111 11H 1kg kg kg ket 35 3.- -- 6 + 1k1 TH HH TH TH HH 38 ho 00) 7. P2B Last Pixel Data. Byte To Pixel COTIV€TẨ€T.
TH HH nkrry 56 3. B2P read ready oo. eee ee ceseescececsecesecsecesecsseesecssessesesesssessesseeesesseeeseeneees 59 3. B2P Last Byte ÏDafa.
- LH HT TH HH HH ng kg, 62 3. MO PHONG VÀ ĐÁNH GIA KET QUA. Sử dụng UVM dé mô phỏng và kiểm tra thiết kế. Với trường hợp tốc độ ghi dir liệu nhanh hơn tốc độ đọc dữ liệu.
Với trường hợp tốc độ ghi dữ liệu chậm hơn tốc độ đọc dif liệu. Darh gid két 0 sa. KET LUẬN VA HƯỚNG PHAT TRIÉN. Huong phat tri@n 018.
82 DANH MỤC HÌNH Hình 1.1: Ung dụng của Video Frame Buffer.2: Cách Video Frame Buffer lưu trữ và hiển thị dữ liệu [4].1: Không gian màu RGB [5] .-- --- ---- 5 <6 S1 TH ng ng, 5 Hình 2.2: Không gian màu Y’CDCr [6] .-- -- --- 2 2321333 E+*EE+*EEEEeeEseeeeeeeseeerre 7 Hình 2.3: Các chuỗi gray €Ode.4: Mach logic chuyền đổi từ số nhị phân sang gray code.5: Tính di động trong mạch kỹ thuật SỐ 0 5 9 Hình 2.6: Set-up time va hold-time [14] .-- - <5 + + £+*kE++v+seeEeseeseeeeeses 10 Hình 2.7: Ngõ ra khi bị metastable [Š].8: Đồng bộ tín hiệu bang hai thanh ghi [14].--- 2-2 225z+s22sz2sz2s++2 12 Hình 2.9: Clock domain crossing (CDC) [I Ï]|.- --- «<< «<< £+see++eexssexs 13 Hình 2.10: Phân cấp các lớp cơ sở trong UVM [18] .--¿--¿-¿5cs+5csz55s+2 14 Hình 2.11: Uvm_report_object [ ].12: Các trường bên trong một resource [ Í8].- - ------««++s>++se++eex+sss+ 17 Hình 2.13: Cách resource được lưu trong Resource database [18].14: Cau trúc của UVM testbench.15: Ví dụ về uvm_sequence_item [ 1] .--- -«++s««++sxx+se+seeeseeeeeeeess 19 Hình 2.16: Hệ thống phân cấp lớp của UVM sequence [1§].17: Hoạt động của UVM sequencer [18] .-- - c1 113219 1 191 1 HH ng 21 Hình 2.1: Kiến trúc Video Frame BufFer.----- 2+ 2++2E£+EE+EEzE+rxerxrrreerkeee 24 Hình 3.2: Interface của kiến trúc Video Frame Buffer.3: Interface của module Sync ]D€t€C(OT.4: Kiến trúc của FIFO đồng bộ [13].--- 2-2 2 22 +2 ++E++E+zE+zE++xezreee 27 Hình 3.5: Tín hiệu day và rỗng trong FIFO bat đồng bộ [2]. Kiến trúc của FIFO bất đồng bộ [2] .-------¿--¿¿+x++z++zx+zseze- 30 Hình 3.7: Biến đôi con trỏ đọc từ binary sang gray code .8: Biến đổi con trỏ ghi từ binary sang gray code.9: Interface của module RAM Controller. ---- 55+ «+ £++s£es++eeess 35 Hình 3.10: Interface của RAM MemOrV/. --- G1 9g ng ngư 39 Hình 3.11: Interface cua module Pixel To Byte ConvVert€r.12: Interface của module P2B_index.
eee ccccccccccccceeeeesssssseseeseeseseeess 42 Hình 3.13: Lưu đồ thuật toán cho index của Pixel To Byte với dữ liệu 24 bit.14: Lưu đồ thuật toán cho index của Pixel To Byte với dit liệu 18 bit.15: Lưu đồ thuật toán cho index của Pixel To Byte với dữ liệu 16 bịt.16: Lưu đồ thuật toán cho index của Pixel To Byte với dữ liệu 12 bịt.17: Interface của module P2B_ datavalid. - ---- E E SE xxx *<<<<+ 49 Hình 3.18: Lưu đồ thuật toán xác định dữ liệu hợp lệ trong P2B_ datavalid.19: Interface của module P2B_ lastpixeldafa.-- -¿- 5s c+xs+ecscss51 Hình 3.20: Lưu đồ thuật toán cho module P2B_lastpixeldafa.21: Interface của module P2B_ byfe_ đafa.22: Lưu đồ thuật toán cho byte data của Pixel To Byte với dit liệu 24 bit .23: Lưu đồ thuật toán cho byte data của Pixel To Byte với dit liệu 18 bit .24: Lưu đồ thuật toán cho byte data của Pixel To Byte với dit liệu 12 bit.25: Interface của module Byte To Pixel Converf€T.26: Interface của module B2P_ Index.27: Lưu đồ thuật toán tính toán chỉ số cho Byte To Pixel.28: Interface của module B2P_read_ready. ee eeeceeeeeeeneeeeeeeeneeeseeeeneeeees 59 Hình 3.29: Lưu đồ giải thuật tính toán ram_read_ready với dữ liệu 24 bit.30: Lưu đồ giải thuật tính toán ram_read_ready với dữ liệu 18 bịt.31: Lưu đồ giải thuật tính toán ram_read_ready với dữ liệu 16 bịt.32: Lưu đồ giải thuật tính toán ram_read_ready với dữ liệu 12 bịt.33: Interface của module B2P_ lastbytedafa.34: Interface của module B2P_pixeldata .-- ---- 5 555 5<*++*c+scc+seese 63 Hình 3.35: Lưu đồ thuật toán cho pixel data của Byte To Pixel với dữ liệu 24 bit.36: Lưu đồ thuật toán cho pixel data của Byte To Pixel dữ liệu 18 bit (1).37: Lưu đồ thuật toán cho pixel data của Byte To Pixel dữ liệu 18 bit (2).38: Luu đồ thuật toán cho pixel data của Byte To Pixel với dit liệu 16 bit .39: Luu đồ thuật toán cho pIxel data của Byte To Pixel với dữ liệu 12 bit.1: Mô phỏng với tốc độ ghi nhanh đọc khi dữ liệu chưa sẵn sang .2: Dạng sóng với tốc độ ghi nhanh hon đọc khi dữ liệu chưa sẵn sàng.3: Mô phỏng với tốc độ ghi nhanh hơn đọc khi FIFO chưa đầy.4: Dạng sóng với tốc độ ghi nhanh hơn đọc khi FIFO chưa đây.5: Mô phỏng với tốc độ ghi nhanh hơn đọc khi FIFO day .6: Dạng sóng với tốc độ ghi nhanh hơn đọc khi FIFO đây.7: Mô phỏng với tốc độ ghi chậm hơn đọc khi dữ liệu chưa sẵn sàng .8: Dạng sóng với tốc độ ghi chậm hơn đọc khi dữ liệu chưa sẵn sàng.9: Mô phỏng với tốc độ ghi chậm hơn đọc khi dữ liệu sẵn sàng.10: Dạng sóng với tốc độ ghi chậm hơn đọc khi dữ liệu sẵn sàng .11: Dạng sóng với tốc độ ghi chậm hơn đọc khi đã hết dữ liệu lưu sẵn.12: Mô phỏng với tốc độ ghi chậm hơn đọc khi đã hết dit liệu lưu sẵn.13: Báo cáo tóm tat sau khi xác minh bằng UVM.14: Tài nguyên sử dung (graph),.-- --- se xxx se.15: Tài nguyên sử dung (fabl€) .- - ---- 5 + SE E*vESseeEesereeeerrereree 78 Hình 4.16: Tổng hợp năng lượng sử dụng.17: Nang lượng sử dụng trên chip.- --- + Sc sex E+ekkeeseererreeersrree 79 Hình 4.18: Lattice Semiconductor Video Frame Buffer [2].-------- 5< <<79 DANH MỤC BANG Bảng 2.1: Các thuộc tính trong không gian màu Y *CbCT.2: Các macros cho UVIT_ T€DOFK.4: Các trường bên trong MOt f€SOUTCC .1: Dia chỉ cua FIFO với trường hợp FIFO sử dụng 3 bit địa chỉ.2: So sánh sự khác nhau giữa binary và gray COdEe.3: So sánh con trỏ ở dạng nhị phân va con trỏ ở dang gray code.4: Các tín hiệu trong module RAM ControlÏer.5: Các tín hiệu trong module RAM Memory .6: Các tín hiệu trong module P2B_ index. - ---- s5 ss++ss+ssex+eeeesess 42 Bảng 3.7: Index của Pixel To Byte với dữ liệu 24 ĐI(.6: Index của Pixel To Byte với dữ liệu 18 DI(.9: Index của Pixel To Byte với dữ liệu 16 ĐI(.10: Index của Pixel To Byte với dữ liệu 12 bit.11: Các tín hiệu trong module B2P_Index.-- s55 s+++<*s++se++sex+sess 57 DANH MỤC TỪ VIET TAT Từ viết tắt Từ đầy đủ IP Intellectual property UVM Universal Verification Methodology MTBF Mean time between failures FIFO First in first out CDC Clock domain crossing MSB Most significant bit LSB Least significant bit RAM Random-access memory P2B Pixel To byte B2P Byte To pixel VFB Video Frame Buffer SoC System on Chip RTL Register transfer level TOM TAT KHÓA LUẬN Thời đại ngày nay, công nghệ đang phát triển với tốc độ rất nhanh, kèm theo đó là độ phổ biến của các thiết bị điện tử như tivi, máy tính, điện thoại càng ngày càng cao.
Dé cho các thiết bị ké trên có thé hoạt động và hiển thị nội dung một cách mượt mà thì không thể không nhắc đến IP cho bộ đệm video, cũng chính là IP được nghiên cứu và thiết kế trong đề tài này. Đề tài “Thiết kế IP cho bộ đệm video” tập trung vào công việc nghiên cứu và thiết kế IP có chức năng lưu trữ tạm thời các khung hình trong video. Bộ đệm video hay Video Frame Buffer được sử dụng dé lưu trữ tạm thời các khung hình video trong quá trình xử lý và hiến thị. Cụ thé hơn, Video Frame Buffer lưu trữ các khung hình dưới dạng từng pixel trong khung hình đó.
Các thiết bị điện tử sử dụng Video Frame Buffer có thé xuất hình anh ra một cách liên tục, từ đó mang lại trải nghiệm mượt mà hơn cho người dùng. Đề tài nghiên cứu và sử dụng ngôn ngữ mô tả phần cứng Verilog, SystemVerilog dé có thé hiện thực các module cần thiết cho IP như Pixel To Byte, Byte To Pixel, Dual Port RAM, Output Pixel Data, Sync Detector. Dé có thể thiết kế những module kể trên, cần phải tim hiểu về các thiết kế bat đồng bộ như Asynchronous FIFO hay các van đề như Crossing clock domain. [2] Dé kiểm tra độ chính xác của thiết kế, đề tài xây dựng môi trường UVM để xác minh chức năng của thiết kế.
UVM sẽ tạo ra các kịch bản kiểm thử ngẫu nhiên cho các module. Với từng trường hợp sẽ có các trường dữ liệu ngõ vào được tạo ngau nhiên từ đó có thé tìm được các van đề nếu có bên trong thiết kế mà khi sử dụng các testbench thông thường không thể bao quát được, đảm bảo cho thiết kế có thê hoạt động đúng với chức năng mong muốn. GIỚI THIỆU DE TÀI 1. Téng quan đề tài Ngày này, nhu cầu cho các thiết bị điện tử như tivi, máy tính, điện thoại, máy ảnh kỹ thuật số hay các thiết bị điện tử tiêu dùng khác ngày càng tăng cao và dần trở thành một phần không thé thiếu trong đời sống hàng ngày ở trong công việc hay giải trí của đại đa sô mọi người.1: Ung dụng của Video Frame Buffer Dé cho các thiết bị kể trên có thé hoạt động một cách hiệu quả, đem lại chất lượng hiển thị tốt nhất cho người sử dụng thì một thành phần không thẻ thiếu trong các thiết bị này chính là Video Frame Buffer, hay còn gọi là bộ đệm video.
Video Frame Buffer là một bộ đệm lưu trữ dữ liệu trong một video hay chính là các khung hình trong video đó. Cụ thể, mỗi khung hình sẽ được tạo nên từ rất nhiều pixel tùy thuộc vào kiểu dữ liệu, có thể ké đến như Full HD (1920x1080) gồm có 2.600 pixel hay HD (1280x720) gồm có 921.600 pixel [3], bộ đệm sẽ lưu trữ từng pixel này và xuất chúng ra sau đó. Video Frame Buffer lưu trữ các khung hình video tam thời, nó cho phép các thiết bị xử lý video mượt mà hơn bằng cách tạo ra các khung hình liên tục. Nhờ vào đó, tránh được việc video khi hiển thị bị ngắt ngãng hay hiển thị những hình ảnh không đúng với mong muốn.
Cách Video Frame Buffer lưu trữ và hiển thị dit liệu được minh họa ở Hình 1.