BỘ GIÁO DỤC VÀ ðÀO TẠO TRƯỜNG ðẠI HỌC BÁCH KHOA HÀ NỘI - LUẬN VĂN THẠC SĨ KHOA HỌC NGHIÊN CỨU- ỨNG DỤNG CPLD9500 THIẾT KẾ MODUL ðIỀU KHIỂN VỊ TRÍ NGÀNH: XỬ LÝ THÔNG TIN VÀ TRUYỀN THÔNG Mà SỐ: VŨ THỊ THU HƯƠNG Người hướng dẫn khoa học: TS ðẶNG VĂN CHUYẾT HÀ NỘI 2006 Mơc lơc Trang Lêi cam ®oan Môc lôc DANH mục CáC Từ VIếT TắT DANH mục hình vẽ DANH Mục CáC BảNG Dữ LIệU 10 Mở đầu 11 CH−¬NG 13 Tỉng quan vỊ C«ng nghƯ asic 13 1.1 Sự đời công nghệ AsiC 13 1.2 C¸c h−íng tiÕp cËn thiÕt kÕ ASIC 14 1.2.1 Các công nghệ lập trình thiết kế ASIC 14 1.2.2 Đầu vào thiết kế ASIC 15 1.2.3 ThiÕt kÕ vËt lý 17 1.2.4 C¸c c«ng cu CAD 18 1.3 Các Công cụ thiết kế phát triển ASIC 19 1.3.1 Tổng quan trình thiết kế công cụ thiết kế 19 1.3.2 Giới thiệu công cụ sản phÈm cđa mét sè h ng chuyªn vỊ ASIC 22 1.3.2.1 Giíi thiƯu h ng Xilinx 22 1.3.2.2 Giíi thiƯu h ng Actel 23 1.3.2.3 Giíi thiÖu h ng Altera 24 1.4 Tỉng hỵp Logic 25 CH−¬NG 27 ThiÕt BÞ logic lập trình đợc công nghệ cpld 27 2.1 Lịch sử phát triển vi mạch số lập trình 27 2.2 Cấu trúc họ vi mạch lập trình (pld) 34 2.2.1.Họ vi mạch PROM (Progammable Read Only Memory) 34 2.2.2 Hä vi m¹ch FPLA ( Field Progammable Logic Array) 37 2.2.3 Hä vi m¹ch FPLS ( Field Programable Logic Sequencer) 39 2.2.4 Ho vi m¹ch FPGA ( Field Progammable Gate Array) 40 2.2.5 Ho vi m¹ch PAL (Programmable Array Logic) 41 2.2 Hä vi m¹ch GAL ( Generic Array Logic) 42 2.2 Hä vi m¹ch PEEL (Progammable Electrially Erasable Logic) 43 2.2.8 Hä vi m¹ch EPLD (Erasable PLD) 43 2.2.9 Hä vi m¹ch PML ( Programmable Macro Logic) 45 2.2.10 Hä vi m¹ch ERASIC(Erasable Programmable Application Specific IC) 46 2.2.11 Hä vi m¹ch LCA (Logic Cell Array) 46 CH−¬NG 48 Ngôn ngữ mô tả phần cứng VHDL 48 3.1 Mở đầu 48 3.1.1 Giíi thiƯu 48 2.1.2 Các thuật ngữ VHDL 51 3.2 CÊu trúc chơng trình VHDL 52 3.3 Các đơn vị thiết kế VHDL 53 3.3.1.Gãi (Package) 54 3.3.2 Thùc thÓ (Entity) 55 3.3.3 KiÕn tróc (Architecture) 56 3.3.3.1 Mô tả kiến trúc theo mô hình hoạt động 57 3.3.3.2.Mô tả kiến trúc theo mô hình cấu trúc 58 3.3.4 CÊu h×nh (Configuration) 58 3.4 C¸c kiĨu d÷ liƯu VHDL 59 3.4.1 Các đối tợng liệu 60 3.4.1.1 TÝn hiÖu 60 3.4.1.2 BiÕn 61 3.4.1.3 H»ng 61 3.4.2 Các kiểu liệu 61 3.5 Toán tử biểu thức 62 3.5.2 Các toán hạng 63 3.6 Các lệnh VHDL 64 3.6.1.C©u lƯnh g¸n biÕn 64 3.6.2.Câu lệnh gán tÝn hiÖu 65 3.6.3 C©u lƯnh if 65 3.6.4 C©u lƯnh Case 66 3.6.5 Các lệnh vòng lặp 67 3.6.6 C©u lƯnh Null 68 3.7 C¸c lƯnh song song VHDL 69 3.7.1 Các trình Process 69 3.7.2 C¸c phÐp g¸n tÝn hiƯu song song 70 3.7.3 Phép gán tín hiệu có điều kiện 72 3.7.4 PhÐp g¸n theo lùa chän 73 3.7.5 Khèi 74 3.7.6 Gäi ch−¬ng tr×nh song song 76 CH−¬NG 78 ThiÕt kÕ modul thùc hµnh cpld 78 sư dơng hä cpld XC9500 cđa Xilinx 78 4.1 tỉng quan vỊ hä cpld xc9500 78 4.1.1 Đặc điểm chung hä CPLD XC9500 78 4.1.2 Mô tả kiến trúc 78 4.2 Tr×nh tù thiÕt kÕ cpld 81 4.3 Những công sư dơng thiÕt kÕ CPLD 83 4.3.1 PhÇn mỊm 83 4.3.2 PhÇn cøng 83 4.4 ThiÕt kÕ modul thùc hµnh CPLD 85 4.4.1 Nhiệm vụ yêu cầu modul 85 4.4.2 Sơ đồ nguyên lý modul 85 4.5 Thiết kế số chơng trình VHDL chạy thử modul 87 4.5.1 Bộ đếm nhị phân thuận nghÞch bit 87 4.5.2 Bộ đếm nhị phân bit 90 4.5.3 Bé gi¶i m 4-16 92 4.5.4 Bé chèt bit 94 4.5.5 Mạch ngoại vi cho đồng hồ hiển thÞ sè 96 KÕt luËn 101 Tài liệu tham khảo 103 Phô lôc 104 Sơ đồ chân chức chân CPLD XC 95108 104 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 hoàn toàn chịu trách nhiệm Ngời làm cam đoan: Vũ Thị Thu Hơng Mục lục Trang Lời cam ®oan Môc lôc DANH mơc C¸C Tõ VIÕT T¾T DANH mục hình vẽ DANH Mục CáC BảNG Dữ LIệU Mở đầu 10 CH−¬NG 12 Tæng quan vỊ C«ng nghƯ asic 12 1.1 Sù ®êi cđa c«ng nghƯ AsiC 12 1.2 C¸c h−íng tiÕp cËn thiÕt kÕ ASIC .13 1.2.1 Các công nghệ lập tr×nh thiÕt kÕ ASIC 13 1.2.2 Đầu vào thiết kế ASIC 14 1.2.3 ThiÕt kÕ vËt lý 16 1.2.4 Các công cu CAD 17 1.3 Các Công cụ thiết kế phát triển ASIC 18 1.3.1 Tỉng quan vỊ qu¸ trình thiết kế công cụ thiết kế 18 1.3.2 Giới thiệu công cụ sản phẩm số h ng chuyên vỊ ASIC 21 1.3.2.1 Giíi thiƯu h ng Xilinx 21 1.3.2.2 Giíi thiƯu h ng Actel 22 1.3.2.3 Giíi thiƯu h ng Altera 23 1.4 Tæng hỵp Logic 24 CH−¬NG 27 Thiết Bị logic lập trình đợc công nghệ cpld 27 2.1 Lịch sử phát triển vi mạch số lập trình 27 2.2 Cấu trúc họ vi mạch lập trình (pld) 34 2.2.1.Họ vi m¹ch PROM (Progammable Read Only Memory) 35 2.2.2 Hä vi m¹ch FPLA ( Field Progammable Logic Array) 37 2.2.3 Hä vi m¹ch FPLS ( Field Programable Logic Sequencer) 40 2.2.4 Ho vi m¹ch FPGA ( Field Progammable Gate Array) 41 2.2.5 Ho vi m¹ch PAL (Programmable Array Logic) 42 2.2 Hä vi m¹ch GAL ( Generic Array Logic) 42 2.2 Hä vi m¹ch PEEL (Progammable Electrially Erasable Logic) 44 2.2.8 Hä vi m¹ch EPLD (Erasable PLD) 44 2.2.9 Hä vi m¹ch PML ( Programmable Macro Logic) 46 2.2.10 Hä vi m¹ch ERASIC(Erasable Programmable Application Specific IC) 47 2.2.11 Hä vi m¹ch LCA (Logic Cell Array) 47 CH−¬NG 48 Ngôn ngữ mô tả phần cứng VHDL 48 3.1 Mở đầu 48 3.1.1 Giíi thiƯu 48 2.1.2 Các thuật ngữ VHDL 51 3.2 Cấu trúc chơng trình VHDL .53 3.3 Các đơn vị thiết kế VHDL .54 3.3.1.Gãi (Package) 54 3.3.2 Thùc thÓ (Entity) 56 3.3.3 KiÕn tróc (Architecture) 57 3.3.3.1 Mô tả kiến trúc theo mô hình hoạt động 58 3.3.3.2.Mô tả kiến trúc theo mô hình cấu trúc 58 3.3.4 CÊu h×nh (Configuration) 59 3.4 C¸c kiĨu d÷ liƯu VHDL 60 3.4.1 Các đối tợng liệu 60 3.4.1.1 TÝn hiÖu 60 3.4.1.2 BiÕn 61 3.4.1.3 H»ng 62 3.4.2 Các kiểu liệu 62 3.5 Toán tử biểu thức 63 3.5.2 Các toán hạng 64 3.6 Các lệnh VHDL 65 3.6.1.C©u lƯnh g¸n biÕn 65 3.6.2.Câu lệnh gán tín hiÖu 66 3.6.3 C©u lƯnh if 66 3.6.4 C©u lƯnh Case 67 3.6.5 Các lệnh vòng lặp 68 3.6.6 C©u lƯnh Null 69 3.7 C¸c lƯnh song song VHDL 70 3.7.1 Các trình Process 70 3.7.2 C¸c phÐp g¸n tÝn hiƯu song song 71 3.7.3 Phép gán tín hiệu có điều kiện 72 3.7.4 PhÐp g¸n theo lùa chän 74 3.7.5 Khèi 75 3.7.6 Gọi chơng trình song song 77 CH−¬NG 79 ThiÕt kÕ modul thùc hµnh cpld 79 sö dơng hä cpld XC9500 cđa Xilinx 79 4.1 tæng quan vÒ hä cpld xc9500 79 4.1.1 Đặc điểm chung họ CPLD XC9500 79 4.1.2 Mô tả kiến trúc 79 4.2 Tr×nh tù thiÕt kÕ cpld 82 4.3 Những công cụ sử dụng thiÕt kÕ CPLD 84 4.3.1 PhÇn mÒm 84 4.3.2 PhÇn cøng 84 4.4 ThiÕt kÕ modul thùc hµnh CPLD .86 4.4.1 NhiƯm vơ yêu cầu modul 86 4.4.2 Sơ đồ nguyên lý cña modul 86 4.5 ThiÕt kÕ mét sè ch−¬ng trình VHDL chạy thử modul 88 4.5.1 Bộ đếm nhị phân thuận nghịch bit 88 4.5.2 Bé ®Õm nhị phân bit 91 4.5.3 Bé gi¶i m 4-16 93 4.5.4 Bé chèt bit 96 4.5.5 M¹ch ngo¹i vi cho đồng hồ hiển thị số 97 KÕt luËn 102 Tài liệu tham khảo 104 Phô lôc 105 Sơ đồ chân chức chân CPLD XC 95108 105 DANH mục CáC Từ VIếT TắT STT Ch vit tt Tiếng Anh IC Integrated Circuit ASIC Application Specific Integrated Circuit CPLD Complex Programmable Logic Devices FPGA Field Programmable Gate Array VHSIC Very High Speed IC VHDL VHSIC Hardware Description Languages CICC Custom Integrated Circuit Conference CBICs Cell Based ICs PLD Programmable Logic Devices 10 ASSPs Application Specific Standard Product 11 CAD Computer Aided Design 12 CDL Computer Design Language 13 CONLAN Consensus Language 14 IDL Interactive Design Language 15 ISPS Intruction Set Proccessor Specification 16 TEG¢S Test generation and Simulation 17 IDE Integrated Design Environment 18 PAL Programmable Array Logic 19 HAL Hard Array Logic 20 FPLS Field Programmable Logic Sequencer 21 AMAZE Automated Map and Zap Equations 22 ABEL Advanced Boolean Expression Language 23 IFL Intergrated Fuse Logic 24 CUPL Universal Compiler for Programmable 25 LCA Logic Call Array 26 PROM Progammable Read Only Memory 27 GAL Generic Array Logic 28 FPLA Field Progammable Logic Array 29 PEEL Progammable Electrially Erasable Logic 30 EPLD Erasable PLD 31 PML Programmable Macro Logic 32 FPLS Field Programable Logic Sequencer 33 ERASIC Erasable Programmable Application Specific IC 34 LCA Logic Cell Array 35 JTAG Join Test Action Group 94 0 0 0000000000000001 0 0000000000000010 0 0000000000000100 0 1 0000000000001000 0 0000000000010000 1 0000000000100000 1 0000000001000000 1 0000000010000000 0 0000000100000000 0 0000001000000000 1 0000010000000000 1 0000100000000000 1 0 0001000000000000 1 0010000000000000 1 0100000000000000 1 1 1000000000000000 - Chơng trình ®iỊu khiĨn: ********************************************************************* library ieee; Defines std_logic types use ieee.std_logic_1164.all; entity Decoder2 is ort ( A, B, C, D : in std_logic; Defines ports Q : out std_logic_vector(15 downto 0)); 95 end Decoder2; architecture Decoder2_arch of Decoder2 is Signal IN_DATA : std_logic_vector(3 downto 0); Defines internal signals begin IN_DATA Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q