intTypePromotion=1
zunia.vn Tuyển sinh 2024 dành cho Gen-Z zunia.vn zunia.vn
ADSENSE

Đề tài "Thiết kế bộ xử lý hình ảnh quảng cáo trên nền LED matrix sử dụng FPGA"

Chia sẻ: Nguyễn Việt Tiến | Ngày: | Loại File: DOCX | Số trang:19

324
lượt xem
128
download
 
  Download Vui lòng tải xuống để xem tài liệu đầy đủ

Ngày nay công nghệ vi điện tử đã trở thành một lĩnh vực phát triển và được rất nhiều các nước trên thế giới chú trọng phát triển.Tại sao nó lại được chú trọng đến vậy,xét về phạm vi ứng dụng ta thấy hệ Nhúng có liên quan,ảnh hưởng đến nhiều lĩnh vực trong đời sống.

Chủ đề:
Lưu

Nội dung Text: Đề tài "Thiết kế bộ xử lý hình ảnh quảng cáo trên nền LED matrix sử dụng FPGA"

  1. PVP_bk3i1_k50 MỤC LỤC : LỜI MỞ ĐẦU Ngày nay công nghệ vi điện tử đã tr ở thành m ột lĩnh v ực phát tri ển và đ ược r ất nhi ều các nước trên thế giới chú trọng phát triển.Tại sao nó lại được chú trọng đến vậy,xét về phạm vi ứng dụng ta thấy hệ Nhúng có liên quan,ảnh hưởng đến nhiều lĩnh vực trong đời sống. Trong sinh hoạt của con người,nó làm cho cuộc sống c ủa con người ngày càng ti ện nghi,thoải mái.sự xuất hiện hàng loạt các thiết bị phục vụ nhu cầu đời sống của con người không chỉ tăng về số lượng mà còn tăng về tính năng,chất l ượng và đ ộ an toàn nh ư máy giặt,tủ lạnh,lò vi sóng… Trong sản xuất,nó làm tăng năng suất lao động,gi ảm sức lao đ ộng c ủa con ng ười,thay con người hoạt động ở những nơi có điều kiện hết sức khắc nhiệt…Và nó liên quan đến các ứng dụng công nghệ cao như vũ trụ… Với tầm quan trọng của công nghệ vi điện tử.Nó xứng đáng là lĩnh v ực mang t ầm chi ến lược trong sự phát triển của các nước trên thế giới.Nước ta cũng không ngo ại l ệ,vi ệc xác định được tầm quan trọng đó.Nhà nước cũng ưu tiên trong đầu tự,việc học,nghiên cứu.Nhiều cơ sở và trung tâm nghiên cứu đã và đang hoạt động ,phát triển. Với sinh viên trường kĩ thuật thì đây là nghành học đầy tiềm năng.Nhiều cuộc thi, nhi ều công trình nghiên cứu khoa học phục vụ cho việc học và nghiên c ứu đã ra đ ời,nhằm m ục đích phát triển sự học hỏi,sự sáng tạo,tư duy,gắn liền với thực tiễn. Theo yêu cầu của mô học cũng như để sử dụng thành thạo công nghệ FPGA em đã quyết định chọn để tài : “Thiết kế bộ xử lý hình ảnh quảng cáo trên nền LED matrix sử dụng FPGA”. Nội dung đè tài :  Tìm hiểu về LED matrix  Tìm hiểu về FPGA  Tìm hiểu phần mềm hỗ trợ thiết kế xilinx ISE  Thiết kế hệ thống Vì đây là trong khuôn khổ bài tập lớn, nên em chỉ thiết kế trên mô hình thí nghiệm, sử dụng ngôn ngữ VHDL để mô hình hóa hệ thống phần c ứng . Em xin chân thành cám ơn thầy LÊ HẢI SÂM đã hướng dẫn chi ti ết về FPGA và ph ương pháp thi ết kế mô hình hóa phần cứng. Hà Nội, ngày 30-10-2009 Sinh viên thực hiện : Phạm Văn Phong
  2. PVP_bk3i1_k50 CHƯƠNG I ĐẶT VẤN ĐỀ VÀ NHIỆM VỤ CỦA ĐỒ ÁN CHƯƠNG 1 : I – Đặt vấn đề Trong thời đại ngày nay, khoa học công nghệ ngày càng phát tri ển và đ ược ứng dụng rất nhiều trong thực tế. Trong đó thì các lĩnh vực như gi ả trí, dịch v ụ qu ảng cáo khuếch trương sản phầm để thu hút sự chú ý của các doanh nghi ệp cũng nh ư cá nhân ngày càng phát triển mạnh mẽ. Để làm cho sản phầm hoặc hình ảnh công ty thu hút sự chú ý, quan tâm của khách hàng thì dịch vụ quảng cáo phải thật ấn tượng, choáng ngợp, bắt mắt… Để giải quyết vấn đề này thì có rất nhiều phương án, nhưng hi ện nay phương án mà được các giới kinh doanh sử dụng hiệu quả nhất là dùng b ảng led matrix. Với những xử lý hình ảnh sống động, màu sắc ấn tượng đã là sự lựa ch ọn hàng đ ầu cho các nhà kinh doanh. Do đó, thiết kế hệ thống bảng đi ện tử đ ể ph ục v ụ nhu c ầu qu ảng cáo, khuếch trương hình ảnh cửa hàng, doanh nghiệp, công ty là rất cần thiết. II – Nhiệm vụ của đồ án Với sự lựa chọn để tài này, trước tiên em cần phải tìm hiểu chi ti ết về LED matrix cũng như các phương pháp quét LED, hiển thị xử lý hình ảnh…Sau đó tìm hi ểu các phương pháp ứng dụng FPGA để giải quyết bài toán đặt ra. Vì gi ới h ạn c ủa đ ể tài chỉ thực hiện mô phỏng và hiểu cách thức hoạt động, phương pháp lập trình sử dụng FPGA cùng với thời gian thực hiện ít nên em chỉ gi ải quyết bài toán d ưới dạng mô hình, hi vọng khi có thời gian và điều kiện thì em có thể triển khai ứng dụng thực tế. CHƯƠNG II CƠ SỞ LÝ THUYẾT CHƯƠNG 2 : I - LED Matrix Dựa trên nguyên tắc như quét màn hình,ta có thể thực hiện việc hi ển th ị ma tr ận đèn bằng cách quét theo hang và quét theo cột.Mỗi Led trên ma tr ận Led có th ể coi nh ư m ột điểm ảnh.Địa chỉ của mỗi điểm ảnh này được xác định đồng thời bởi m ạch gi ải mã hang và giải mã cột,điểm ảnh này sẽ được xác định nhờ dữ liệu đưa ra từ bộ đi đi ều khiển. Như vậy tại mỗi thời điểm chỉ có trạng thái của một điểm ảnh xác định.Tuy nhiên khi xác định địa chỉ và trạng thái của điểm ảnh tiếp theo thì các điểm ảnh còn l ại s ẽ chuy ển về trạng thái tắt.Vì thế để hiển thị được toàn bộ hình ảnh mà ta mu ốn thì ta ph ải quét ma trận nhiều lần với tốc độ quét rất lớn,lớn hơn nhiều lần thời gian k ịp tắt c ủa đèn.Mắt người chỉ nhận biết được tối đa 24 hình/s do đó nếu tốc độ quét lớn m ắt người sẽ không nhận biết được sự gián đoạn hay là nhấp nháy của đèn Led(đánh l ừa c ảm giác mắt). Một điều cũng quan trọng ở đây là điều chỉnh độ sang của Led,thong thường Led sáng bình thường ở điện áp 2-3V,dòng điện từ 20-30mA.Để đảm bảo Led sáng bình th ường thì yêu cầu mạch thiết kế phải đáp ứng đủ 2 điều kiện trên. Sơ đồ khối :
  3. PVP_bk3i1_k50 Để thực hiện được quét hang và quét cột thì ma trận Led được thiết kết như sau: Trạng thái của một Led sẽ được quyết định bởi tín hi ệu đi ện áp đi vào đ ồng th ời c ả 2 chân.để Led sáng thì ta phải cấp điện áp phù hợp vào chân dương của Led(chân Anot),còn chân catot thì nối đất.Đèn tắt khi ta không cấp nguồn cho Led hoặc để 2 đầu anot và catot cung ở mức điện áp. Ta có sơ đồ mạch nguyên lý của Led 8x8: CHƯƠNG 3 : II – FPGA Field-programmable gate array (FPGA) là vi mach dùng cấu trúc mảng phần tử logic mà người dùng có thể lập trình được. (Chữ field ở đây muốn chỉ đến khả năng tái lập trình “bên ngoài” của người sử dụng, không phụ thuộc vào dây chuyền sản xuất phức tạp của nhà máy bán dẫn). Vi mạch FPGA được cấu thành từ các bộ phận: • Các khối logic cơ bản lập trình được (logic block) • Hệ thống mạch liên kết lập trình được • Khối vào/ra (IO Pads) • Phần tử thiết kế sẵn khác như DSP slice, RAM, ROM, nhân vi xử lý... FPGA cũng được xem như một loại vi mạch bán dẫn chuyên dụng ASIC, nhưng nếu so sánh FPGA với những ASIC đặc chế hoàn toàn hay ASIC thiết kế trên thư viện logic thì FPGA không đạt đựợc mức độ tối ưu như những loại này, và hạn chế trong khả năng thực hiện những tác vụ đặc biệt phức tạp, tuy vậy FPGA ưu việt h ơn ở ch ỗ có th ể tái cấu trúc lại khi đang sử dụng, công đoạn thiết kế đơn gi ản do v ậy chi phí gi ảm, rút ngắn thời gian đưa sản phẩm vào sử dụng. Còn nếu so sánh với các dạng vi mạch bán dẫn lập trình được dùng cấu trúc mảng phần tử logic như PLA, PAL, CPLD thì FPGA ưu việt hơn các điểm: tác vụ tái lập trình c ủa FPGA thực hiện đơn giản hơn; khả năng lập trình linh động hơn; và khác biệt quan
  4. PVP_bk3i1_k50 trọng nhất là kiến trúc của FPGA cho phép nó có khả năng ch ứa kh ối l ượng l ớn cổng logic (logic gate), so với các vi mạch bán dẫn lập trình được có trước nó. Thiết kế hay lập trình cho FPGA được thực hiện chủ yếu bằng các ngôn ng ữ mô t ả phần cứng HDL như VHDL, Verilog, AHDL, các hãng sản xuất FPGA lớn như Xilinx, Altera thường cung cấp các gói phần mềm và thiết bị phụ trợ cho quá trình thi ết k ế, cũng có một số các hãng thứ ba cung cấp các gói ph ần m ềm ki ểu này nh ư Synopsys, Synplify... Các gói phần mềm này có khả năng thực hiện tất cả các bước của toàn bộ quy trình thiết kế IC chuẩn với đầu vào là mã thiết kế trên HDL (còn gọi là mã RTL). Kiến trúc FPGA 1) Cấu trúc tổng thể của một FPGA được minh họa ở hình sau. Khối logic FPGA Phần tử chính của FPGA là các khối logic ( logic block). Khối logic được cấu thành từ LUT và một phần tử nhớ đồng bộ flip-flop, LUT (Look up table) là khối logic có thể thực hiện bất kì hàm logic nào từ 4 đầu vào, kêt quả c ủa hàm này tùy vào m ục đích mà gửi ra ngoài khối logic trực tiếp hay thông qua phần tử nhớ flip-flop. Trong tài liệu hướng dẫn của các dòng FPGA của Xilinx còn s ử d ụng khái ni ệm SLICE, 1 Slice tạo thành từ gồm 4 khối logic, số lượng các Slices thay đổi từ vài nghìn đến vài chục nghìn tùy theo loại FPGA. Nếu nhìn cấu trúc tổng thể của mảng LUT thì ngoài 4 đầu vào kể trên còn hỗ tr ợ thêm 2 đầu vào bổ xung từ các khối logic phân bố trước và sau nó nâng t ổng s ố đầu vào c ủa LUT lên 6 chân. Cấu trúc này là nhằm tăng tốc các bộ số học logic. thumb|200px|Khối chuyển mạch của FPGA Mạng liên kết trong FPGA được cấu thành từ các đường kết nối theo hai phương ngang và đứng, tùy theo từng lo ại FPGA mà các đường kết nối được chia thành các nhóm khác nhau, ví d ụ trong XC4000 c ủa Xilinx có 3 loại kết nối: ngắn, dài và rất dài. Các đường kết nối được n ối v ới nhau thông qua các khối chuyển mạch lập trình được (programable switch), trong một khối chuyển mạch chứa một số lượng nút chuyển lập trình được đảm bảo cho các dạng liên k ết ph ức t ạp khác nhau. Ngoài các khối logic tùy theo các loại FPGA khác nhau mà có các phần tử tích h ợp thêm khác nhau, ví dụ để thiết kế những ứng dụng SoC, trong dòng Virtex 4,5 c ủa Xilinx có chứa nhân xử lý PowerPC, hay trong Atmel FPSLIC tích hợp nhân ARV…, hay cho những ứng dụng xử lý tín hiệu số DSP trong FPGA được tích hợp các DSP Slide là bộ nhân
  5. PVP_bk3i1_k50 cộng tốc độ cao, thực hiện hàm A*B+C, ví dụ dòng Virtex c ủa Xilinx ch ứa t ừ vài ch ục đến hàng trăm DSP slices với A, B, C 18-bit. 2) ngôn ngữ VHDL Thiết kế hay lập trình cho FPGA được thực hiện chủ yếu bằng các ngôn ngữ mô t ả phần cứng HDL như VHDL, Verilog, AHDL.. .Em quyết định chọn ngôn ngữ VHDL để lập trình cho FPGA. VHDL (VHSIC Hardware Description Laguage) lµ mét ng«n ng÷ ®−îc dïng ®Ó m« t¶ c¸c hÖ thèng phần cứng ®iÖn tö sè. Nã ®−îc ch−¬ng tr×nh quèc gia vÒ c¸c m¹ch tÝch hîp tèc ®é rÊt cao - VHSIC (Very High Speed Integrated Circuits) do chÝnh phñ Mü khëi x−íng vµo ®Çu nh÷ng n¨m 1980. C¸c c«ng ty tham gia ch−¬ng tr×nh VHSIC nhËn thÊy r»ng hä cÇn ph¶i cã mét c«ng cô nµo ®ã ®Ó thiÕt kÕ c¸c gi¶n ®å ®Çu vµo cho c¸c IC chuyªn dông cì lín, vµ hä ®· ®Ò xuÊt viÖc lËp ra mét ng«n ng÷ m« t¶ phÇn cøng dïng ®Ó m« t¶ cÊu tróc vµ chøc n¨ng cña c¸c m¹ch tÝch hîp (cßn ®−îc gäi lµ IC - Integrated Circuits). KÓ tõ ®ã, VHDL ra ®êi vµ ®−îc ph¸t triÓn, råi sau ®ã ®−îc HiÖp héi c¸c kü s− §iÖn vµ §iÖn tö - IEEE (Institude of Electrical and Electronic Engineers) chÊp nhËn coi nh− lµ tiªu chuÈn t¹i Mü. Phiªn b¶n ®Çu tiªn lµ Tiªu chuÈn IEEE 1076-1987 (cßn ®−îc gäi lµ VHDL-87). Phiªn b¶n nµy ®−îc bæ sung söa ®æi n¨m 1993 thµnh IEEE 1076-1993 (cßn ®−îc gäi lµ VHDL-93). * M« t¶ cÊu tróc Mét hÖ thèng ®iÖn tö sè cã thÓ ®−îc m« t¶ thµnh c¸c khèi - cßn gäi lµ module víi c¸c ®Çu vµo vµ ®Çu ra. C¸c gi¸ trÞ ®iÖn ë ®Çu ra cã mèi quan hÖ víi c¸c gi¸ trÞ trªn c¸c ®Çu vµo. H×nh 2.16a biÓu diÔn mét vÝ dô nh− vËy. Khèi F cã hai ®Çu vµo A vµ B, vµ cã mét ®Çu ra Y. Sö dông ng«n ng÷ VHDL ®Ó m« t¶ khèi F, th× ta gäi khèi F lµ mét thùc thÓ (entity) thiÕt kÕ, vµ c¸c ®Çu vµo vµ ®Çu ra lµ c¸c cæng (port). Cã mét c¸ch ®Ó m« t¶ chøc n¨ng cña khèi F, ®ã lµ chóng ta m« t¶ c¸c khèi con (sub-module) thµnh phÇn cña nã. Mçi mét khèi con ®−îc gäi lµ mét tËp hîp (instance) cña mét sè thùc thÓ, vµ c¸c cæng cña c¸c tËp hîp ®ã ®−îc nèi l¹i b»ng c¸c ®−êng tÝn hiÖu (signal). H×nh dưới m« t¶ khèi F lµ mét tËp hîp gåm c¸c thùc thÓ G, H vµ I. KiÓu m« t¶ nµy ®−îc gäi lµ m« t¶ cÊu tróc (structural). C¸c thùc thÓ G, H vµ I còng ®−îc m« t¶ theo cÊu tróc t−¬ng tù nh− vËy. (a) Khèi F cã hai ®Çu vµo vµ mét ®Çu ra; (b) Khèi F gåm cã 3 thùc thÓ G, H, I * M« t¶ ho¹t ®éng
  6. PVP_bk3i1_k50 Trong nhiÒu tr−êng hîp, viÖc m« t¶ cÊu tróc kh«ng t−¬ng øng víi viÖc m« t¶ ho¹t ®éng. Ng−êi ta th−êng dïng c¸ch m« t¶ ho¹t ®éng theo kiÓu tõ d−íi lªn dùa vµo m« t¶ cÊu tróc. VÝ dô, khi chóng ta thiÕt kÕ hÖ thèng ®iÖn tö th× kh«ng cÇn ph¶I m« t¶ cô thÓ cÊu tróc bªn trong cña tõng con IC mµ chØ cÇn m« t¶ theo chøc n¨ng cña c¸c khèi cña hÖ thèng mµ th«i. Tr−êng hîp nµy ®−îc gäi lµ m« t¶ chøc n¨ng (fuctional) hoÆc m« t¶ ho¹t ®éng (behavioural). §Ó minh ho¹ cho ®iÒu nµy, chóng ta gi¶ sö r»ng chøc n¨ng cña thùc thÓ F trong H×nh 2.16a lµ mét m¹ch OR ®¶o. Khi m« t¶ ho¹t ®éng cña F ta cã thÓ biÕn®æi theo ®¹i sè Boolean nh− sau: Y = A.+ .B §èi víi c¸c m¹ch cã chøc n¨ng ho¹t ®éng phøc t¹p h¬n, th× kh«ng thÓ biÓn diÔn theo c¸c chøc n¨ng ®Çu vµo ®−îc. Trong c¸c hÖ thèng cã ph¶n håi ng−îc, ®Çu ra th−êng lµ c¸c hµm chøc n¨ng theo thêi gian. Ng«n ng÷ VHDL cho phÐp gi¶i quyÕt vÊn ®Ò nµy b»ng c¸ch m« t¶ ho¹t ®éng theo khu«n d¹ng ch−¬ng tr×nh lËp tr×nh. * M« t¶ sù kiÖn rêi r¹c theo thêi gian Khi chøc n¨ng ho¹t ®éng vµ cÊu tróc cña khèi ®· ®−îc chØ ®Þnh râ, th× ng−êi ta cã thÓ m« pháng khèi b»ng c¸ch kÝch ho¹t theo m« t¶ ho¹t ®éng cña nã. §iÒu nµy cã thÓ thùc hiÖn ®−îc b»ng c¸ch m« pháng qu¸ tr×nh ho¹t ®éng ®· ®−îc rêi r¹c thµnh c¸c b−íc theo thêi gian. T¹i mét vµi thêi ®iÓm m« pháng, khèi ®Çu vµo ®−îc kÝch ho¹t b»ng c¸ch thay ®æi gi¸ trÞ trªn cæng ®Çu vµo. Khèi nµy ph¶n øng l¹i b»ng c¸ch thùc hiÖn m· lÖnh theo m« t¶ ho¹t ®éng cña nã ®· ®−îc g¸n vµ t¹o ra c¸c gi¸ trÞ míi ®−a ®Õn ®−êng tÝn hiÖu ®Ó göi tíi c¸c cæng ®Çu ra cña nã t¹i c¸c thêi ®iÓm m« pháng tiÕp theo sau. ViÖc nµy ®−îc gäi lµ kÕ ho¹ch giao t¸c (scheluding a transaction) trªn tÝn hiÖu ®ã. NÕu gi¸ trÞ míi kh¸c gi¸ trÞ tr−íc ®ã ®· cã trªn ®−êng tÝn hiÖu, th× sÏ cã mét sù kiÖn (event) x¶y ra, vµ c¸c khèi kh¸c víi c¸c ®Çu vµo ®· ®−îc kÕt nèi víi ®−êng tÝn hiÖu ®ã cã thÓ sÏ ®−îc kÝch ho¹t. Qu¸ tr×nh m« pháng b¾t ®Çu víi mét pha ®−îc gäi lµ pha khëi ®éng (initialisatoin phase), vµ sau ®ã c¸c qu¸ tr×nh ®−îc thùc hiÖn lÆp l¹i hai giai ®o¹n trong mét chu kú m« pháng (simulation cycle). Trong pha khëi ®éng, tÊt c¶ c¸c tÝn hiÖu ®−îc cung cÊp s½n c¸c gi¸ trÞ khëi ®éng, thêi gian m« pháng ®−îc ®−a vÒ 0, vµ mçi mét ch−¬ng tr×nh ho¹t ®éng cña mét khèi ®−îc kÝch ho¹t. Trong giai ®o¹n ®Çu tiªn cña chu kú m« pháng, thêi gian m« pháng ®−îc n©ng Qu¸ tr×nh m« pháng b¾t ®Çu víi mét pha ®−îc gäi lµ pha khëi ®éng (initialisatoin phase), vµ sau ®ã c¸c qu¸ tr×nh ®−îc thùc hiÖn lÆp l¹i hai giai ®o¹n trong mét chu kú m« pháng (simulation cycle). Trong pha khëi ®éng, tÊt c¶ c¸c tÝn hiÖu ®−îc cung cÊp s½n c¸c gi¸ trÞ khëi ®éng, thêi gian m« pháng ®−îc ®−a vÒ 0, vµ mçi mét ch−¬ng tr×nh ho¹t ®éng cña mét khèi ®−îc kÝch ho¹t. Trong giai ®o¹n ®Çu tiªn cña chu kú m« pháng, thêi gian m« pháng ®−îc n©ng lªn thµnh thêi gian sím nhÊt t¹i thêi ®iÓm mµ giao t¸c ®· ®−îc thùc hiÖn. TÊt c¶ c¸c giao t¸c ®−îc ®−a vµo t¹i thêi ®iÓm nµy ®Òu ®−îc kÝch ho¹t, vµ ®iÒu nµy cã thÓ g©y ra mét sè sù kiÖn nµo ®ã. Trong gian ®o¹n thø hai cña chu kú m« pháng, tÊt c¶ c¸c khèi ph¶n øng l¹i ®èi víi c¸c sù kiÖn võa x¶y ra trong giai ®o¹n mét sÏ kÝch ho¹t ch−¬ng tr×nh ho¹t ®éng cña chóng. C¸c ch−¬ng tr×nh ®ã th−êng lµ kÕ ho¹ch giao t¸c trªn c¸c tÝn hiÖu ®Çu ra cña chóng. Khi tÊt c¶ c¸c ch−¬ng tr×nh kÕt thóc ho¹t ®éng, chu kú m« pháng ®−îc lÆp l¹i. NÕu kh«ng cã thªm giao t¸c nµo th× qu¸ tr×nh m« pháng ®· hoµn thµnh.
  7. PVP_bk3i1_k50 Môc ®Ých cña viÖc m« pháng lµ ®Ó biÕt thªm th«ng tin vÒ sù thay ®æi trong hÖ thèng t¹i tõng thêi ®iÓm. ViÖc nµy cã thÓ thùc hiÖn ®−îc gi¸m s¸t bëi ch−¬ng tr×nh gi¸m s¸t m« pháng (simulation monitor). Ch−¬ng tr×nh nµy nh»m môc ®Ých ghi l¹i qu¸ tr×nh ho¹t ®éng theo tõng thêi ®iÓm t¹i c¸c ®iÓm ®Ó dïng vµo viÖc ph©n tÝch vÒ sau. * Có ph¸p vµ ng÷ nghÜa: Ho¹t ®éng cña mét module cã thÓ ®−îc m« t¶ theo d¹ng ng«n ng÷ lËp tr×nh. Trong môc nµy sÏ giíi thiÖu vÒ có ph¸p vµ ng÷ nghÜa cña c¸c kh¸i b¸o trong ng«n ng÷ VHDL. + C¸c biÓu thøc vµ to¸n tö C¸c biÓu thøc trong VHDL hoµn toµn t−¬ng tù nh− c¸c biÓu thøc trong c¸c ng«n ng÷ lËp tr×nh kh¸c. Mét biÓu thøc lµ mét c«ng thøc kÕt hîp c¸c ®a thøc víi c¸c to¸n tö. C¸c ®a thøc bao gåm tªn c¸c ®èi sè, ký hiÖu b»ng ch÷, c¸c hµm gäi vµ c¸c dÊu ngoÆc cña biÓu thøc. C¸c to¸n tö ®−îc liÖt kª trong B¶ng dưới theo thø tù −u tiªn. Ưu tiên cao nhất **; abs; not; Ưu tiên giảm dần *; /; mod; rem; Ưu tiên giảm dần + (sign); -(sign) Ưu tiên giảm dần +; -; &; Ưu tiên giảm dần =; /=; =; Ưu tiên thấp nhất And; or; nand; nor; xor; C¸c to¸n tö logic and, or, nand, nor, xor vµ not ho¹t ®éng trªn c¸c gi¸ trÞ kiÓu bit hoÆc lµ boolean, vµ trªn c¸c m¶ng 1 chiÒu cña c¸c kiÓu ®ã. §èi víi c¸c to¸n h¹ng m¶ng (array), sù ho¹t ®éng tu©n theo c¸c phÇn tö t−¬ng øng cña tõng m¶ng, th−êng ®é lín cña m¶ng cã cïng ®é lín víi kÕt qu¶. §èi víi c¸c to¸n h¹ng bit vµ boolean, c¸c to¸n tö and, or, nand vµ nor lµ c¸c to¸n tö “ng¾n m¹ch” (short-circuit), do chóng chØ −u tiªn h¬n so víi to¸n h¹ng bªn ph¶i cña chóng nÕu to¸n h¹ng bªn tr¸i kh«ng x¸c ®Þnh ®−îc kÕt qu¶. Do and vµ nand chØ −u tiªn h¬n so víi to¸n h¹ng bªn ph¶i nÕu to¸n h¹ng bªn tr¸i lµ “true” hoÆc “1”, cßn or vµ nor chØ −u tiªn h¬n to¸n h¹ng bªn ph¶i nÕu to¸n h¹ng bªn tr¸i lµ “false” hoÆc “0”. C¸c to¸n tö quan hÖ =, /=, = ph¶i cã c¸c to¸n h¹ng ë hai ®Çu cïng kiÓu, vµ th−êng cho c¸c kÕt qu¶ theo kiÓu boolean. C¸c to¸n tö b»ng (= vµ /=) cã thÓ cã c¸c to¸n h¹ng theo bÊt kú kiÓu nµo. §èi víi c¸c to¸n tö so s¸nh, hai gi¸ trÞ b»ng nhau nÕu tÊt c¶ c¸c phÇn tö t−¬ng øng cña chóng b»ng nhau. C¸c to¸n tö dÊu (+, -), c¸c to¸n tö céng (+) vµ trõ (-) cã c¸ch sö dông cña chóng trªn c¸c to¸n h¹ng d¹ng sè. To¸n tö kÕt nèi (&) lµm viÖc trªn c¸c m¶ng mét chiÒu thµnh d¹ng mét m¶ng míi víi néi dung cña to¸n h¹ng bªn ph¶i kÕ tiÕp to¸n h¹ng tr¸i. Nã cã thÓ mãc nèi mét phÇn tö ®¬n vµo mét m¶ng hoÆc hai phÇn tö ®éc lËp ®Ó thµnh mét m¶ng míi. C¸c to¸n tö nh©n (*) vµ chia (/) lµm viÖc víi c¸c sè nguyªn, sè dÊu phÈy ®éng vµ c¸c kiÓu ®¬n vÞ vËt lý. C¸c to¸n tö chia lÊy phÇn nguyªn (mod- modulus) vµ chia lÊy phÇn d− (rem - remainder) chØ lµm viÖc víi kiÓu sè nguyªn. To¸n tö gi¸ trÞ tuyÖt ®èi (abs) chØ lµm viÖc víi bÊt kú kiÓu sè nµo. Cuèi cïng to¸n tö mò (**) cã thÓ lµm viÖc víi kiÓu sè nguyªn vµ to¸n h¹ng tr¸i cña kiÓu sè dÊu phÈy ®éng, nh−ng ph¶i cã mét sè nguyªn ë to¸n h¹ng ph¶i, cßn to¸n h¹ng ph¶i mµ cã gi¸ trÞ ©m chØ ®−îc phÐp nÕu to¸n h¹ng tr¸i lµ mét sè dÊu phÈy ®éng d¹ng sè. + C¸c khai b¸o tuÇn tù VHDL cung cÊp mét c«ng cô hiÖu qu¶ cho viÖc kiÓm tra tr¹ng th¸i cña c¸c ®èi t−îng vµ ®iÒu khiÓn luång ho¹t ®éng cña c¸c m« h×nh – ®ã lµ c¸c phÐp g¸n.
  8. PVP_bk3i1_k50 PhÐp g¸n biÕn Nh− c¸c ng«n ng÷ lËp tr×nh kh¸c, mét biÕn ®−îc g¸n mét gi¸ trÞ míi b»ng c¸ch sö dông phÐp khai b¸o g¸n. Khai b¸o biÕn trong process cã ph¹m vi chØ trong process ®ã. BiÕn cã thÓ khai b¸o trong ch−¬ng tr×nh con. Khai b¸o biÕn bªn ngoµi process hoÆc ch−¬ng tr×nh con th× gäi lµ shared variable. C¸c biÕn nµy cã thÓ cËp nhËt vµ ®äc nhiÒu process. L−u ý tÝn hiÖu kh«ng ®−îc khai b¸o trong process. C¸c ph¸t biÓu g¸n tÝn hiÖu xuÊt hiÖn trong process ®−îc gäi lµ ph¸t biÓu g¸n tÝn hiÖu tuÇn tù, kÓ c¶ ph¸t biÓu g¸n biÕn, thùc hiÖn tuÇn tù ®éc lËp víi viÖc xuÊt hiÖn c¸c sù kiÖn trªn mçi tÝn hiÖu trong biÓu thøc bªn ph¶i, kh¸c víi viÖc thùc thi cña c¸c ph¸t biÓu g¸n tÝn hiÖu ®ång thêi trong phÇn tr−íc. Khai b¸o biÕn (b¾t ®Çu b»ng tõ variable) khai b¸o biÕn kh¸c víi tÝn hiÖu lµ nã lu«n ®−îc g¸n gi¸ trÞ ngay tøc kh¾c vµ phÐp g¸n tÝn hiÖu lµ := tæ hîp ký hiÖu, nã ®−îc g¸n gi¸ trÞ sau kho¶ng delay ( x¸c ®Þnh do ng−êi sö dông hoÆc mÆc nhiªn lµ kho¶ng delta) vµ phÐp g¸n ®iÒu khiÓn viÖc g¸n gi¸ trÞ cho biÕn sequential -statement –branch 1# when choices=> sequential -statement –branch 2# --cã thÓ cã nhiÒu nh¸nh {when others=> sequential-statement}—last branch end case; Ph¸t biÓu case lùa chän mét trong nh÷ng nh¸nh cho viÖc thùc thi dùa trªn gi¸ trÞ cña biÓu thøc. Gi¸ trÞ biÓu thøc ph¶i thuéc kiÓu trõu t−îng hoÆc kiÓu m¶ng mét chiÒu. Sù chän lùa cã thÓ ®−îc thÓ hiÖn nh− gi¸ trÞ ®¬n, vïng gi¸ trÞ bëi viÖc sö dông dÊu | hoÆc
  9. PVP_bk3i1_k50 sö dông mÖnh ®Ò kh¸c. TÊt c¶ c¸c gi¸ trÞ cã thÓ cã cña biÓu thøc ph¶i ®−îc thÓ hiÖn trong ph¸t biÓu case ®óng 1 lÇn. C¸c mÖnh ®Ò kh¸c cã thÓ ®−îc sö dông ®Ó bao qu¸t tÊt c¶ c¸c gi¸ trÞ, vµ nÕu cã, ph¶i lµ nh¸nh cuèi cïng trong ph¸t biÓu case. C¸c khai b¸o vßng lÆp VHDL cung cÊp kiÓu khai b¸o vßng lÆp c¬ b¶n cã thÓ sö dông c¸c vßng lÆp while vµ for gièng nh− trong c¸c ng«n ng÷ lËp tr×nh kh¸c. Mét ph¸t biÓu lÆp ®−îc sö dông ®Ó lÆp l¹i mét lo¹t c¸c c©u lÖnh tuÇn tù. Có ph¸p cña ph¸t biÓu lÆp lµ: [loop-label:] iteration-scheme loop sequential-statements end loop [loop-lebel]; Cã 3 kiÓu s¬ ®å lÆp. §Çu tiªn lµ s¬ ®å lÆp cã d¹ng: for identifier in range Mét thÝ dô cho s¬ ®å lÆp nµy lµ: FACTORAL:=1; for NUMBER in 2 to N loop FACTORAL :=FACTORAL*NUMBER; end loop; Khai b¸o Null (rçng) Khai b¸o null kh«ng cã hiÖu qu¶. Nã cã thÓ ®−îc sö dông ®Ó biÓu diÔn tr¹ng th¸i râ rµng lµ kh«ng cã hµnh ®éng nµo ®−îc yªu cÇu trong tr−êng hîp ®ã. Ng−êi ta th−êng sö dông nã trong c¸c khai b¸o case, trong ®ã tÊt c¶ c¸c gi¸ trÞ cã thÓ cña biÓu thøc lùa chän ph¶i ®−îc liÖt kª ®Ó chän, nh−ng ®èi víi mét vµi lùa chän th× kh«ng yªu cÇu hµnh ®éng nµo. VÝ dô nh− sau: case controller_command is when forward => engage_motor_forward; when reverse => engage_motor_reverse; when idle => null; end case; *Ch−¬ng tr×nh con Gièng nh− c¸c ng«n ng÷ lËp tr×nh kh¸c, VHDL cung cÊp c«ng cô thùc hiÖn ch−¬ng tr×nh con linh ho¹t d−íi d¹ng c¸c thñ tôc vµ c¸c hµm. VHDL còng cung cÊp mét kiÓu ®ãng gãi m¹nh ®èi víi tËp c¸c m« t¶ vµ c¸c ®èi t−îng ®−a vµo c¸c ®¬n vÞ d¹ng module. C¸c ®ãng gãi còng cung cÊp mét tiªu chuÈn vÒ tÝnh trõu t−îng d÷ liÖu vµ th«ng tin Èn. CHƯƠNG III THIẾT KẾ HỆ THỐNG SỬ DỤNG PHẦN MỀM XILINX ISE CHƯƠNG 4 : I-Tổng quan phần mền Xilinx ISE Xilinx ISE (Integrated Software Environment) là một bộ phần mềm thi ết kế của Xilinx , cho phép ta thực hiện các hệ thống nhúng c ủa Xilinx t ừ khâu thi ết k ế ban đ ầu (thông qua VHDL, Verilog HDL, ABEL hoặc là vẽ Schematic) cho đ ến khâu cu ối cùng là nạp thiết kế của mình lên FPGA. Để bắt đầu một thiết kế, ta phải tạo m ột project m ới trong ISE thông qua công cụ quản lý ISE Project Navigator. Sau đó ISE Project Navigator sẽ quản lý tất cả các quá trình thiết kế trong trong project đó.
  10. PVP_bk3i1_k50 Quy trình thiết kết trong ISE bao gồm các quá trình sau : Design Entry -> Synthesis -> Implementation -> Verification -> Device Configuration. * Design Entry : Đây là bước đầu tiên trong quá trình thiết kế của ISE. Trong suốt quá trình design entry, ta sẽ thiết kế những file nguồn (Source File) theo nh ững yêu c ầu ban đầu (những mô tả chức năng của hệ thống mà ta cần phải thi ết k ế). Ở b ước này, ta s ẽ dùng những ngôn ngữ mô tả phần cứng như : VHDL, Verilog HDL, Abel ho ặc d ạng Schematic để thiết kế . Chúng ta có thể dùng nhiều ngôn ngữ khác nhau trong cùng m ột thiết kế. Ví dụ như : thiết kế các module chức năng bằng Verilog HDL, sau đó dùng dạng schematic (sơ đồ khối) để thiết kế hệ thống chính. * Synthesis : Sau khi thiết kế hệ thống và thực hiện những mô phỏng để ki ểm tra chức năng logic của hệ thống, chúng ta phải chạy synthesis đ ể chuyển đ ổi nh ững file nguồn được viết bằng VHDL,Verilog HDL, … thành file netlist. Nh ững file netlist này cần thiết để đưa vào quá trình Implementation. * Implementation : Quá trình này sẽ chuyển đổi thiết kế ở mức logic thành các file định dạng vật lý để có thể download xuống FPGA. Sau khi chạy Synthesis, chúng ta sẽ có những file netlist, quá trình Implementation sẽ chuyển đ ổi những file netlist đó thành những file cấu hình vật lý cụ thể dựa vào linh kiện FPGA cụ thể mà ta đang sử dụng, do đó quá trình này đòi hỏi chúng ta phải chỉ rõ linh kiện FPGA nào đang được sử dụng. * Verification: Sau khi chạy bước Implementation, chúng ta sẽ có thể mô phỏng thi ết kế của mình một cách chính xác hơn. Vì quá trình mô ph ỏng ở b ước Design Entry ch ỉ có thể mô phỏng chức năng của mạch chứ nó chưa thể mô ph ỏng th ời gian (timing), timing tùy thuộc vào linh kiện vật lý cụ thể . * Device Configuration: Đây là bước cuối cùng trong suốt quá trình thi ết kế . Ở b ước này các file định dạng cấu hình sẽ được dùng để tạo ra những file bitstream đ ể n ạp xuống chip FPGA .
  11. PVP_bk3i1_k50 CHƯƠNG 5 : II -Thiết kế chương trình điều khiển LED matrix Sơ đồ khối 1. 1.1 Bộ giải mã: Bộ giải mã còn được gọi là bộ phân kênh, nó có n ngõ ra, số ngõ ra này phụ thuộc vào số m bit lựa chọn ở ngõ vào. Mối quan hệ gi ữa n và m là . Trong b ộ gi ải mã có thêm m ột đường Enable để cho phép bộ giải mã hoạt động hay ngừng ho ạt động. Khi E=0 thì t ất cả các ngõ ra đều mang giá trị 0. Khi E=1 thì bộ gi ải mã s ẽ ho ạt đ ộng, nó s ẽ l ựa ch ọn ngõ ra nào đó để đưa dữ liệu đến tùy thu ộc vào các ngõ vào l ựa ch ọn m. Ví d ụ m ột b ộ giải mã 3 sang 8. Nếu ngõ vào địa chỉ là 101 thì thì ngõ ra được lựa chọn để đưa dữ li ệu ra ( lên mức cao), trong khi đó tất cả các ngõ ra còn l ại đ ều không đ ược l ựa ch ọn (tích cực mức thấp). Một bộ giải mã thường dùng rất nhiều thành phần và chúng ta muốn tại m ỗi th ời đi ểm chỉ có một thành phần được cho phép hoạt động mà thôi. Ví dụ trong m ột hệ thống nh ớ lớn sử dụng nhiều con chip nhớ, tại mỗi thời điểm chỉ có m ột con chip nh ớ đ ược tích cực cho phép hoạt động mà thôi. Một ngõ ra c ủa b ộ gi ải mã sẽ đ ược n ối đ ến m ột ngõ vào tích cực trong mỗi con chip. Một địa chỉ được tạo ra t ừ b ộ gi ải mã s ẽ làm tích c ực một con chip nhớ tương ứng. Bảng chân trị, sơ đồ mạch và ký hiệu logic của bộ gi ải mã 3 sang 8 được biểu diễn trong hình dưới. Một bộ giải mã kích cỡ lớn có thể sử dụng một vài các bộ giải mã nhỏ hơn. Ví d ụ trong hình dưới sử dụng 7 bộ giải mã 1 sang 2 để xây dựng bộ giải mã 3 sang 8.
  12. PVP_bk3i1_k50 Một bộ giải mã 3 sang 8 (a) Bảng chân trị; (b) sơ đồ mạch; (c) ký hiệu logic. Hình 2. : Một bộ giải mã 3 sang 8 được xây dựng từ 7 bộ giải mã 1 sang 2. Đoạn mã VHDL được viết theo cấu trúc Behavioral cho bộ giải mã 3 sang 8. Library IEEE; Use IEEE.STD_LOGIC_1164.ALL; ENTITY Decoder IS PORT( E: IN std_logic; A: IN std_logic_vector(2 DOWNTO 0); Y: OUT std_logic_vector(7 DOWNTO 0); END Decoder; ARCHITECTURE Behavioral OF Decoder IS BEGIN PROCESS (E, A)
  13. PVP_bk3i1_k50 BEGIN IF (E='0') THEN -- khong hoat dong Y '0') ; ELSE -- decoder hoat dong CASE A IS -- lua chon ngo ra WHEN "000" => Y Y Y Y Y Y Y Y NULL; END CASE; END IF; END PROCESS; END Behavioral; dạng xung mô phỏng bằng xilinx ISE: 1.2 Bộ đệm Bộ đệm ba trạng thái là bộ có ba trạng thái: 0, 1 và trạng thái th ứ ba đ ược bi ểu th ị b ằng Z. Giá trị của Z đặc trưng cho trạng thái trở kháng cao. B ộ đ ệm ba tr ạng thái đ ược dùng để kết nối một vài dịch vụ trên cùng một bus. Một bus có m ột hay nhi ều đ ường dây truyền tín hiệu. Nếu hai hay nhiều dịch vụ được kết nối một cách trực tiếp đến một bus mà không sử dụng bộ đệm ba trạng thái, thì những tín hiệu này s ẽ b ị sai l ạc trong bus đó. Trong bộ đệm ba trạng thái có sử dụng chân E (enable) để điều khiển hoạt động của nó. Khi E=0, bộ đệm ba trạng thái không được tích cực và ngõ ra y ở trạng thái trở kháng
  14. PVP_bk3i1_k50 cao. Khi E=1, bộ đệm được cho phép hoạt động và ngõ vào d sẽ đưa đ ược d ữ li ệu c ủa nó đến ngõ ra y. Một mạch chỉ với một cổng logic thì không thể tạo ra trạng thái tr ở kháng cao đ ược. Do đó để cung cấp trạng thái trở kháng cao, mạch đệm ba trạng thái sử dụng hai con transistor CMOS đặc biệt kết nối với các cổng logic như trong hình d ưới. Việc có thêm hai con transistor họ CMOS này, chúng ta cần phải có một mạch đ ể đi ều khi ển chúng hoạt động liên kết với nhau để tạo thành một bộ đệm ba trạng thái. B ảng chân tr ị c ủa mạch điều khiển được cho trong hình (c). Khi E=0, cả hai con transistor CMOS đều tắt, y ở trạng thái tr ở kháng cao. Khi E=1 và d=0, nếu chúng ta muốn y=0 thì nMOS dẫn và pMOS tắt, lúc này ngõ ra y sẽ b ị kéo xuống thấp; nếu chúng ta muốn y=1 thì nMOS tắt và pMOS dẫn, lúc này ngõ ra y s ẽ b ị đẩy lên mức cao do y được nối lên nguồn. Mạch có hai ngõ vào E và d nên b ảng chân tr ị sẽ có 4 cặp giá trị là 00, 01, 10, 11. Dựa vào các giá tr ị này c ộng thêm cách gi ải thích v ề hoạt động của các con transistor CMOS ta có thể hoàn thành bảng chân tr ị nh ư hình 2.26(c). Bộ đệm ba trạng thái (a) bảng chân trị; (b) ký hiệu logic; (c) bảng chân trị cho việc phân chia điều khiển cho mạch đệm ba trạng thái; (d) sơ đồ mạch. Đoạn mã VHDL viết theo cấu trúc Behavioral cho bộ đệm ba trạng thái. LIBRARY Ieee; USE IEEE.std_logic_1164.ALL; ENTITY dem_3_trang_thai IS PORT ( E: IN std_logic; d: IN std_logic_vector(7 DOWNTO 0); Y: OUT std_logic_vector(7 DOWNTO 0)); END dem_3_trang_thai; ARCHITECTURE Behavioral OF dem_3_trang_thai IS BEGIN PROGRESS (E, d) BEGIN IF (E = '1') THEN Y
  15. PVP_bk3i1_k50 ELSE Y 'Z'); END IF; END PROGRESS; END Behavioral; dạng đồ thị mô phỏng bằng xilinx ISE : CHƯƠNG 6 : 2. CODE VHDL điều khiển LED matrix : LIBRARY ieee; LIBRARY std_developerskit; USE ieee.std_logic_1164.all; USE std.textio.all; USE IEEE.std_logic_arith.all; USE std_developerskit.std_iopak.all; entity tb is end tb; ARCHITECTURE a OF tb IS CONSTANT DATA_WIDTH : INTEGER :=8; CONSTANT IMAGE_WIDTH : INTEGER := 198; CONSTANT ROW_NUMBER : INTEGER := 135; CONSTANT CLOCK_PERIOD : TIME := 50 ns; CONSTANT F_FACTORS_PART : INTEGER := 15; -- float part width, 10-E4 accuracy CONSTANT INT_FACTORS_PART: INTEGER := 3; -- integer part with, from -5 to +4 range (-4.999999 to 3.999999) CONSTANT FACTORS_WIDTH : integer := (f_factors_part + int_factors_part); -- full factor width
  16. PVP_bk3i1_k50 constant crgb2ycbcr601_a11 : SIGNED(FACTORS_WIDTH-1 DOWNTO 0) := b"000010000011011111"; -- 0.256789 constant crgb2ycbcr601_a12 : SIGNED(FACTORS_WIDTH-1 DOWNTO 0) := b"000100000010000110"; -- 0.504129 constant crgb2ycbcr601_a13 : SIGNED(FACTORS_WIDTH-1 DOWNTO 0) := b"000000110010001000"; -- 0.0979 constant crgb2ycbcr601_a21 : SIGNED(FACTORS_WIDTH-1 DOWNTO 0) := b"111110110100000111"; -- -0.148223 constant crgb2ycbcr601_a22 : SIGNED(FACTORS_WIDTH-1 DOWNTO 0) := b"111101101011000001"; -- -0.290992 constant crgb2ycbcr601_a23 : SIGNED(FACTORS_WIDTH-1 DOWNTO 0) := b"000011100000111000"; -- 0.439215 constant crgb2ycbcr601_a31 : SIGNED(FACTORS_WIDTH-1 DOWNTO 0) := b"000011100000111000"; -- 0.439215 constant crgb2ycbcr601_a32 : SIGNED(FACTORS_WIDTH-1 DOWNTO 0) := b"111101000011101100"; -- -0.367789 constant crgb2ycbcr601_a33 : SIGNED(FACTORS_WIDTH-1 DOWNTO 0) := b"111111011011011100"; -- -0.071426 constant crgb2ycbcr601_b1x : SIGNED(FACTORS_WIDTH-1 DOWNTO 0) := b"000000000000000000"; -- 0 constant crgb2ycbcr601_b2x : SIGNED(FACTORS_WIDTH-1 DOWNTO 0) := b"000000000000000000"; -- 0 constant crgb2ycbcr601_b3x : SIGNED(FACTORS_WIDTH-1 DOWNTO 0) := b"000000000000000000"; -- 0 constant crgb2ycbcr601_b1y : SIGNED(FACTORS_WIDTH-1 DOWNTO 0) := b"000010000000000000"; -- 16 constant crgb2ycbcr601_b2y : SIGNED(FACTORS_WIDTH-1 DOWNTO 0) := b"010000000000000000"; -- 128 constant crgb2ycbcr601_b3y : SIGNED(FACTORS_WIDTH-1 DOWNTO 0) := b"010000000000000000"; -- 128 SIGNAL clk : STD_LOGIC; SIGNAL rstn : STD_LOGIC; SIGNAL x1,x2,x3 : UNSIGNED(DATA_WIDTH-1 DOWNTO 0); SIGNAL x1bv,x2bv,x3bv : BIT_VECTOR(DATA_WIDTH-1 DOWNTO 0); SIGNAL y1,y2,y3 : UNSIGNED(DATA_WIDTH-1 DOWNTO 0); SIGNAL y1c,y2c,y3c : SIGNED(INT_FACTORS_PART-1 DOWNTO 0); SIGNAL y1bv,y2bv,y3bv : BIT_VECTOR(DATA_WIDTH-1 DOWNTO 0); SIGNAL DATA_ENA : STD_LOGIC; SIGNAL DOUT_RDY : STD_LOGIC; BEGIN READ_DATA: PROCESS(CLK, RSTN) FILE file_in : ASCII_TEXT IS "X.txt"; VARIABLE digits_str1 : string(1 to 3); VARIABLE digits_str2 : string(1 to 3); VARIABLE digits_str3 : string(1 to 3); BEGIN if RSTN = '0' THEN
  17. PVP_bk3i1_k50 DATA_ENA
  18. PVP_bk3i1_k50 GENERIC MAP( DATA_WIDTH, F_FACTORS_PART, INT_FACTORS_PART ) PORT MAP( clk => clk, rstn => rstn, data_ena => DATA_ENA, dout_rdy => DOUT_RDY, x1 => x1, x2 => x2, x3 => x3, a11 => crgb2ycbcr601_a11, a12 => crgb2ycbcr601_a12, a13 => crgb2ycbcr601_a13, a21 => crgb2ycbcr601_a21, a22 => crgb2ycbcr601_a22, a23 => crgb2ycbcr601_a23, a31 => crgb2ycbcr601_a31, a32 => crgb2ycbcr601_a32, a33 => crgb2ycbcr601_a33, b1x => crgb2ycbcr601_b1x, b2x => crgb2ycbcr601_b2x, b3x => crgb2ycbcr601_b3x, b1y => crgb2ycbcr601_b1y, b2y => crgb2ycbcr601_b2y, b3y => crgb2ycbcr601_b3y, y1c => y1c, y2c => y2c, y3c => y3c, y1 => y1, y2 => y2, y3 => y3 ); CLOCK : PROCESS BEGIN clk
  19. PVP_bk3i1_k50 wait ; END PROCESS RESET; END a; CHƯƠNG 7 : III - Kết luận Qua quá trình thực hiện đề tài : “Thiết kế bộ xử lý hình ảnh quảng cáo trên nền LED matrix sử dụng FPGA”, từ việc nghiên cứu hệ thống LED matrix, cấu tạo kết nối các phần tử đến cấu trúc cách thiết kế lập trình cho FPGA và sử dụng thành thạo phần mềm Xilinx ISE đã giúp em cũng cố kiến th ức và rút ra đ ược nhi ều bài h ọc quý về FPGA. Do việc thực hiện đề tài chỉ trong phạm vi bài tập lớn nên em ch ỉ thi ết kế mô phỏng dưới dạng mô hình nhỏ, nên không thể hiện hết được ý tưởng cũng như ph ạm vi ứng dụng rộng lớn của để tài, nếu sau này có cơ hội phát tri ển em sẽ cố gắng làm đ ược nhiều hơn nữa, đặc biệt phải có sản phầm thực tế. Em xin chân thành cám ơn th ầy LÊ HẢI SÂM đã trang bị kiến thức cơ bản để em có thể hoàn thành bài tập này.
ADSENSE

CÓ THỂ BẠN MUỐN DOWNLOAD

 

Đồng bộ tài khoản
2=>2