Hình 2.1 Cấu trúc chung của chơng trình VHDL Hình 2.2 Quan hệ giữa các đơn vị thiết kế Hình 3.1 Trình tự thiết kế với FPGA Hình 3.2 Sơ đồ khối của modul Hình 3.3 Kit XSA- 100 Hình 3.4 G
-1- Lời cam đoan Tôi xin cam đoan luận văn kết nghiên cứu thân dới hớng dẫn TS Đặng Văn Chuyết Nếu có sai phạm, xin chịu hoàn toàn trách nhiệm Ngời làm cam đoan Nguyễn Viết Tuyến Nguyễn Viết TuyÕn XLTT – TT 2003 Tai ngay!!! Ban co the xoa dong chu nay!!! 17057205110781000000 -2- Môc lôc Trang Lêi cam ®oan Môc lôc Danh mục ký hiệu, chữ viết tắt Danh mục hình vẽ Lời nói đầu Ch¬ng 1:Tỉng quan vỊ mạch logic lập trình đợc 1.1 LịCH Sử PHáT TRIểN CủA VI MạCH Số LậP TRìNH 1.2 CÊu tróc cđa thiÕt bÞ logic lập trình đợc (Programmable Logic Architecture: PLA) 12 1.3 Nh÷ng u thÕ cđa thiết kế đợc trợ giúp máy tính logic cã thĨ lËp tr×nh (Computer-Aided Design and Programmable Logic) 15 1.4 D·y cổng logic lập trình đợc theo trờng (FPGA: Field Programmable Gate Array) 18 1.4.1 Giíi thiƯu 18 1.4.2 CÊu tróc cđa FPGA 18 1.4.3 Các kênh kết nối 28 1.4.4 M¹ng kÕt nèi tỉng thể đệm 31 Chơng 2: Ngôn ngữ mô tả phần cứng VHDL (Very High Speed Intergrated Circuit Hardware Description Language) 33 2.1 Mở đầu 33 2.1.1 Giíi thiƯu 33 2.1.2 Các thuật ngữ VHDL 36 2.2 Cấu trúc chơng trình VHDL 37 2.3 Các đơn vị thiết kế VHDL 38 NguyÔn ViÕt TuyÕn XLTT – TT 2003 -3- 2.3.1.Gãi (Package) 38 2.3.2 Thùc thÓ (Entity) 40 2.3.3.KiÕn tróc (Architecture) 40 2.3.4.CÊu h×nh (Configuration) .42 2.4 C¸c kiĨu d÷ liƯu VHDL 43 2.4.1 Các đối tợng liệu 43 2.4.2 Các kiểu liệu 45 2.5 Toán tử biểu thøc 45 2.5.1 C¸c to¸n tư 46 2.5.2 Các toán hạng 46 2.6 Các lệnh VHDL 47 2.6.1.Câu lệnh gán biến 47 2.6.2.Câu lệnh gán tín hiệu 47 2.6.3 C©u lƯnh if 48 2.6.4 C©u lƯnh Case 48 2.6.5 C¸c lệnh vòng lặp 49 2.6.6 C©u lƯnh Null 50 2.7 C¸c lƯnh song song VHDL 51 2.7.1 Các trình Process 51 2.7.2 C¸c phÐp g¸n tÝn hiƯu song song 52 2.7.3 PhÐp g¸n tÝn hiƯu cã ®iỊu kiƯn 53 2.7.4 PhÐp g¸n theo lùa chän 55 2.7.5 Khèi 56 2.7.6 Gọi chơng trình song song 57 2.7 Chơng trình 58 Ch¬ng 3: ThiÕt kÕ modul Thùc hµnh FPGA sư dơng FPGA XC2S100-5PQ144C cña Xilinx 60 3.1 Tr×nh tù thiÕt kÕ víi FPGA 60 3.2 ThiÕt kÕ modul thùc hµnh FPGA 61 3.2.1 Mục đích yêu cầu modul 61 3.2.2 Sơ đồ khối đặc điểm khối 62 NguyÔn ViÕt TuyÕn XLTT – TT 2003 -4- 3.2.3 Những công cụ sử dụng thiết kế modul 64 3.2.4 ThiÕt kÕ c¸c khèi chøc modul 65 3.3.Thiết kế mẫu mạch giải mà bàn phím chạy thử modul 73 3.3.1 ThiÕt kÕ ch¬ng tr×nh VHDL 74 3.3.2.Tỉng hỵp thiÕt kÕ 89 3.3.3 Đặt chân cho FPGA 90 3.3.4.T¹o chuỗi bit 90 3.3.5 Nạp FPGA chạy thử 91 KÕt luËn 92 Tài liệu tham khảo 93 Phụ lục 1: Chơng trình nguồn khối tạo tín hiệu đầu vào Phụ lục 2: Chơng trình VHDL mô tả bé ®Õm Ngun ViÕt Tun XLTT – TT 2003 -5- Danh mục ký hiệu, chữ viết tắt Ký hiƯu viÕt t¾t IFL MSI PCB AMD ASIC AMAZE CPLD CPLD CAD CLBs ERASIC FPGA GAL GSR HDL IOBs LCA PAL PLA PML SPLD SSI CUPL VHDL TiÕng Anh Intergrated Fuse Logic Medium Scale Integrated Printed Circuit Board Advance Micro Devices Application Specific Integrated Circuit Automated Map and Zap Equations Complex Programmable Logic Devices Complex Programmable Logic Devices Computer Aided Design Configurable Logic Blocks Erasable Application Specific IC Field Programmable Gate Array Generic Array Logic Global Initialization Signal Hardware Description Languages Input/Output Blocks Logic Call Array Programmable Array Logic Programmable Logic Device Programmable Macro Logic Simple Programmable Logic Devices Small Scale Integrated Universal Compiler for Programmable B Very High Speed Intergrated Circuit d NguyÔn ViÕt TuyÕn XLTT – TT 2003 i i -6- Danh mục hình vẽ Hình Tên hình Hình1.1 Hình1.2 Hình1.3 Hình1.4 Hình1.5 Hình1.6 Hình1.7 Hình1.8 H×nh1.9 H×nh1.10 H×nh1.11 H×nh1.12 H×nh 2.1 H×nh 2.2 H×nh 3.1 H×nh 3.2 H×nh 3.3 H×nh 3.4 H×nh 3.5 H×nh 3.6 Hình 3.7 Hình 3.8 Hình 3.9 Mạch PLA Mạch PAL Mạch SPLD Bảng LUT đầu vào Qui trình thiết kế xây dựng mạch số Cấu trúc chung FPGA Một CLB điển hình FPGA dòng Spartan Bộ tạo hàm đầu vào Sơ đồ khối chức Flip-Flop CLB Ghép nối tín hịêu điều khiển Sơ đồ khối IOB Sơ đồ khối chức IOB Cấu trúc chung chơng trình VHDL Quan hệ đơn vị thiết kế Trình tự thiết kế với FPGA Sơ đồ khối modul Kit XSA- 100 Giao tiếp FPGA máy tính thông qua cổng LPT Giao diện chơng trình tạo tín hiệu đầu vào cho mạch tổ hợp Giao diện chơng trình tạo tín hiệu cho khối giải mà bàn phím Giao diện chơng trình tạo tín hiệu điều khiển đếm Sơ đồ nguyên lý khối nguồn Sơ đồ nguyên lý nodul H×nh 3.10 H×nh 3.11 H×nh 3.12 H×nh 3.13 H×nh 3.14 Hình ảnh thật modul Sơ đồ khối mạch giải mà bàn phím Tổng hợp logic Sơ đồ nguyên lý chọn tần số Đặt chân cho FPGA Nguyễn Viết Tuyến XLTT TT 2003 -7- Lời nói đầu Trong năm gần công nghệ điện tử đà phát triển nhảy vọt Các loại IC LSI, VLSI với khả tích hợp tới hàng triệu Transistor ®· ®êi víi nhiỊu øng dơng kh¸c Công nghệ thông tin, Điện tử viễn thông, Tự động hoá không ngừng đáp ứng nhu cầu xà hội Một công nghệ đợc đời, cã thĨ thay thÕ cho c¸c hƯ thèng sè tríc đòi hỏi nhiều thời gian chi phí cho nghiên cứu chế tạo, công nghệ ASIC (Application Specific Integrated Circuit) Dẫn đầu lĩnh vực sản phẩm FPGA (Field Programmable Gate Array) CPLD (Complex Programmable Logic Devices) Sư dơng FPGA hc CPLD tối thiểu hóa đợc nhiều công đoạn thiết kế, lắp ráp hầu hết đợc thực máy tính Các ngôn ngữ mô phần cứng (HDL: Hardware Description Languages) nh ABEL, VHDL, Verilog, Schematic cho phÐp thiết kế mô hoạt động mạch chơng trình Các chơng trình mô cho phép xác định lỗi thiết kế cách dễ dàng kết thực chơng trình file bit cấu hình (bitstream) để nạp (download) vào FPGA CPLD để hoạt động giống nh mạch logic Các FPGA CPLD với khả tích hợp cao tới hàng triệu gate cấu trúc mạch tối u hoá mật độ tích hợp, hiệu suất cao cho phép xử lý nhanh số liệu, độ tin cậy chất lợng cao, dễ sử dụng đợc ứng dụng đa dạng nhiều loại thiết bị điện tử Trong khuôn khổ luận văn tốt nghiệp đợc hớng dẫn, giúp đỡ Tiến sỹ Đặng Văn Chuyết, mạnh dạn tìm hiểu nghiên cứu công nghệ Ngun ViÕt Tun XLTT – TT 2003 -8- FPGA vµ thiết kế modul thực hành FPGA để phục vụ công tác giảng dạy trờng Cao đẳng Công nghiệp Hà nội Nội dung luận văn bao gồm chơng, đó: Chơng 1: Tổng quan mạch logic lập trình đợc công nghệ FPGA Chơng 2: Ngôn ngữ mô tả phần cứng VHDL Chơng 3: Thiết kế modul thùc hµnh FPGA sư dơng FPGA XC2S100 cđa Xilinx Ci luận văn phụ lục: Phụ lục 1: Chơng trình nguồn tạo tín hiệu đầu vào đợc viết Visual Basic 6.0 Phụ lục 2: Chơng trình VHDL mô tả đếm Do thời gian khả có hạn nên luận văn thiếu sót, tác giả mong nhận đợc ý kiến đóng góp thầy giáo, cô giáo Hà nội, ngày 25 tháng 10 năm 2005 Ngời viết luận văn Nguyễn ViÕt TuyÕn NguyÔn ViÕt TuyÕn XLTT – TT 2003 -9- Chơng1 Tổng quan mạch logic lập trình đợc công nghệ FPGA 1.1 LịCH Sử PHáT TRIểN CủA VI MạCH Số LậP TRìNH Trớc thời kỳ vi mạch số lập trình PLD (Programmable Logic Device) đời, thiết kÕ logic sè trun thèng th× bao gåm nhiỊu vi mạch TTL(Transistor Transistor Logic) loại MSI (Medium Scale Integrated) SSI (Small Scale Integrated) kết hợp lại để tạo hàm logic mong muốn Những nhà thiết kế dựa vào sách tra cứu vi mạch số để tìm hiểu thông số kỹ thuật, sau định sử dụng vi mạch số cần thiết cho yêu cầu thiết kế họ Điều bất lợi cđa viƯc thiÕt kÕ nµy lµ mét board sư dụng nhiều vi mạch, sửa chữa gặp nhiều khó khăn Vào năm 1975, công ty SIGNETICS đà giới thiệu vi mạch số lập trình nhớ 82S100 (hiện PLS100) gọi mảng logic lập trình trờng (Field-Programmable Logic Array) Napoleon Cavlan đợc coi cha đẻ mạch logic lập trình, lúc nhà quản lý ứng dơng PLA cđa Signetics ®· thùc sù hiĨu r»ng sư dụng PLA phơng pháp tốt để thiết kế thay đổi hệ thống số Trong đó, công ty Harris đà sớm giới thiệu PROM, họ trình bày triển vọng PROM đà ứng dụng vào số mạch logic Công ty National Semiconductor đà chế tạo mặt nạ lập trình cho PLA (Programmable Logic Array), cấu tạo gồm mảng AND lập trình kèm với mảng OR lập trình, cho phép thực tổ hợp tổng tích số Nguyễn Viết Tuyến XLTT TT 2003 -10- hàm logic tiêu chuẩn Bằng cách kết hợp công nghệ PROM sử dụng nguyên tắc cầu chì với khái niệm PLA, Cavian đà thuyết phục đợc nhà quản lý công ty Signetics để đa dự án PLAvào sản xuất Vi mạch PLA 82S100, thành viên họ vi mạch IFL (Intergrated Fuse Logic) có hình dạng 28 chân Cấu trúc PLA gồm mảng AND lập trình mảng OR lập trình, cho phép thực tổ hợp logic tổng tích số đơn giản Vào năm 1977 Signetics giới thiệu họ vi mạch FPGA (Field Programmable Gate Array) 82S103 Hä FPGA cã cÊu tạo mảng AND mức đơn với ngõ vào lập trình đợc cực tính ngõ cho phép thực hàm logic (AND, OR, NAND, NOR, INVERT), cÊu tróc cđa hä FPLS cã chức FlipFlop để thực trạng thái hàm Đồng thời Signetics giới thiệu AMAZE (Automated Map and Zap Equations) chơng trình biên dịch để hổ trợ cho vi mạch họ Tơng tự, công ty chế tạo PLD khác đà lần lợc giới thiệu phần mềm hỗ trợ họ Tuy thế, kĩ thuật logic lập trình tiếp tục cải tiến vi mạch phát triển giai đoạn thứ hai đợc giới thiệu vào năm 1983 Công ty AMD (Advance Micro Devices) đà giới thiệu PAL22V10 với đặc điểm đặc biệt linh động cổng PLD 10 ngõ vào Mỗi cổng PLD có khả tổ hợp với ghi ngõ ngõ vào Cổng đệm ngõ ba trạng thái đợc điều khiển tích số riêng cho phép vận hành hai chiều Tất ghi đợc reset tự động trình tắt hay mở ghi có khả đặt trớc, đặc điểm đặc biệt cho việc kiểm tra sau Với vi mạch mới, đợc giới thiệu thờng xuyên thị trờng đà dẫn đến việc cần thiết phải có phần mềm hỗ trợ trình sử dụng PLD để đạt hiệu cao Vào tháng 9/1983, Công ty Assisted Technology đà Nguyễn Viết Tuyến XLTT – TT 2003