Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 116 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
116
Dung lượng
1,86 MB
Nội dung
BỘ GIÁO DỤC VÀ ĐÀO TẠO NGUYỄN VĂN HÀO TRƯỜNG ĐẠI HỌC BÁCH KHOA HÀ NỘI - LUẬN VĂN THẠC SĨ KHOA HỌC KỸ THUẬT ĐIỆN TỬ CÔNG NGHỆ FPGA VÀ PHƯƠNG PHÁP ĐỊNH LẠI CẤU HÌNH TỪNG PHẦN CHO FPGA CỦA XILINX NGUYỄN VĂN HÀO 2005 - 2007 Hà Nội 2007 HÀ NỘI 2007 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 CÔNG NGHỆ FPGA VÀ PHƯƠNG PHÁP ĐỊNH LẠI CẤU HÌNH TỪNG PHẦN CHO FPGA CỦA XILINX NGÀNH : KỸ THUẬT ĐIỆN TỬ MÃ SỐ : NGUYỄN VĂN HÀO Người hướng dẫn khoa học : TS PHẠM NGỌC NAM HÀ NỘI 2007 Danh Mục Các Ký Hiệu Và Chữ Viết Tắt Từ viết tắt Nghĩa tiếng Anh Nghĩa tiếng Việt ASIC Application Specific IC IC ứng dụng chuyên biệt ASSP Application Specific Standard Sản phẩm tiêu chuẩn ứng dụng Product chuyên biệt BRAM Block RAM RAM khối CLB Configurable Logic Block Khối lơgic lập trình CLK Clock Tín hiệu đồng hồ CMOS Complementary MOS Công nghệ MOS cải tiến CPLD Complex Programmable Logic Thiết bị lơgic lập trình Device phức tạp CPU Central Processing Unit Đơn vị xử lý trung tâm DCI Digitally Controlled Impedance Trở kháng điều khiển số DCM Digital Clock Manager Quản lý đòng hồ số DDR Double-Data-Rate Tốc độ liệu kép DFS Digital Frequency Synthesizer Bộ tổng hợp tần số số DLL Delay-Locked Loop Vịng khóa độ trễ DRAM Dynamic Random - Access Bộ nhớ động truy xuất ngẫu Memory nhiên - gọi RAM động EDIF Electronic Data Interchange Format EEPROM Electrically erasable Bộ nhớ đọc lập trình xoá programmable read-only- điện memory EPROM Electrically Programmable Read- Bộ nhớ đọc lập trình xố Only-Memory Từ viết tắt Nghĩa tiếng Anh Nghĩa tiếng Việt FPGA Field-Programmable Gate Array GAL Generic Array Logic HDL Hardware Description Language Ngôn ngữ mô tả phần cứng I/O Input/Output Vào/ Ra IC Integrated Circuit Mạch tích hợp IEEE Institute of Electrical and Hiệp hội Kỹ sư Điện Electronic Engineers Điện tử IOB Input/Output Block Khối vào ISE Integrated Software Environment Môi trường phần mềm tích hợp LSI Large Scale Integrated Tích hợp mật độ lớn LUT Look-Up Table Bảng dị tìm MGA Masked Gate Array Ma trận cổng mặt nạ Lôgic ma trận chung hoá MOS Metal-Oxide-Silicon Kim loại-Oxit-Silic MSI Medium Scale Integrated Tích hợp mật độ trung bình NCD Native Circuit Description NGC Native Generic compiler NGD Native Generic Database OTP One-Time Programmable Lập trình lần PAL Programmable Array Logic Lơgic ma trận lập trình PAR Place And Route Xếp đặt định tuyến PCF Physical Constraints File Tập tin ràng buộc vật lý PLA Programmable Logic Array Ma trận logic lập trình PLD Programmable Logic Device Thiết bị logic lập trình PLICE Programmable Low-Impedance Phần tử trở kháng thấp lập trình Circuit Element Từ viết tắt Nghĩa tiếng Anh Nghĩa tiếng Việt PROM Bộ nhớ đọc lập trình Programmable Read-OnlyMemory PS Phase Shifter Bộ dịch pha RAM Random-Access Memory Bộ nhớ truy xuất ngẫu nhiên ROM Read Only Memory Bộ nhớ đọc SRAM Static Random-Access Memory Bộ nhớ tĩnh truy xuất ngẫu nhiên - gọi RAM tĩnh TTL Transistor-Transistor Logic Transistor-Transistor Logic UCF User Constraints File Tập tin ràng buộc người dùng VHDL VHSIC Hardware Description Ngôn ngữ mô tả phần cứng Language mạch tích hợp tốc độ cao Very High Speed Integrated Mạch tích hợp tốc độ cao VHSIC Circuits XST Xilinx Synthesis Technology Công nghệ tổng hợp Xilinx Danh Mục Các Bảng Bảng.2.1: Tóm lược thuộc tính Spartan-3 FPGA 19 Bảng 2.2: Các tín hiệu DFS 32 Bảng 2.3: Các thuộc tính DFS 32 Bảng 2.4: Các tín hiệu lôgic trạng thái 34 Bảng 2.5: Bus trạng thái DCM 34 Bảng 3.1 Mức ưu tiên toán tử VHDL 50 Danh Mục Các Hình Vẽ, Đồ Thị Hình 1.1: Các thành phần ứng dụng chuyên biệt Hình 1.2: Tiến trình phát triển lơgic khả trình Hình 1.3: Cầu chì nghịch Actel Hình 1.4: Các giá trị điện trở cầu chì nghịch với dịng lập trình 5mA Hình 1.5: Cấu tạo cầu chì nghịch kim loại – kim loại với mức kim loại Hình 1.6: Giá trị điện trở cho cầu chì nghịch kim loại Hình 1.7: Phần tử cấu hình SRAM Hình 1.8: Thực kết nối FPGA 10 Hình 1.9: Transistor EPROM 11 Hình 1.10: Phần tử lơgic SRAM 12 Hình 1.11: Phần tử lôgic OTP 12 Hình 1.12: Lưu đồ thiết kế FPGA Xilinx 14 Hình 2.1: Kiến trúc FPGA Spartan-3 20 Hình 2.2: Sơ đồ khối I/O 22 Hình 2.3: Sơ đồ đặt slice CLB 23 Hình 2.4: Sơ đồ slice bên trái 24 Hình 2.5: Các đường liệu RAM khối 27 Hình 2.6: Sơ đồ nhân sở 28 Hình 2.7: Các khối chức DCM tín hiệu liên kết 30 Hình 2.8: Sơ đồ chức DLL 31 Hình 2.9: Mạng tín hiệu đồng hồ 36 Hình 2.10: Các kiểu kết nối 39 Hình 3.1: Ví dụ mơ kiến trúc phần cứng 45 Hình 3.2: Các thư viện thiết kế VHDL 47 Hình 4.1: Thiết kế với mơ đun định lại cấu hình 64 Hình 4.2: Cấu trúc thư mục cho thiết kế 65 Hình 4.3: Bus macro dùng cho tín hiệu liên mơ đun 66 Hình 4.4: Trực quan thiết kế FPGA Editor 71 Hình 4.5: Bus macro 73 Hình 4.6: Thực thi mức vật lý bus macro 74 Hình 4.7: Sơ đồ khối chức 77 Hình 4.8: Sơ đồ nguyên lý khối số học 78 Hình 4.9: Kết tổng hợp cho mơ đun adder 81 Hình 4.10: Các ràng buộc cho thiết kế top 83 Hình 4.11: Trực quan thiết kế top top1 FPGA Editor 87 Hình 4.12: Thiết kế top 90 Hình 4.13: Thiết kế top1 91 Hình 4.14: Kết mơ thiết kế 92 Mở Đầu Vào khoảng năm 1985, cơng ty có tên gọi Xilinx giới thiệu công nghệ FPGA, xem giải pháp thay cho loại IC tùy biến (custom IC) Với công cụ thiết kế hỗ trợ máy tính (CAD: computer-aided design), mạch thiết kế FPGA thực thời gian tương đối ngắn mà sử dụng công cụ chế tạo mạch tích hợp Với thiết bị FPGA, cho phép thiết kế mạch chức từ đơn giản đến phức tạp hệ thống mạch số thực việc thay đổi thiết kế dễ dàng Rõ ràng với lợi ích mang lại từ công nghệ FPGA, nhận thấy việc ứng dụng triển khai công nghệ FPGA phù hợp Việt Nam, ngành công nghiệp chế tạo IC chưa phát triển mạnh Đề tài luận văn " Công nghệ FPGA phương pháp định lại cấu hình phần cho FPGA xilinx " Với mục đích tìm hiểu cơng nghệ FPGA công cụ hỗ trợ, phương pháp thiết kế định lại cấu hình cho FPGA Xem sở quan trọng để tiếp cận ứng dụng công nghệ thiết kế số điều khiển số đầy tiềm hiệu Nội dung luận văn trình bày bốn chương: Chương 1: Giới thiệu công nghệ FPGA Chương 2: Kiến trúc FPGA spartan-3 xilinx Chương 3: Ngôn ngữ mô tả phần cứng VHDL Chương 4: Phương pháp định lại cấu hình phần cho FPGA Do trình độ có hạn chuyên môn ngoại ngữ, vấn đề mà luận văn đề cập tới tương đối phức tạp, tài liệu phải tham khảo tương đối rộng, nhiều chỗ vượt q trình độ hiểu biết cịn có phần hạn chế người viết, định luận văn khơng thể tránh khỏi có chỗ sơ sài thiếu xác Tơi mong nhận đóng góp bảo thầy giáo bạn để luận văn hoàn chỉnh Trong suốt trình nghiên cứu thực luận văn hướng dẫn trực tiếp thầy TS Phạm Ngọc Nam giúp đỡ quý báu thầy cô khoa ĐTVT Trường ĐHBK Hà Nội Qua xin chân thành cảm ơn thầy TS Phạm Ngọc Nam tận tình, chu đáo hướng dẫn thực tốt nhiệm vụ đề tài đưa hồn thành kế hoạch Tơi xin bày tỏ lịng biết ơn đến thầy khoa ĐTVT trường ĐHBK Hà Nội kiến thức nhận thời gian học trường Hà Nội, Ngày 20 tháng 10 năm 2007 Chương 1: GIỚI THIỆU CƠNG NGHỆ FPGA Thiết bị lập trình bao gồm simple PLD (Programmable Logic Device), CPLD (Complex Programmable Logic Device), FPGA (FieldProgrammable Gate Array) Các thiết bị có đặc điểm chung dựa sở cơng nghệ lập trình phép việc lập trình lập trình lại nhiều lần Trong chương đề cập đến vấn đề thiết bị lơgic lập trình (PLD) cơng nghệ lập trình FPGA 1.1 Khái quát chung Các thành phần ứng dụng chuyên biệt (Hình 1.1) bao gồm fullcustom ASIC (Application Specific Integrated Circuit), semi-custom ASIC, IC (Integrated Circuit) lập trình Hình 1.1: Các thành phần ứng dụng chuyên biệt Các ASIC hoàn toàn tuỳ biến (full-custom ASIC) bao gồm số (có thể tất cả) cell lơgic tùy biến tất lớp mặt nạ tùy biến Khi việc tùy biến tất đặc tính IC cho phép 100 Tài Liệu Tham Khảo Tiếng Việt Nguyễn Linh Giang, Thiết kế mạch máy tính, NXB khoa học kỹ thuật, Hà Nội Nguyễn Quốc Trung (1997), Vi điện tử số, NXB khoa học kỹ thuật, Hà Nội Nguyễn Thúy Vân (1994), Kỹ thuật số, NXB khoa học kỹ thuật, Hà Nội Tiếng Anh Douglas L Perry (2002), VHDL: Programming by example, McGrawHill, United States of America Jean-Pierre Deschamps, Ge´Ry Jean Antoine Bioul, Gustavo D Sutter (2006), Synthesis of arithmetic circuits, John Wiley & Sons.Inc, Canada Karen Parnell and Nick Mehta (2004), Programmable logic design quick start handbook, Xilinx Michael John Sebastian Smith (1997), Application-specific integrated circuits, Hardcover, United States of America Steve Kilts (2007), Advanced FPGA design, John Wiley & Sons.Inc, Canada Volnei A Pedroni (2004), Circuit design with VHDL, Massachusetts Institute of Technology, United States of America Nguồn Tham Khảo Từ Internet: www.xilinx.com www.digilentinc.com 101 Phụ lục Mã VHDL Module_based: Thiết kế top library IEEE; use IEEE.STD_LOGIC_1164.ALL; use IEEE.STD_LOGIC_ARITH.ALL; use IEEE.STD_LOGIC_UNSIGNED.ALL; entity top is Port (clk : in std_logic; sel : in std_logic_vector (1 downto 0); A_add : in std_logic_vector (3 downto 0); B_add : in std_logic_vector (3 downto 0); A_log : in std_logic_vector (3 downto 0); B_log : in std_logic_vector (3 downto 0); TL1,TR1,TL2,TR2 : in std_logic; C : out STD_LOGIC; T : out std_logic_vector (3 downto 0) ); end top; architecture Behavioral of top is component BUFGP is port ( I : in std_logic; O : out std_logic ); end component; component bm_4b_v2 is port ( LI : in std_logic_vector(3 downto 0); LT : in std_logic_vector(3 downto 0); RI : in std_logic_vector(3 downto 0); 102 RT : in std_logic_vector(3 downto 0); O : out std_logic_vector(3 downto 0)); end component; component general is port ( sel : in std_logic_vector(1 downto 0); GA_in : in std_logic_vector(3 downto 0); GL_in : in std_logic_vector(3 downto 0); GA_sel : out std_logic_vector(3 downto 0); GL_sel : out std_logic_vector(3 downto 0); T : out std_logic_vector(3 downto 0)); end component; component logical is port( clk : in std_logic; sel_L : in std_logic_vector(1 downto 0); A : in std_logic_vector(3 downto 0); B : in std_logic_vector(3 downto 0); Q : out std_logic_vector(3 downto 0)); end component; component adder is port( clk : in std_logic; sel_A : in std_logic; A : in std_logic_vector(3 downto 0); B : in std_logic_vector(3 downto 0); S : out std_logic; Q : out std_logic_vector(3 downto 0)); end component; signal clk_int : std_logic; 103 signal A_out : std_logic_vector(3 downto 0); signal GA_in : std_logic_vector(3 downto 0); signal L_out : std_logic_vector(3 downto 0); signal GL_in : std_logic_vector(3 downto 0); signal Tri_L1,Tri_L2 : std_logic_vector(3 downto 0); signal Tri_R1,Tri_R2 : std_logic_vector(3 downto 0); signal GA_sel : std_logic_vector(3 downto 0); signal GL_sel : std_logic_vector(3 downto 0); signal A_sel : std_logic_vector(3 downto 0); signal L_sel : std_logic_vector(3 downto 0); begin Tri_L1 GA_in, GL_in => GL_in, GA_sel => GA_sel, GL_sel => GL_sel, T => T ); g2l_sel : bm_4b_v2 port map (LI => GL_sel, LT => Tri_L2, RI => "0000", 104 RT => Tri_R2, O => L_sel ); g2a_sel : bm_4b_v2 port map (LI => "0000", LT => Tri_L1, RI => GA_sel, RT => Tri_R1, O => A_sel ); U2: logical port map ( clk => clk_int, sel_L => L_sel(1 downto 0), A => A_log, B => B_log, Q => L_out ); l2g_1 : bm_4b_v2 port map (LI => "0000", LT => Tri_L2, RI => L_out, RT => Tri_R2, O => GL_in ); U3: adder port map ( clk => clk_int, sel_A => A_sel(0), S => C, A => A_add, B => B_add, Q => A_out ); 105 a2g_1 : bm_4b_v2 port map (LI => A_out, LT => Tri_L1, RI => "0000", RT => Tri_R1, O => GA_in ); end Behavioral; Thiết kế top1 (tương tự thiết kế top) component subtractor is port( clk : in std_logic; sel_A : in std_logic; A : in std_logic_vector(3 downto 0); B : in std_logic_vector(3 downto 0); S : out std_logic; Q : out std_logic_vector(3 downto 0)); end component; U3: subtractor port map ( clk => clk_int, sel_A => A_sel(0), S => C, A => A_add, B => B_add, Q => A_out ); - 106 Mô đun general library IEEE; use IEEE.STD_LOGIC_1164.ALL; use IEEE.STD_LOGIC_ARITH.ALL; use IEEE.STD_LOGIC_UNSIGNED.ALL; entity general is Port ( sel : in std_logic_vector(1 downto 0); GA_in : in std_logic_vector(3 downto 0); GL_in : in std_logic_vector(3 downto 0); GA_sel : out std_logic_vector(3 downto 0); GL_sel : out std_logic_vector(3 downto 0); T : out std_logic_vector(3 downto 0) ); end general; architecture Behavioral of general is begin GA_sel