Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 24 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
24
Dung lượng
1,52 MB
Nội dung
ĐẠI HỌC QUỐC GIA HÀ NỘI TRƢỜNG ĐẠI HỌC CÔNG NGHỆ PHẠM ĐỨC HIẾU CƠNG NGHỆ LẬP TRÌNH FPGA VÀ ỨNG DỤNG XỬ LÝ DỮ LIỆU ĐA PHƢƠNG TIỆN Ngành: Công nghệ thông tin Chuyên ngành: Kỹ thuật phần mềm Mã số: 6048013 NGƢỜI HƢỚNG DẪN KHOA HỌC: TS LÊ QUANG MINH Hà Nội 2016 LỜI MỞ ĐẦU Trong năm gần với phát triển công nghệ bán dẫn việc tạo vi xử lý vi điều khiển, hệ thống đo lường điều khiển ngày thông minh hơn, giải nhiều toán phức tạp Tuy nhiên hệ thống ngày hồn thiện hơn, thơng minh vi xử lý vi điều khiển chưa thể đáp ứng hết nhu cầu Sự xuất thiết bị lập trình FPGA (Filed Progammable Gate Array tạo bước đột phá Với công nghệ FPGA có nhiều cơng trình nghiên cứu giải toán lớn toán xử lý tín số, mật mã nhận dạng Các nghiên cứu chủ yếu theo hướng kết hợp FPGA với xử lý thông thường chip tạo hệ thống RCS (reconfigurable Computing System) Đây mơ hình thiết kế hệ thống có khả tính tốn mạnh, thay cho máy tính lớn Khơng thế, thiết bị có khả tái lập trình nên hệ thống có độ linh hoạt cao, thay đổi lại cấu hình để đáp ứng nhiều thuật toán hay yêu cầu khác phần cứng trình hệ thống hoạt động Cùng với bùng nổ mạng internet, mạng di động nhu cầu giải trí, truyền thơng đa phương tiện Để tăng chất lượng dịch vụ dịch vụ đa phương tiện việc xử lý liệu đa phương tiện cần thiết Hiện giải pháp xử lý liệu đa phương tiện có chi phí cao Do mục đích nghiên cứu ứng dụng công nghệ FPGA vào việc xử lý liệu đa phương tiện cách hiệu Đối tượng phạm vi nghiên cứu: Công nghệ FPGA: lĩnh vực ứng dụng, công cụ phát triển Kỹ thuật xử lý nhanh liệu pipeline Ứng dụng kỹ thuật pipeline thiết kế lõi IP xử lý hình ảnh Những nội dung chính: Nội dung luận văn gồm phần đặt vấn đề, chương, kết luận tài liệu tham khảo Chương I luận văn trình bày tổng quan cơng nghệ FPGA, lĩnh vực ứng dụng công nghệ công cụ phát triển, hỗ trợ lập trình FPGA Chương II luận văn trình bày kỹ thuật xử lý liệu pipeline, cách thức tổ chức pipeline công nghệ FPGA đánh giá hiệu kỹ thuật Chương III thực thiết kế lõi IP xử lý hình ảnh cụ thể lõi IP xác định điểm ảnh bị lỗi sửa chúng, xác định màu phương pháp nội suy, sửa ma trận màu Phần kết luận luận văn trình bày kết đạt hạn chế luận văn, hướng phát triển luận văn nghiên cứu 2 TÔNG QUAN VỀ CÔNG NGHỆ FPGA 1.1 Lịch sử đời FPGA Năm 1984 Ross Freeman người thiết kế PFGA người sáng lập công ty Xilinx Kiến trúc FPGA cho phép tích hợp số lượng lớn phần tử bán dẫn vào vi mạch so với kiến trúc trước CPLD FPGA có khả chứa từ 100.000 đến vài tỷ cổng logic, CPLD chứa từ 10.000 đến 100.000 cổng logic, số PAL vá PLA thấp nhiều đạt vài nghìn đến 10.000 cổng logic Kiến trúc FPGA kiến trúc mảng khối logic, khối logic nhỏ nhiều đem so sánh với khối SPLD, ưu điểm giúp FPGA chứa nhiều phần tử logic phát huy tối đa khả lập trình phần tử logic hệ thống mạch kết nối, để đạt mục đích kiến trúc FPGA phức tạp nhiều so với CPLD Một điểm khác biệt với CPLD FPGA đại tích hợp nhiều logic số học sơ tối ưu hóa hỗ trợ RAM, ROM tốc độ cao, hay nhân cộng (multication anh accumulation, MAC), thuật ngữ tiếng anh DSP slice dùng cho ứng dụng xử lý tín hiệu số DSP Ngồi khả tái cấu trúc vi mạch toàn cục, FPGA hỗ trợ tái cấu trúc phận riêng lẻ đảm bảo hoạt động bình thường cho phận khác 1.2 Cấu trúc FPGA Hình 1-1 Cấu trúc FPGA FPGA mạch tích hợp chứa nhiều (64 đến 10.000) ô logic (logic cell) giống xem thành phần chuẩn Mỗi ô logic giữ hay số chức độc lập Các ô giống kết nối ma trận đường dẫn chuyển mạch khả trình Người thực thiết kế đặc trưng lôgic đơn lựa chọn đóng chuyển mạch ma trận kết nối Mảng ô lôgic kiểu kết nối kết cấu xây dựng khối mạch lôgic Các thiết kế phức tạp tạo cách kết hợp khối để tạo mạch mô tả Mơ hình tổng qt FPGA gồm dãy hai chiều khối lơgic (logic block) kết nối nguồn kết nối chung Các nguồn kết nối gồm đoạn kết nối (segment) có chiều dài khác Bên kết nối chuyển mạch lập trình dùng để nối khối lôgic với đoạn dây, khối vào/ra hay đoạn dây với Mạch lôgic cài đặt FPGA cách ánh xạ lôgic vào khối lơgic riêng rẽ sau nối khối lơgic cấu hình (Configurable logic Block) cần thiết qua chuyển mạch Các khối CLB cung cấp phần tử chức với cấu trúc sử dụng logic Các khối vào/ra (I/O Block) cung cấp giao diện gói chân đường tín hiệu bên Tài nguyên kết nối khả trình cung cấp phận truyền dẫn tới kết nối đầu vào đầu CLB IOB mạng riêng Vậy cấu trúc FPGA gồm ba phần tử chính: Các khối lơgic cấu hình (CLB), khối vào/ra (IOB) kết nối a Các khối lơgic cấu hình (Configurable logic Block) Cấu trúc nội dung logic block gọi theo kiến trúc Kiến trúc khối lơgic thiết kế theo nhiều cách khác nhau, cổng AND ngõ nhập, dồn kênh (Multiplexer) hay bảng tìm kiếm (Lock-up Table) Ngồi chứa Flip-Flop để hỗ trợ cho việc thực cách b Các nguồn kết nối (Routes) Các nguồn kết nối có cấu trúc nội dung gọi kiến trúc đường (Routing Architecture) Kiến trúc Routing gồm đoạn nối chuyển mạch khả trình Các chuyển mạch khả trình có cấu tạo khác pass-transistor, điều khiển cell SRAM, phần tử cầu chì nghịch, EPROM transistor EEROM transitor Giống khối lôgic có nhiều cách khác để thiết kế kiến trúc routing Một số FPGA cung cấp nhiều kết nối đơn giản khối logic, số khác cung cấp kết nối nên routing phức tạp 1.2.1 Phân loại FPGA FPGA có nhiều loại khác có cấu trúc đặc tính riêng tuỳ theo hãng sản xuất, nhiên chúng có bốn loại sau: cấu trúc mảng đối xứng (Symmetrical Array), cấu trúc PLD phân cấp (hierachircal PLD), cấu trúc hàng (Row base) cấu trúc đa cổng (Sea of Gate) mô tả 4 Hình 1.2 Các loại cấu trúc FPGA 1.2.2 Các cơng nghệ lập trình FPGA Có nhiều cách thực phần tử lập trình, cơng nghệ lập trình sử dụng là: RAM tĩnh, cầu chì nghịch (anti-fuse), EPROM transistor EEROM transistor Mặc dù cơng nghệ lập trình khác nhau, tất phần tử lập trình có chung tính chất cấu hình trong hai trạng thái ON OFF Các phần tử lập trình dùng để thực kết nối lập trình khối lơgic FPGA, cịn FPGA thơng thường 100.000 phần tử lập trình Vì phần tử lập trình phải có tính chất sau: - Chiếm diện tích chíp tốt - Có trở kháng thấp trạng thái ON trở kháng cao trạng thái OFF - Có điện dung ký sinh thấp kết nối đoạn dây - Có thể chế tạo cách tin cậy số lượng lớn phần tử lập trình chíp Có thể tuỳ thuộc vào ứng dụng cụ thể có số lượng phần tử lập trình có đặc tính khác Về mặt chế tạo, phần tử lập trình chế tạo theo công nghệ CMOS chuẩn tốt Dưới trình bày chi tiết cơng nghệ lập trình FPGA a Cơng nghệ lập trình dùng RAM tĩnh Cơng nghệ lập trình dùng RAM tĩnh (SRAM) sử dụng cơng nghệ CMOS tiêu chuẩn Các kết nối lập trình điều khiển transistor khác chíp bật (On) transistor truyền dẫn cổng transistor để tạo kết nối hay tắt (Off) để ngắt kết nối Trong FPGA sử dụng công nghệ lập trình SRAM, khối logic kết hợp với qua cách kết hợp dồn kênh (Multiplexer) cổng truyền dẫn (pass-gate) Vì SRAM nhớ bay hơi, FPGA phải tái cấu hình cấp nguồn cho chíp Điều có nghĩa hệ thống sử dụng chíp phải có số chế lưu trữ thường trực cho bit RAM Cell, chẳng hạn ROM hay đĩa từ Các bit RAM Cell nạp vào FPGA cách hay định địa phần tử mảng (theo cách thơng thường RAM) Các chíp thực theo cơng nghệ SRAM có diện tích lớn, cần transistor cho RAM Cell transistor cần thêm cho cổng truyền dẫn hay dồn kênh Ưu điểm kỹ thuật cho phép FPGA tái cấu hình mạch nhanh chế tạo công nghệ CMOS chuẩn b Các thiết bị lập trình cầu chì nghịch (Anti-fuse) Cơng nghệ lập trình anti-fuse sử dụng FPGA Actel-Corp, Quick Logic Cross Point Solution Tuy anti-fuse sử dụng loại FPGA có cấu tạo khác nhau, chức chúng Một anti-fuse bình thường trạng thái cao, bị “nóng chảy” thành trạng thái điện trở thấp lập trình điện cao Dưới giới thiệu cấu tạo anti-fuse Actell Quick Logic Anti-fuse Actell gọi PLICE Nó cấu trúc hình chữ nhật gồm lớp: Lớp chứa silic mang nhiều điện tích dương (n+diffusion), lớp lớp điện môi (Oxy-Nitơ-Oxy cách điện), lớp Poly-Silic Anti-fuse PLICE lập trình cách đặt điện cao thích hợp (18V) hai đầu anti-fuse dòng điều khiển khoảng 5mA qua thiết bị Dòng áp tạo nhiệt lượng đủ nóng bên lớp điện mơi làm nóng chảy tạo liên kết dẫn điện điện cực Các transistor chịu điện cao chế tạo bên FPGA để đáp ứng cho dòng điện áp đủ lớn Cả hai lớp cầu chì nghịch nối với dây kim loại để lập trình cầu chì nghịch tạo kết nối có trở kháng thấp (300 đến 500) hai dây kim loại Anti-fuse Quick-Logic gọi ViaLink Nó tương tự PLICE có ba lớp kim loại Tuy nhiên, ViaLink sử dụng kim loại mức cho lớp cùng, hợp chất vơ dịnh hình cho lớp kim loại mức cho lớp Khi trạng thái khơng lập trình, anti-fuse có trở kháng hàng gigm, lập trình tạo kết nối hai lớp kim loại trở kháng khoảng 80 Anti-fuse chế tạo cách thêm mặt nạ đặc biệt quy trình chế tạo CMOS thơng thường ViaLink anti-fuse lập trình cách đặt điện 10V đầu nó, dịng cấp đủ, trạng thái Silic vơ định hình thay đổi tạo liên kết điện hai lớp kim loại Diện tích chíp sử dụng kỹ thuật anti-fuse nhỏ so với công nghệ khác Tuy nhiên, bù lại cần phải có khơng gian lớn cho transistor điện cao cần để giữ cho dịng áp cao lúc lập trình Nhược điểm anti-fuse quy trình chế tạo chúng phải thay đổi so với quy trình chế tạo SMOS c Cơng nghệ lập trình dùng EPROM EEROM Cơng nghệ dùng FPGA Altera Corp, Plus Logic Công nghệ giống sử dụng nhớ EPROM Không giống CMOS transistor đơn giản, EPROM transistor gồm hai cổng, cổng treo (floating-gate) cổng chọn (select-gate) Cổng treo đặt cổng chọn kênh dẫn transitor, cổng gọi khơng có kết nối điện đến mạch Các cơng nghệ lập trình FPGA tóm tắt bảng đây: Bảng 1.1 Các đặc tính cơng nghệ lập trình Cơng nghệ lập trình Tính bay Có thể lập trình Diện tích chíp R(Kohm) C(pf) Static Cell RAM Có PLICE Khơng Trong mạch Lớn 1-2 10-20 Không Anti-fuse nhỏ 300-500 3-5 50-80 1-3 Số transistor lớn Anti-fuse ViaLink Không Không Anti-fuse nhỏ Số transistor lớn Anti-fuse EPROM Khơng Ngồi mạch Nhỏ 2-4 10-20 EEPROM Không Trong mạch 2xEPROM 2-4 10-20 1.3 Ứng dụng công nghệ FPGA FPGA hệ sau IC khả trình nên chúng ứng dụng hầu hét ứng dụng dùng MPGA, PLD mạch tích hợp loại nhỏ (SSI) a Các mạch tích hợp ứng dụng đặc biệt FPGA thiết bị tổng quát để thực mạch lơgic số Chúng đặc biệt thích hợp cho mạch tích hợp chuyên dụng đặc biệt (ASIC) cộng, điều khiển lôgic Flip-Flop b Thiết kế mạch ngẫu nhiên Mạch lôgic ngẫu nhiên thường thực PAL Nếu tốc độ mạch khơng địi hỏi khắt khe (các PAL nhanh hầu hết FPGA) mạch thực FPGA Hiện FPGA cần từ 10 đến 20 PAL c Thay chíp SSI cho mạch ngẫu nhiên Các mạch sản phẩm thương mại thường chứa nhiều chíp SSI Trong nhiều trường hợp thay FPGA để giảm diện tích bo mạch d Chế tạo mẫu FPGA lý tưởng cho việc tạo mẫu sản phẩm Giá thành thực thấp thời gian thực thiết kế vật lý ngắn, cung cấp ưu điểm nhiều so với phương tiện truyền thống khác để chế tạo mẫu phần cứng Các mẫu ban đầu thực nhanh thay đổi sau thực nhanh tốn e Máy tính dựa FPGA Một loại máy tính dựa FPGA tái lập trình FPGA Các máy có bo mạch chứa FPGA với chân nối với chíp lân cận giống thơng thường Ý tưởng là chương trình phần mềm “biên dịch” (sử dụng kỹ thuật tổng hợp mức cao, mức lôgic mức sơ đồ tay) vào phần cứng Phần cứng thực cách lập trình bo mạch FPGA Phương pháp có hai ưu điểm chính: khơng cần q trình lấy lệnh xử lý truyền thống phần cứng gộp lệnh Kết tốc độ tăng lên hàng trăm lần Hai là, mơi trường tính tốn thực song song mức cao, làm tăng tốc thêm f Tái cấu hình thành phần trực tiếp FPGA cho phép thay đổi theo mong muốn cấu trúc máy hoạt động Một ví dụ thiết bị máy tính từ xa thay đổi trực tiếp để khắc phục cố hay có lỗi thiết kế Kiểu FPGA thích hợp cho ứng dụng FPGA có chuyển mạch lập trình KỸ THUẬT PIPELINE TRONG CÔNG NGHỆ FPGA Kỹ thuật pipeline FPGA Đối với lập trình FPGA, việc lập trình điều khiển khả chia thành nhánh xử lý song song, sử dụng hiệu tài nguyên phần cứng khả mang lại hiệu xử lý nhanh, đặc biệt loại liệu đồng liệu text, hay loại giá trị số, bit liệu hình ảnh [15] Kỹ thuật đường ống (Pipeline hay Pipelining) kỹ thuật thực lệnh cac lệnh thực theo kiểu gối đầu nhằm tận dụng khoảng thời gian rỗi (stalls) công đoạn (stages), qua làm tăng tốc độ thực lệnh vi xử lý Clock cycles 10 F D X M W A B X M E B C D X E C M N X F G E X F F G X … H K L Hình 2.1: Kỹ thuật Pipeline Trên Hình 2.1 mô tả cách thực Kỹ thuật Pipeline, qua cho thấy để thực câu lệnh xử lý text, 10 xung nhịp đồng hồ, thực câu lệnh tốn xung nhịp đồng hồ câu lệnh, hay tốn 30 xung nhịp đồng hồ cho câu lệnh Việc sử dụng kỹ thuật Pipeline thực dễ dàng nhờ kiến trúc đặc biệt vi mạch thuộc họ FPGA khả thay đổi cấu trúc sử dụng tài ngun tính tốn chip FPGA Với kỹ thuật Pipeline trên, rõ ràng kết thực diễn nhanh so với q trình khơng sử dụng Pipeline 2.2 Tổ chức pipeline Lập trình FPGA Việc sử dụng kỹ thuật Pipeline cách tiếp cận đề xử lý nhanh liệu, đặc biệt thực phép toán logic ALU phép nhân, phép cộng …, mục tiêu mục tìm hiểu cách thức tổ chức Pipeline lập trình cho FPGA, với code chương trình cho lập trình FPGA VHDL 8 2.2a 2.2b ỨNG DỤNG KỸ THUẬT PIPELINE TRONG CÔNG NGHỆ FPGA XỬ LÝ DỮ LIỆU ĐA PHƢƠNG TIỆN 3.1 Các kỹ thuật xử lý liệu đa phƣơng tiện Đối với toán xử lý liệu lớn, với khối liệu text hay voice, liệu đa phương tiện, vấn đề cấp bách đặt toán xử lý nhanh Bài toán xử lý liệu nhanh đề cập đến nhiều nghiên cứu với thuật tốn tính tốn lưới, vấn đề xây dựng hệ thống hiệu cao, tính tốn song song, lập trình chip họ FPGA, sử dụng card đồ họa GPU 3.1.1 Tính tốn song song Tính tốn song song hình thức tính tốn nhiều phép tính thực đồng thời, hoạt động nguyên tắc vấn đề lớn chia thành nhiều phần nhỏ hơn, sau giải tương tranh ("trong lĩnh vực tính tốn") Có nhiều hình thức khác tính tốn song song: song song cấp bit, song song cấp lệnh, song song liệu, song song tác vụ Song song sử dụng từ nhiều năm qua, chủ yếu lĩnh vực tính tốn hiệu cao Gần hình thức tính tốn quan tâm nhiều hơn, hạn chế vật lý ngăn chặn việc tăng hiệu tính tốn cách tăng tần số, Vì việc tiêu hao điện (dẫn đến sinh nhiệt) từ máy tính trở thành mối lo ngại năm gần đây, tính tốn song song trở thành mơ hình thống trị lĩnh vực kiến trúc máy tính, phần lớn dạng xử lý đa nhân Thuật tốn song song khó viết so với thuật tốn tuần tự, tương tranh tạo nhiều lớp tiềm tàng lỗi phần mềm, lỗi điều kiện ganh đua phổ biến Quản lý việc Giao tiếp đồng luồng xử lý trở ngại lớn để tạo chương trình song song tốt 9 3.1.2 Sử dụng GPU Bộ xử lý đồ họa (Graphics Processing Unit) [9] [10] hay gọi tắt GPU xử lý chuyên dụng cho biểu diễn hình ảnh 3D từ vi xử lý máy tính Nó sử dụng hệ thống nhúng, điện thoại di động, máy tính cá nhân, máy trạm, điều khiển game Bộ xử lý đồ họa ngày hiệu thao tác đồ họa máy tính, cấu trúc song song cao cấp làm cho chúng có lực xử lý tốt nhiều so với vi xử lý thông thường thuật tốn phức tạp Trong máy tính cá nhân, GPU biết tới card hình (video card) tích hợp ln bảng mạch chủ Hơn 90% máy tính cá nhân máy tính xách tay đại có tích hợp GPU thường yếu nhiều so với GPU tích hợp card hình chun dụng.[12],[14] GPU ln ln xử lý với dư thừa tài nguyên tính tốn Tuy nhiên xu hướng quan trọng gần trưng bày khả tính tốn cho lập trình viên Những năm gần đây, GPU phát triển từ hàm cố định, xử lý chuyên dụng tới xử lý lập trình song song, đầy đủ tính độc lập với việc bổ sung thêm chức cố định, chức chuyên biệt Hơn hết khía cạnh khả lập trình xử lý chiếm vị trí trung tâm Tơi bắt đầu cách ghi chép lại tiến triển này, cấu trúc đường ống dẫn đồ họa GPU làm GPU trở thành kiến trúc, công cụ giành cho mục đích thơng dụng, sau xem xét kỹ kiến trúc GPU đại 3.1.3 Tính tốn lưới Tính tốn lưới mơ hình tính tốn ứng dụng nhiều, mơ hình có khả thực tính toán với tốc độ cao cách tận dụng nhiều máy tính nối mạng để tạo kiến trúc máy tính ảo phân phối việc tính tốn sở hạ tầng song song Lưới tính tốn sử dụng tài ngun nhiều máy tính riêng lẻ kết nối với thông qua mạng máy tính(thường mạng máy Internet) để giải yêu cầu tính tốn lớn Lưới có khả thực việc tính tốn tập liệu lớn, cách chia nhỏ tập liệu thành tập hợp nhỏ thực nhiều qui trình tính tốn lúc mánh tính đơn thơng qua mơ hình phân phối cơng việc tiến trình song song Ngày nay, việc phân phối tài nguyên lưới tuân theo chuẩn SLA(service level agreement) Tính tốn lưới tạo mơ hình để giải tốn tính tốn lớn cách sử dụng tài nguyên rỗi( CPU, thiết bị lưu trữ) loạt máy tính riêng rẽ, thường máy để bàn, hệ thống coi một cụm máy ảo nhúng môi trường liên lạc phân tán Tính tốn lưới tập trung vào khả hỗ trợ tính tốn khu vực hành chính, điều làm cho mơ hình tách biệt so với mơ hình cụm tính tốn tính tốn phân tán truyền thống Về mặt chức chia lưới thành loại sau: Lưới tính tốn(bao gồm lưới tận dụng tài ngun CPU) loại lưới hướng tới hoạt động tính tốn lớn tập trung Lưới liệu tập trung vào việc quản lý việc chia sẻ lượng lớn liệu phân tán Lưới thiết bị thường bao gồm thiết bị kính viễn vọng lưới xung quanh dùng để điều khiển thiết bị từ xa phân tích liệu 3.2 Thiết kế lõi IP xử lý liệu đa phƣơng tiện 3.3.1 Khái niệm vi mạch lõi IP Chip vi mạch IC (integrated Circuit) mạch điện gồm nhiều phần tử tích hợp lên phiến bán dẫn Dựa mật độ tích hợp, người ta phân loại sau: 10 - SSI (Small-Scale Integration): Độ tích hợp cỡ nhỏ gồm khoảng 100 linh kiện điện tử chip - MSI (Medium-Scale Integration): Gồm từ 100 đến 3000 linh kiện điện tử chip - LSI (Large-Scale Integration): Gồm từ 3000 đến 100000 linh kiện điện tử chip - VLSI (Very Large-Scale Integration): Gồm từ 100000 đến triệu linh kiện điện tử chip - ULSI (Ultra Large-Scale Integration): Hơn triệu linh kiện điện tử chip Có hai dạng lõi IP: Lõi IP mềm (soft IP): có tính linh hoạt nhất, cho phép người dùng sửa đổi chức cần thiết Nhưng để đưa vào thiết kế toàn bộ, khách hàng phải thực bước tổng hợp, đặt nối dây Như vậy, không đảm bảo chắn đạt luật thiết kế nhà máy, tối ưu thời gian, diện tích Lõi IP cứng (hard IP): thiết kế “hộp đen”, khách hàng việc sử dụng Khơng linh hoạt khách hàng khơng thể sửa đổi Chỉ ứng dụng với qui trình sản xuất nhà máy chế tạo cụ thể Người cung cấp IP đảm bảo tuân thủ luật thiết kế nhà máy, thông báo rõ tần số làm việc, diện tích chiếm chỗ IP tạo 3.2.2 Qui trình thiết kế ASIC FPGA Error! Reference source not found trình bày qui trình thiết kế lõi/chip IP hai công nghệ FPGA ASIC Trong lưu đồ này, qui trình thiết kế sau : Từ yêu cầu thiết kế (Specifications) Phân tích thiết kế, xây dựng kiến trúc, viết code mô tả phần cứng cho thiết kế (dùng Verilog VHDL) tiến hành mô kiểm tra chức sửa lỗi thiết kế (RTL code, simulation & debug) Tổng hợp thiết kế thành dạng netlist (logic synthesis) kiểm tra chức mức cồng - gate-level Tiến hành làm layout phân tích thiết kế layout mặt định thời (timing), công suất, tần số diện tích chip Về mặt phần cứng, có hai hƣớng để làm chip : (1) Hƣớng FPGA : dùng chip FPGA chuyên dụng phần mềm tương ứng Ví dụ Quartus II Altera hay ISE Xilinx,… (2) Hƣớng ASIC : tổng hợp làm layout dựa thư viện công nghệ cụ thể phần mềm chuyên dụng, ví dụ IBM, TSMC, … 3.3.3 Một số kỹ thuật tối ưu thiết kế 3.3.3.1 Kỹ thuật tối ưu tài nguyên Kỹ thuật tối giản logic đại số Boole Các hàm logic thường tối giản cách sử dụng đại số Boole bìa Karnaugh trước thiết kế Kỹ thuật Resource Sharing Resource Sharing kỹ thuật chia sẻ tài nguyên phần cứng cho xử lý khác Để áp dụng lỹ thuật này, người thiết kế phải am hiểu hệ thống tính toán định thời hợp lý 11 Kỹ thuật Reource Sharing áp dụng lúc hợp lý cho kết giảm thiếu nhiều tài nguyên thiết kế Kỹ thuật Register Packing Kỹ thuật Register Packing kỹ thuật tối ưu tài nguyền dùng cho thiết kế FPGA Ý tưởng mạch tổ hợp sử dụng ghi trống Logic Element khác Kỹ thuật tối ƣu phép nhân số Đối với phép toán nhân số, lược giản nhân nhờ vào phép dịch bít Do đơn vị dịch phía trái tướng đương với việc nhân 2, nên phép toán nhân với 2N tương đương với phép dịch trái N bit Ví dụ: * = 32, = 22 nên phép nhân thay phép dịch bit cho giá trị Tức 1000 (8) 30 Msamples/s (1 sample gồm thành phần màu tối thiểu 8bit) – Thiết kế đồng clock cạnh lên – Reset bất đồng • Giải thuật đề nghị: nội suy tuyến tính cải tiến - dựa vào nhân cửa sổ với hệ số tính toán dựa vào tài liệu “High-quality linear interpolation for demosaicking of Bayer-patterned color image” Bảng 3.4 Các ngõ vào IP Color Filter Interpolation 16 • Thiết kế chi tiết In_sop Shift register Shift register Out_sop In_eop Shift register Shift register Out_eop 32 bits Pixel counter 32 bits In_data Window create N bits Interpolation window Edge padding 25N bits 25N bits Out_data 3N bits 17 h_cnt N bits Interpolate window N bits Interpolate window Window data lines 25N bits v_cnt N bits Output select Interpolate window Dout 3N bits N bits Interpolate window N bits N bits Shift register Multiplexer Multiplexer max S1 D S2 C ENB In window data 25N bits • Pipeline adder (4 levels) max N+5 bits Kiểm tra thiết kế ModelSim S1 D S2 N bits C ENB N bits Out data Out data N bits 18 3.4.4 Thiết kế lõi IP color matrix correction Yêu cầu thiết kế: - Cho phép tùy chọn hệ số ma trận - Chuyển đổi màu CMY sang RGB - Cho phép tùy chọn độ rộng liệu ngõ vào: bit, 10 bit 12 bit - Tương thích chuẩn Avalon Streaming (ready_latency = 1) - Tốc độ xung clock >100 MHz FPGA Cyclone II Altera - Tốc độ liệu > 30 Msamples/s (1 sample gồm thành phần màu tối thiểu 8bit) - Thiết kế đồng clock cạnh lên - Reset bất đồng Các ngõ vào IP Color Correction Matrix 19 Thiết kế top-block Sink ready full protect Source ready In_ready read empty Sink valid write almost full Sink data Sink sop Sink eop wirte data clken in data FIFO 3N+2 bits 3N+2 bits empty write full out data in sop out sop in eop out eop wirte data 3N+2 bits Multiplexer reg N+2 bits reg Multiplexer max S1 D reg Out_green N bits D reg Out_blue N bits S2 reg C ENB C ENB N+12 bits N+2 bits reg max 1024 reg a23 Multiplexer Multiplexer N+11 bits max reg reg S1 D S2 N+12 bits N+2 bits reg reg Kết ModelSim S1 S2 C ENB C ENB 1024 • S1 S2 reg a22 a33 D C ENB Multiplexer a21 a32 Out_red N bits N+11 bits In_blue N bits reg reg a13 a31 D S2 max 1024 In_green N bits S1 C ENB N+12 bits a12 D S2 reg a11 Multiplexer S1 max N bits Source data in_data in_sop in_eop Thiết kế chi tiết max Source valid out_valid Valid Synch read data 3N+2 bits N+11 bits In_red N bits in_valid FIFO Color Correction Matrix read data read out_data out_sop out_eop Source sop Source eop 20 3.4.3 Tổng hợp lõi IP Sơ đồ khối Sink data Source data Sink valid Sink ready Source valid Avalon ST Defect Pixel Correction Avalon ST Color Filter Interpolation Avalon ST Color Correction Matrix Source ready Sink sop Source sop Sink eop Source eop Mô ModelSim để bảo đảm chức lõi IP với thiết kế giải thuật đề Mơ hình kiểm tra lõi IP ModelSim mơ tả hình Hình 0-1: Mơ hình thẩm tra Model Sim Hình ảnh cần kiểm tra tạo dạng text file nhờ công cụ Matlab Text file ngõ vào cho testbench thực mô thẩm tra lõi IP Kết mô lưu lại dạng text file đưa vào Matlab để đánh giá hiển thị kết Các Verification IP (VIP) thiết kế môi trường Testbench bao gồm: Source: đọc liệu hình ảnh chuyển thành liệu theo chuẩn Avalon-ST cho lõi IP 21 Sink: nhận luồng liệu xử lý từ lõi IP theo chuẩn Avalon-ST ghi lại kết vào text file Clock_reset_gen: Tạo tín hiệu clock reset cho source, sink lõi IP Các bước để chạy mô mơ tả sau: Mở chương trình Matlab, chạy “im2txt.m” để biến đổi ảnh gốc sang text Mở chương trình ModelSim, chạy mơ file “top.v” có thơng báo “finish” Mở chương trình Matlab, chạy “txt2im.m” để biến đổi text file chứa ảnh kết thành file ảnh Xem file ảnh kết so sánh với ảnh gốc Để thực trình cách tự động, file script thiết kế bao gồm: Clear.bat: xóa file kết cũ Run.bat: thực toàn trình mơ kiểm tra Matlab Kết mơ hiển thị hình ảnh xử lý so sánh với hình ảnh chưa xử lý điểm ảnh lỗi Chú ý để chạy file run.bat máy tính cần cài đặt ModelSim Matlab Compiler Runtime Waveform.bat: xem dạng sóng mơ ModelSim Các file thiết kế cho q trình mơ kiểm tra lõi IP Pre-Image Processing liệt kê bảng sau: STT Tên file Mô tả clock_reset_gen.v Mã Verilog tạo tín hiệu clock reset cho source, sink, lõi IP source.v Mã Verilog cho đọc liệu hình ảnh từ text file chuyển thành liệu theo chuẩn Avalon-ST cho lõi IP sink.v Mã Verilog cho nhận liệu hình ảnh theo chuẩn Avalon-ST ghi thành text file top.v Mã Verilog tổng hợp môi trường kiểm tra lõi IP im2txt.m Mã script Matlab thực việc biến đổi ảnh sang text file chứa ảnh Bayer chèn thêm điểm ảnh lỗi txt2im.m Mã script Matlab thực việc chuyển đổi text file RGB thành file hình ảnh clear.bat Script file thực xóa kết mơ cũ run.bat Script file thực toàn trình mơ sử dụng ModelSim Matlab 22 waveform.bat Script file thực hiển thị dạng sóng mơ ModelSim Các dạng sóng kết chương trình ModelSim kiểm tra để bảo đảm tín hiệu giao tiếp chuẩn Avalon-ST thực chức Các bước kiểm tra bao gồm: Sau reset hệ thống tín hiệu ready đạt mức tích cực (nghĩa sink sẵn sàng nhận liệu), tín hiệu valid startofpacket đạt tích cực, liệu lúc bắt đầu truyền (hình minh họa 4-3) Khi ready tích cực, nghĩa sink khơng sẵn sàng nhận liệu), tín hiệu valid data sau chu kỳ clock (vì ready latency = 1) Khi ready tích cực trở lại, tín hiệu valid lên mức tích cực data tiếp tục truyền (hình minh họa 4-4) Nếu liệu từ lõi IP khơng hợp lệ (hoặc liệu chưa có), tín hiệu valid mức tích cực (hình 4-5) Khi lõi IP xử lý liệu xong (có liệu hợp lệ), tín hiệu valid đạt tích cực đồng thời với liệu truyền đi, tín hiệu startofpacket tích cực với liệu (hình 46) Khi lõi IP truyền liệu cuối tín hiệu endofpacket đạt tích cực chu kỳ clock Kiểm tra ModelSim KẾT LUẬN Trong luận văn này, em nghiên cứu kỹ thuật xử lý liệu đa phương tiện, cơng nghệ lập trình FPGA tìm hiểu kỹ thuật pipeline cơng nghệ FPGA, ngơn ngữ mơ tả phần cứng verilog Trong q trình thực luận văn em thu kết sau: - - - Bước đầu nắm kiến thức công nghệ PPGA, hiểu tư tưởng luồng thiết kế công nghệ FPGA, khả xử lý liệu công nghệ FPGA Hiểu lập trình ngơn ngữ mơ tả phần cứng Verilog, sử dụng ngôn ngữ verilog để thiết kế lõi IP xử lý nhiều loại liệu đa phương tiện xử lý hình ảnh Nắm cách sử dụng cơng cụ lập trình phần mềm Quartus II, phần mềm mô ModelSim 23 Những hạn chế hướng phát triển đề tài: - - Do thời gian thực đề tài có hạn nên em thực xử lý ảnh công cụ mô chưa thiết kế vi mạch, chưa hoàn toàn hiểu hết chức công cụ Trong thời gian tới em tiếp tục hồn thiện đề tài để có sản phẩm hoàn chỉnh thiết kế công nghệ FPGA ... xác định màu phương pháp nội suy, sửa ma trận màu Phần kết luận luận văn trình bày kết đạt hạn chế luận văn, hướng phát triển luận văn nghiên cứu 2 TÔNG QUAN VỀ CÔNG NGHỆ FPGA 1.1 Lịch sử đời... kế lõi IP xử lý hình ảnh Những nội dung chính: Nội dung luận văn gồm phần đặt vấn đề, chương, kết luận tài liệu tham khảo Chương I luận văn trình bày tổng quan công nghệ FPGA, lĩnh vực ứng dụng... truyền liệu cuối tín hiệu endofpacket đạt tích cực chu kỳ clock Kiểm tra ModelSim KẾT LUẬN Trong luận văn này, em nghiên cứu kỹ thuật xử lý liệu đa phương tiện, công nghệ lập trình FPGA tìm