Luận văn thạc sỹ -1- Nghiên cứu - úng dụng FPGA Lời cam đoan Tôi xin cam đoan luận văn kết nghiên cứu th©n d-íi sù h-íng dÉn cđa TS Ngun Nam Qu©n Nếu có sai phạm, xin chịu hoàn toàn trách nhiệm Ng-ời làm cam đoan Hoàng Mạnh Kha Hoàng Mạnh Kha - Lớp CH ĐTVT 2002-2004 Luận văn thạc sü -2- Nghiªn cøu - óng dơng FPGA Mơc lơc Trang Lêi cam ®oan Môc lôc Lời nói đầu Ch-ơng 1: thiết bị logic lập trình ®-ỵc (Programmable Logic devices) 1.1 Tæng quan… 1.1.1 Tổng quan công nghệ 1.1.2 T¹i l¹i cÇn USIC 1.1.3 Các thiết bị logic lập trình đ-ợc PLD (Programmable Logic Devices) 1.2 C«ng nghƯ PLDs 1.2.1 Phân loại PLD 1.2.2 PLD tæ hỵp 10 1.2.3 PLD tuÇn tù 13 1.2.4 Các mảng cổng logic lập trình đ-ợc (Programable Gate Arrays) 16 Ch-ơng 2: Công nghệ asic công cụ thiết kế 21 2.1 Sự đời công nghệ ASIC 21 2.2 Các hÃng phát triển ứng dụng công nghệ ASIC 22 2.3 C¸c h-íng tiÕp cËn thiÕt kÕ ASIC 22 2.3.1 Các công nghệ lập trình thiết kÕ ASIC 22 2.3.2 Đầu vào thiết kế ASIC 23 2.3.3 ThiÕt kÕ vËt lý 25 2.3.4 Các công cụ CAD 26 2.4 Đầu vào thiết kế ASIC 26 2.4.1 Th- viÖn thiÕt kÕ ASIC 26 2.4.2 Các vi mạch ASIC lập trình đ-ợc 27 2.4.3 Các phần tử logic ASIC lập trình đ-ợc 28 2.4.4 Các phần tử vào/ra ASIC lập trình đ-ợc 28 Hoàng Mạnh Kha - Lớp CH ĐTVT 2002-2004 Luận văn thạc sỹ -3- Nghiên cứu - úng dụng FPGA 2.4.5 Các phần tử ASIC liên kết nối lập trình đ-ợc 29 2.4.6 PhÇn mỊm thiÕt kÕ ASIC lập trình đ-ợc 29 2.5 Tỉng hỵp logic 30 2.5.1 VÝ dơ vỊ tỉng hỵp logic 31 2.5.2 VHDL vµ tỉng hỵp logic 33 2.5.3 Tỉng hỵp bé nhí 34 2.6 M« pháng 35 2.7 Các công cụ thiết kế phát triển ASIC 36 2.7.1 Tỉng quan vĨ qu¸ trình thiết kế công cụ thiết kế 36 2.7.2 Giới thiệu công cụ sản phẩm số hÃng chuyên ASIC 38 2.8 Giới thiệu số ngôn ngữ mô tả phÇn cøng HDL (Hardware Description Languages) 40 2.8.1 VHDL 40 2.8.2 Ngôn ngữ mô tả phần cứng ABEL 47 2.8.3 Ngôn ngữ Schematic Editor 56 2.8.4 Xây dựng số ch-ơng trình ứng dụng 59 Ch-ơng 3: Thiết kế mạch ®iỊu khiĨn ®Ìn giao th«ng sư dơng FPGA XC2S100-Spartan II cđa Xilinx 66 3.1 Tỉng quan mạch điều khiển đèn giao thông 66 3.1.1 Nhiệm vụ yêu cÇu 66 3.1.2 Sơ đồ khối đặc điểm khèi 67 3.2 Phần mềm phần cứng đ-ợc sử dụng thiết kế mạch điều khiển đèn giao thông 68 3.2.1 Các phần mềm sử dông thiÕt kÕ 68 3.2.2 Chip xc2s100 dßng Spartan II sư dơng thiÕt kÕ 68 3.2.3 Ng«n ngữ mô tả phần cứng đ-ợc sử dụng VHDL (Very high speed integrated circuit Hardware Description Languages) 73 3.2.4 Phần cứng mạch điện 73 3.3 Tr×nh tù thiÕt kÕ víi FPGA 75 3.4 Ch-ơng trình VHDL thực mạch chức 76 3.4.1 M¹ch chia xung clock (chia_tan.vhd) 76 3.4.2 Bé ®Õm thêi gian thùc (bodem.vdh) 77 Hoàng Mạnh Kha - Lớp CH ĐTVT 2002-2004 Luận văn thạc sỹ -4- Nghiên cứu - úng dụng FPGA 3.4.3 Mạch điều khiển đèn (Traffic) 80 3.4.4 Sơ đồ mạch logic đ-ợc cấu hình FPGA 83 3.4.5 Bo mạch điều khiển đèn giao thông 84 KÕt luËn 86 Tµi liƯu tham kh¶o 87 Hoàng Mạnh Kha - Lớp CH ĐTVT 2002-2004 Luận văn thạc sỹ -5- Nghiên cứu - úng dụng FPGA 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, thay cho 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) vµ CPLD (Complex Programmable Logic Devices) công ty Xilinx Sử dụng FPGA 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ỹ Nguyễn Nam Quân Thạc sỹ Phạm Xuân Khánh, mạnh dạn tìm hiểu nghiên cứu công nghệ công ty Xilinx Qua nghiên cứu tìm hiểu thiết bị lập trình đ-ợc Xilinx, sử dụng chip XC2S100 dòng Spartan II thiết kế mạch điều khiển đèn giao thông Nội dung luận văn bao gồm ch-ơng, đó: Ch-ơng 1: Giới thiệu thiết bị logic lập trình đ-ợc PLD Ch-ơng 2: Giới thiệu công nghệ ASIC công cụ thiết kế Ch-ơng 3: Trình bày b-ớc thiết kế mạch điều khiển đèn giao thông Do thời gian khả có hạn nên luận văn nhiều thiếu sót Rất mong đ-ợc góp ý thông cảm thầy giáo, cô giáo Hoàng Mạnh Kha - Lớp CH ĐTVT 2002-2004 Luận văn thạc sỹ -6- Nghiên cứu - úng dụng FPGA Hà nội, ngày 20 tháng 11 năm 2004 Học viên Hoàng Mạnh Kha Hoàng Mạnh Kha - Lớp CH ĐTVT 2002-2004 -7- Luận văn thạc sỹ Nghiên cứu - úng dụng FPGA Ch-ơng1 Các thiết bị logic lập trình đ-ợc (Programmable Logic devices) 1.1 tổng quan 1.1.1 Tổng quan công nghệ Các lựa chọn đà có để thực thiết kế mạch đà có thay đổi to lớn vài năm trở lại Một điều quan trọng việc thiết kế cần phải nghiên cứu ph-ơng thức thực cách cẩn thận tr-ớc Các b-ớc cần làm suốt trình thiết kế phụ thuộc hoàn toàn vào ph-ơng thức thực mà lựa chọn Sự phức tạp hệ thống tăng lên cho kết mạch tích hợp mức cao microchip Hiện có mức tích hợp sau: - SSI (Small Scale Integration), chứa nhiều cổng độc lập gói đơn, thông th-ờng số cổng không v-ợt 10 cổng - MSI (Medium Scale Integration) có độ phức tạp cao khoảng từ 10 đến 100 cổng gói đơn - LSI (Large Scale Integration) có khoảng từ 100 đến vài nghìn cổng gói đơn - VLSI (Very Large Scale Integration) chứa từ vài nghìn cổng đến hàng triệu cổng gói đơn Ngoài ra, IC đ-ợc phân chia theo chức mà thực hiện, chức phù hợp với thị tr-ờng ảnh h-ởng tới giá thành thiết bị: - Thông th-ờng (General): thiết bị phục vụ cho mục đích thông th-ờng - ASIC (Application Specific IC): sư dơng c¸c chip hiƯn đại, điều khiển nhúng - USIC (User Specific IC): đ-ợc thiết kế đáp ứng nhu cầu ng-ời sử dụng Hoàng Mạnh Kha - Lớp CH ĐTVT 2002-2004 -8- Luận văn thạc sỹ Nghiên cứu - úng dụng FPGA 1.1.2 Tại lại cần USIC Hệ thống kích cỡ nhỏ hơn: Các thành phần cấu hình thay đổi đ-ợc cho phép giảm khối l-ợng không gian chip, từ hệ thống đạt đ-ợc kích th-ớc vật lý nhỏ Các hệ thống có giá thành thấp: Khi thành phần LSI hay VLSI đ-ợc sử dụng thay cho thành phần logic chuẩn nh- SSI hay MSI ta đà tiết kiệm đ-ợc cho hệ thống khoản chi phí: chi phí sản xuất, tích hợp, in mạch, thiết kế mạch Tăng khả hoạt động (Higher performance): việc giảm số l-ợng IC làm tăng tốc độ hoạt động hệ thống nh- giảm l-ợng tiêu thụ Tăng độ tin cậy: mà khả cố hệ thống liên quan trực tiếp đến số l-ợng IC hệ thống hệ thống sử dụng chip LSI hay VLSI tuỳ biến đ-ợc, đà đ-ợc thống kê có độ tin cậy cao hệ thống t-ơng tự sử dụng thiết bị SSI hay MSI Bảo mật thiết kế: Các hệ thống đ-ợc thiết kế với thành phần chuẩn đ-ợc chép dễ dàng, hệ thống có chứa IC mà ng-ời sử dụng thay đổi đ-ợc lại bị chép khả phân tích ng-ợc hệ thống khó Vì sử dụng IC mà ng-ời dùng định nghĩa cho phép bảo vệ đ-ợc quyền thiết kế Tăng độ linh hoạt hệ thống: Các thành phần tuỳ biến cho phép thiết kế hệ thống đáp ứng yêu cầu khách hàng cách dễ dàng, đồng nghĩa với việc nâng cấp hệ thống chống lại lạc hậu lỗi thời hệ thống Các phân tích đ-ợc tổng hợp theo biểu đồ Hình 1.1 Cost VLSI SSI Quality Hình 1.1: Mối liên quan công nghệ giá Hoàng Mạnh Kha - Lớp CH ĐTVT 2002-2004 Luận văn thạc sỹ -9- Nghiên cứu - úng dụng FPGA 1.1.3 Các thiết bị logic lập trình đ-ợc PLD (Programmable Logic Devices) Hiện có IC mà ng-ời thiết kế phần cứng lập trình để thực chức logic Việc xuất công nghệ PLD đà h-ớng ng-ời thiết lựa chọn thứ linh hoạt USIC mức giá chấp nhận đ-ợc Với tiên tiến công nghệ PLD, số nhà sản xuất đà phát triển gói CAD (Computer Aided Design) biên dịch cho phép nhà thiết kế phần cứng thiết kế mạch số sử dụng phần mềm, kiểm tra cuối thiết kế vào PLD Điều thật đơn giản việc thiết kế phần cứng mà không cần có bo mạch thật Hầu hết hệ thống nayđ-ợc thực sử dụng kết hợp xu h-ớng: - Các thiết bị logic có chức cố định: + Các thiết bị loại phù hợp với hệ thống đơn giản yêu cầu tốc độ thực lớn để thực thuật toán đặc biệt (bằng cách sử dụng song song hàm chức nhỏ) + Số l-ợng chip lớn phí cho hệ thống tăng giảm độ tin cậy hệ thống - PLDs: + Thích hợp với hệ thống có độ phức tạp vừa phải hệ thống thực thuật toán đặc biệt + Giảm số l-ợng chip hệ thống, giảm đ-ợc chi phí, tăng độ tin cậy khả bảo d-ỡng cho hệ thống - Thực vi xử lý: + Thích hợp với hệ thống phức tạp hệ thống cần có khả lập trình với mục đích chung + Giảm số l-ợng chip hệ thống, giảm đ-ợc chi phí, tăng độ tin cậy khả bảo d-ỡng cho hệ thống 1.2 công nghệ PLDs 1.2.1 Phân loại PLD PLDs đ-ợc phân chia thành loại sau: - PLD tổ hợp (Combination PLD): ã PROM (Programable Read Only Memory) • PLA (Programable Logic Array) • PAL (Programable Array Logic) Hoàng Mạnh Kha - Lớp CH ĐTVT 2002-2004 -10- Luận văn thạc sỹ Nghiên cứu - úng dụng FPGA PLD (Sequential PLD): - ã SPLD (Sequential Programable Logic Devices) ã CPLD (Complex Programable Logic Devices) Các mảng cổng logic lập trình đ-ợc (Programable Gate Arrays): - • FPGA (Field Programable Gate Arrays) 1.2.2 PLD tỉ hỵp 1.2.2.1 PROM 2k x n ROM k inputs (address) n outputs (data) Hình 1.2: Sơ đồ khối ROM Fixed inputs Programmable AND array Connections Programmable OR array outputs (decoder) Hình 1.3: Sơ đồ khối PROM Các PROM đ-ợc sử dụng với mục đích thiết bị nhớ l-u trữ cố định thông tin nhị phân Các trình lập trình liên quan đến việc đốt cháy cầu chì (fuse) Nh-ng PROM lại lý t-ởng cho việc thực logic mà có 10 tín hiệu đầu vào, cấu trúc bên tập cấc cổng AND OR Các PROM đ-ợc thiết kế nh- thiết bị logic th-ờng đ-ợc biết đến d-ới tên PLE (Các thành phần logic lập trinhg đ-ợc - Programable Logic Elements) Do vËy, ta cã thĨ xem c¸c PROM mảng AND cố định mảng OR lập trình đ-ợc Chúng đ-ợc sử dụng để làm mạch tích hợp chung mô hình tổng cđa c¸c minterm 1.2.2.2 PAL inputs Programmable Connections Programmable Fixed AND array OR array Hình 1.4: Sơ đồ khối PAL Hoàng Mạnh Kha - Lớp CH ĐTVT 2002-2004 outputs -73- Luận văn thạc sỹ Nghiên cứu - úng dụng FPGA 3.2.3 Ngôn ngữ mô tả phần cứng đ-ợc sử dơng lµ VHDL (Very high speed integrated circuit Hardware Description Languages) 3.2.4 Phần cứng mạch điện +) Máy vi tính có cấu hình phù hợp để cài đ-ợc ch-ơng phần mềm WebPACK 6.2_fcfull_i Cụ thể máy tính có cấu hình chạy tốt hệ điều hành Windows2000 WinXP Cổng song song máy tính hoạt động ë chÕ ®é EPP +) XSA-100 Board (XSA-100 Board V1.0) tập đoàn XESS nh- hình 3.2, gồm: TT Tên tiÕng Anh Tªn tiÕng ViƯt XC2S100 FPGA XC2S100 FPGA 16-Mbyte SDRAM 16-Mbyte SDRAM 256-KByte Flash 256-KByte Flash 100 MHz programmable oscillator Bộ tạo dao động nội tạo xung clock tần số 100 MHz Parallel port Cæng song song mouse/keyboard PS/2 port Cæng giao tiÕp víi cht vµ bµn phÝm VGA monitor port Cỉng đ-a tín hiệu hình 7-segment LED LED 84-pin prototyping interface 84 ch©n giao tiÕp Board mạch 10 9V DC power jack Jack nguån 9V 11 5V / 3.3V / 2.5V regulators Ngn ỉn ¸p 5V / 3.3V / 2.5V 12 Downloading cable C¸p song song giao tiÕp víi cỉng song song cđa m¸y vi tÝnh 13 VDC power supply (North American) Bé nguån cung cÊp 9VDC +) Board m¹ch in mô việc điều khiển ngà t- giao thông Hoàng Mạnh Kha - Lớp CH ĐTVT 2002-2004 Luận văn thạc sỹ -74- Nghiên cứu - úng dụng FPGA a) b) c) H×nh 3.2 a) b) c) a) Bé nguồn b) XSA-100 Board V1.0 c) Sơ đồ nguyên lý XSA-100 Board V1.0 Hoàng Mạnh Kha - Lớp CH ĐTVT 2002-2004 Luận văn thạc sỹ -75- Nghiên cứu - óng dơng FPGA 3.3 Tr×nh tù thiÕt kÕ víi FPGA Hình 3.3: Trình tự thiết kế với FPGA Hoàng Mạnh Kha - Lớp CH ĐTVT 2002-2004 Luận văn thạc sỹ -76- Nghiªn cøu - óng dơng FPGA B-íc 1: ViÕt ch-ơng trình mô tả mạch logic cần thiết kế ngôn ngữ mô tả phần cứng VHDL Ta dùng ch-ơng trình vẽ mạch schemantic editor để mô tả mạch logic B-ớc 2: Sử dụng ch-ơng trình tổng hợp logic (Logic synthesizer) để chuyển đổi HDL schemantic thành netlits Netlist mô tả cổng logic kết nối chúng B-ớc 3: Chúng ta sử dụng công cụ thực (Implementation tools) để ánh xạ cổng logic kết nối cổng vào FPGA B-ớc 4: Khi công việc thực hoàn tất, ch-ơng trình tạo trạng thái chuyển mạch ma trận định tuyến (Routing matrices) tạo chuỗi bit (Bitstream) lần l-ợt t-ơng ứng với trạng thái mở đóng chuyển mạch B-ớc 5: Chuỗi bit đà đ-ợc tạo đ-ợc nạp (Download) vào chip FPGA (th-ờng chip FPGA đ-ợc gắn hệ thống lớn hơn) Các chuyển mạch điện tử FPGA mở đóng t-ơng ứng với giá trị bit nhị phân (Binary bit) chuỗi bit Khi công việc nạp chuỗi bit vào FPGA hoàn tất, FPGA đà đ-ợc nạp thực cách độc lập công việc đ-ợc xác định HDL schemantic b-ớc 3.4 Ch-ơng trình VHDL thực mạch chức 3.4.1 Mạch chia xung clock (chia_tan.vhd) a) Đặc điểm Mạch nhận tÝn hiƯu xung clock tÇn sè 100 MHz tõ XSA-100 Board V1.0 để chia thành xung clock tần số Hz cấp cho khối đếm giây b) Ch-ơng trình VHDL mô tả mạch điện nh- sau: library IEEE; use IEEE.STD_LOGIC_1164.ALL; use IEEE.STD_LOGIC_ARITH.ALL; use IEEE.STD_LOGIC_UNSIGNED.ALL; Uncomment the following lines to use the declarations that are provided for instantiating Xilinx primitive components library UNISIM; use UNISIM.VComponents.all; Hoàng Mạnh Kha - Lớp CH ĐTVT 2002-2004 -77- Luận văn thạc sỹ Nghiên cứu - úng dụng FPGA entity chia_tan is Port ( clk_in : in std_logic; clk_out : out std_logic); end chia_tan; architecture Behavioral of chia_tan is signal cnt : std_logic_vector(22 downto 0):="00000000000000000000000"; begin process(clk_in) begin if rising_edge(clk_in) then cnt