Báo cáo thực tập Thiết kế vi mạch trên FPGA

64 960 0
Báo cáo thực tập Thiết kế vi mạch trên FPGA

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

Thông tin tài liệu

BỘ CÔNG THƯƠNG TRƯỜNG ĐẠI HỌC CÔNG NGHIỆP HÀ NỘI KHOA : ĐIỆN TỬ THIẾT KẾ VI MẠCH TRÊN FPGA Giáo viên hướng dẫn: Tống Văn Luyên Sinh viên thực tập: Nguyễn Thanh Tùng Lớp: ĐH CNKT DT6- K6 Hà Nội 03/03/2015 MỤC LỤC Hà Nội University of Industry Faculty of Electronics Sinh viên thực tập: Nguyễn Thanh Tùng Hà Nội University of Industry Faculty of Electronics Danh mục hình Sinh viên thực tập: Nguyễn Thanh Tùng Hà Nội University of Industry Faculty of Electronics ỜI GIỚI THIỆ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( Large Scale Integration), VLSK(Very Large Scale Integration) 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 hố khơng ngừng đáp ứng nhu cầu xã hội Một cơng nghệ đờ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 CPLD (Complex Programmable Logic Devices) Sử dụng FPGA CPLD tối thiểu hóa nhiều cơng đoạn thiết kế, lắp ráp hầu hết thực máy tính Các ngơn ngữ mơ phịng phần cứng (HDL: Hardware Description Languages) 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 quà thực chương trình file bít cấu hình (bitstream) đế nạp (download) vào FPGA CPLD để hoạt động giống 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 ứng dụng đa dạng nhiều loại thiết bị điện tử Trong báo cáo em tập trung đề cập tới khía cạnh ngơn ngữ mơ tả phần cứng sử dụng ngôn ngữ VHDL giới thiệu FPGA họ SPARTAN-3E hãng Xilinx Sinh viên thực tập: Nguyễn Thanh Tùng Hà Nội University of Industry Faculty of Electronics CHƯƠNG 1: TỔNG QUAN VỀ CÁC PHƯƠNG PHÁP THIẾT KẾ VI MẠCH 1.1 Các phương pháp thiết kế tiền HDL 1.1.1 Phương pháp thiết kế dùng hàm logic Trong việc thiết kế hệ thống số, khó khăn người thiết kế khơng có kiến thức đặc điểm chức phần tử logic cổng logic AND, OR, NOT,… flip- flop Hầu hết mạch logic tạo nên nhờ cổng logic flip- flop thiết kế theo phương thức truyền thống dựa hàm logic (boolean equations) Nhiều kĩ thuật thiết kế đời nhằm tối ưu hóa phương pháp truyền thống này, công việc để tối phương pháp thiết kế dùng hàm logic giảm thiểu phương trình logic giúp sử dụng cổng logic flip- flop hiệu Sinh viên thực tập: Nguyễn Thanh Tùng Hà Nội University of Industry Faculty of Electronics Hình 1.1 Phương pháp thiết kế dùng hàm logic Kĩ thuật thiết kế dựa hàm logic yêu cầu phải viết phương trình logic cho đầu vào liệu flip- flop cho nhóm cổng logic Điều có nghĩa kĩ thuật thiết kế không khả thi với việc thiết kế mạch lớn với hàng trăm flip-flop kĩ thuật địi hỏi phải có số lượng lón hàng trăm phương trình logic tương ứng 1.1.2 Phương pháp thiết kế dựa sơ đồ nguyên lí Phương pháp thiết kế dựa sơ đồ ngun lí có trợ giúp máy tính cho phép thiết kế hệ thống lớn nhờ kết hợp cổng logic flip- flop với mạch Bởi mạch bao gồm nhiều flip- flop mạch khác, điều cho phép thiết kế mạch lớn có tính phân cấp với số lượng lớn thành phần cấu tạo nên không cần nhiều công sức phương pháp thiết kế dùng hàm logic trước Sinh viên thực tập: Nguyễn Thanh Tùng Hà Nội University of Industry Faculty of Electronics Hình 1.2 Thiết kế mạch dựa sơ đồ nguyên lí Mọi người ưa thích thường xuyên sử dụng phương pháp khả biểu diễn thiết kế trực quan sinh động thiết kế sơ đồ nguyên lí dễ hiểu thành phần thiết kế kết nối chúng 1.1.3 Ưu điểm, nhược diểm phương pháp thiết kế truyền thống Các bước thiết kế ngôn ngữ mô tả phần cứng truyền thống: Hình 1.3 Các bước thiết kế phương pháp thiết kế truyền thống Sinh viên thực tập: Nguyễn Thanh Tùng Hà Nội University of Industry Faculty of Electronics Bước 1: Thông tin hệ thống cần thiết chuyển đổi thủ công sang tập hàm logic Bước 2: Chuyển đổi thủ công hàm luân lí thành mạng kết nối cổng logic flip- flop (sơ đồ nguyên lý) Bước 3: Tổng hợp thực thiết kế  Ưu điểm: - Dễ thực - Thực thiết kế với mạch từ vài phần tử logic đến vài trăm phần tử logic  Nhược điểm: - Xác định hệ thống mạng kết nối thành phần Không xác định đặc điểm kĩ thuật hệ thống( hành vi/ chức năng)- Hệ thống làm với tình cụ thể - Không phù hợp với hệ thống tích hợp cỡ lớn phức tạp 1.2 Phương pháp thiết kế dùng HDL a) Chức ưu điểm HDL  Chức năng: HDL ngôn ngữ thuộc lớp ngơn ngữ máy tính(computer language):  Dùng miêu tả cấu trúc hoạt động vi mạch  Dùng mô phỏng, kiểm tra hoạt động vi mạch  Biểu diễn hành vi theo thời gian cấu trúc không gian mạch  Bao gồm ký hiệu biểu diễn thời gian đồng thời (time and concurrence)  Ưu điểm: Sinh viên thực tập: Nguyễn Thanh Tùng Hà Nội University of Industry Faculty of Electronics  Loại bỏ công đoạn chuyển đổi thủ công từ mô tả thơng tin thiết kế thành phương trình logic  Dễ quản lí mạch lớn phức tạp  Độc lập với công nghệ  Cho phép tái sử dụng thiết kế có sẵn  Mạch tổng hợp từ đặc tả b) Phương pháp thiết kế dùng HDL Hình 1.4 Các bước thiết kế dùng HDL HDL sử dụng để thiết kế phần tử logic lập trình (Programable Logic Devices- PLD) từ PLD đơn giản đến CPLD FPGA phức tạp Hiện có nhiều HDL sủ dụng phổ biến VHDL, Verilog Abel Báo cáo tập trung giới thiệu ngôn ngữ mô tả phần cứng VHDL ứng dụng FPGA Sinh viên thực tập: Nguyễn Thanh Tùng Hà Nội University of Industry CHƯƠNG 2: 2.1 Faculty of Electronics TỔNG QUAN VỀ VHDL Giới thiệu VHDL VHDL viết tắt cụm từ Very High Speed Intergrated Circuit Hardware Description Language - ngôn ngữ mô tả phần cứng cho mạch tích hợp tốc độ cao VHDL ngôn ngữ mô tả phần cứng phát triển dùng cho chương trình VHSIC (Very High Speed Intergrated Circuit) quốc phòng Mỹ Mục tiêu việc phát triển VHDL có ngơn ngữ mô tả phần cứng tiêu chuẩn thống cho phép phát triển thử nghiệm hệ thống số nhanh cho 10 Sinh viên thực tập: Nguyễn Thanh Tùng Hà Nội University of Industry Faculty of Electronics hạn chế khả thực tác vụ đặc biệt phức tạp, FPGA ưu việt chỗ tái cấu trúc lại sử dụng, công đoạn thiết kế đơn giản chi phí giảm, rút ngắn thời gian đưa sản phẩm vào sử dụng Còn so sánh với dạng vi mạch bán dẫn lập trình dùng cấu trúc mảng phần tử logic PLA, PAL, CPLD FPGA ưu việt điểm: ⦁ Tác vụ tái lập trình FPGA thực đơn giản ⦁ Khả lập trình linh động ⦁ Kiến trúc FPGA cho phép có khả chứa khối lượng lớn cổng logic (logic gate), so với vi mạch bán dẫn lập trình có trước Thiết kế hay lập trình cho FPGA thực chủ yếu ngôn ngữ mô tả phần cứng HDL VHDL, Verilog, AHDL, hãng sản xuất FPGA lớn Xilinx, Altera thường cung cấp gói phần mềm thiết bị phụ trợ cho trình thiết kế, có số hãng thứ ba cung cấp gói phần mềm kiểu Synopsys, Synplify Các gói phần mềm có khả thực tất bước tồn quy trình thiết kế IC chuẩn với đầu vào mã thiết kế HDL (còn gọi mã RTL) 3.2.Cấu trúc FPGA Trên giới có nhiều nhà cung cấp FPGA Mỗi nhà cung cấp lại có cấu trúc FPGA riêng biệt Nhưng nói chung FPGA có cấu trúc trình bày hình 2.1 sau: 50 Sinh viên thực tập: Nguyễn Thanh Tùng Hà Nội University of Industry Faculty of Electronics Hình 3.1 Cấu trúc tổng FPGA Kiến trúc FPGA gồm thành phần sau: khối logic, khối I/O đường kết nối cịn có mạch cung cấp xung đồng hồ cho khối logic Các khối logic thêm thành phần ALU, nhớ, giải mã… Hiện có hai cơng nghệ phổ biến dùng để lập trình cho FPGA cơng nghệ RAM tĩnh cơng nghệ cầu chì nghịch 3.3.Giới thiệu chip SPARTAN-3E 3.3.1 Kiến trúc họ XILINX SPARTAN-3E FPGA Có số họ Spartan FPGA: Spartan-II, Spartan-IIE (tương tự Virtex), Spartan-3 (mật độ cổng cao, đạt tới triệu cổng hệ thống), Spartan-3E (tương tự Virtex-4, tối ưu cho chi phí logic), Spartan-3A (tối ưu cho chi phí pin), Spartan-3AN (cao cấp với flash), Spartan-3ADSP (cao cấp cho xử lý tín hiệu) 51 Sinh viên thực tập: Nguyễn Thanh Tùng Hà Nội University of Industry Faculty of Electronics Hình 3.2 Họ Spartan-3 FPGA Ta xét kiến trúc họ Xilinx Spartan-3E FPGA có giá trị thấp, mật độ cổng tương đối cao đủ đặc tính cho thiết kế phần cứng nhiều chức dựa KIT phát triển Spartan-3E công cụ phần mềm Xilinx 3.3.2 Kiến trúc Xilinx Spartan-3E FPGA Hình 3.3 Kiến trúc Spartan-3E FPGA Trong kiến trúc Spartan-3 FPGA có thành phần chức lập trình (hình 2.4): 52 Sinh viên thực tập: Nguyễn Thanh Tùng Hà Nội University of Industry Faculty of Electronics • CLB (Configurable Logic Blocks) - khối logic cấu hình được: chứa bảng LUT thực thành phần nhớ logic filpflops mạch chốt Các CLB thực nhiều chức logic khác lưu trữ liệu • IOB (Input/Output Blocks) - khối vào/ra: điều khiển luồng liệu chân tín hiệu vào/ra (I/O pins) logic bên FPGA Mỗi I/OB hỗ trợ luồng liệu hai chiều, 3-trạng thái, số chuẩn tín hiệu, kể chuẩn vi phân hiệu cao, ghi tốc độ liệu gấp đôi DDR register (Double Data-Rate) • Block RAM: đảm bảo lưu trữ liệu dạng khối nhớ 18Kbit hai cổng • Dedicated Multiplier Blocks - khối nhân trực tiếp: nhận số nhị phân 18-bit đầu vào tính tích chúng • DCM Blocks (Digital Clock Manager Blocks) – khối quản lý nhịp đồng hồ số: đảm bảo tự định kích cỡ, giải pháp số toàn cho phân phối, trễ, nhân, chia, dịch pha tín hiệu đồng hồ Trong Spartan-3E FPGA có mạng dầy đặc đường liên kết tất thành phần chức bản, truyền tín hiệu chúng Mỗi thành phần chức có ma trận chuyển mạch liên quan cho phép nhiều kết nối để định tuyến 3.3.3 Cách đọc tham số chip 53 Sinh viên thực tập: Nguyễn Thanh Tùng Hà Nội University of Industry Faculty of Electronics Hình 3.4 Phương pháp đọc ký hiệu chip FPGA CHƯƠNG 4: Thiết kế vi mạch FPGA 4.1 Quy trình thiết kế FPGA tổng quát 54 Sinh viên thực tập: Nguyễn Thanh Tùng Hà Nội University of Industry Faculty of Electronics Hình 4.1 Quy trình thiết kế FPGA 4.1.1 Mô tả ban đầu thiết kế Khi xây dựng chip khả trình (FPGA) với ý nghĩa dành cho ứng dụng riêng biệt, xuất phát từ ứng dụng thực tiễn sống, đặt yêu cầu phải thiết kế IC thực tối ưu ứng dụng Bước quy trình thiết kế có nhiệm vụ tiếp nhận yêu cầu thiết kế xây dựng nên kiến trúc tổng quát thiết kế * Mô tả thiết kế: Trong bước này, từ yêu cầu thiết kế dựa khả công nghệ có, người thiết kế kiến trúc xây dựng nên toàn kiến trúc tổng quan cho thiết kế Nghĩa bước người thiết kế kiến trúc phải mô vấn đề sau: 55 Sinh viên thực tập: Nguyễn Thanh Tùng Hà Nội University of Industry ⦁ Thiết kế có khối nào? Faculty of Electronics ⦁ Mỗi khối có chức gì? ⦁ Hoạt động thiết kế khối ? ⦁ Phân tích kỹ thuật sử dụng thiết kế công cụ, phần mềm hỗ trợ thiết kế Một thiết kế mơ tả sử dụng ngôn ngữ mô tả phần cứng, VHDL hay Verilog HDL mơ tả qua vẽ mạch (schematic capture) Một thiết kế vừa bao gồm vẽ mạch mô tả sơ đồ khối chung, vừa dùng ngơn ngữ HDL để mơ tả chi tiết cho khối sơ đồ * Mô chức (Function simulation): sau mô tả thiết kế, người thiết kế cần mô tổng thể thiết kế mặt chức để kiểm tra thiết kế có hoạt động với chức yêu cầu * Tổng hợp logic (Logic Synthesis): tổng hợp logic q trình tổng hợp mơ tả thiết kế thành sơ đồ bố trí mạch (netlist) Q trình chia thành bước: chuyển đổi mã RTL, mã HDL thành mô tả dạng biểu thức đại số Boolean dựa biểu thức kết hợp với thư viện tế bào chuẩn sẵn có để tổng hợp nên thiết kế tối ưu * Hiệu chỉnh kết nối (Datapath Schematic): nhập netlist ràng buộc thời gian vào cơng cụ phân tích thời gian (timing analysic) Cơng cụ phân tích tách rời tất kết nối thiết kế, tính thời gian trễ kết nối dựa ràng buộc Dựa kết phân tích (report) cơng cụ phân tích, xác định kết nối không thỏa mãn thời gian Tùy theo nguyên nhân dẫn đến khơng thỏa mãn mà ta viết lại mã tiến hành lại tổng hợp logic hiệu chỉnh lại ràng buộc 56 Sinh viên thực tập: Nguyễn Thanh Tùng Hà Nội University of Industry Faculty of Electronics 4.1.2 Thực thi Ta có sơ đồ bố trí netlist mơ tả tổng thể thiết kế mức cổng (chỉ gồm cổng logic mạch logic khác như: MUX) Quá trình đặt sơ đồ netlist lên chip, gọi trình thực thi (Device Implementation) Quá trình gồm bước: * Ánh xạ (mapping hay gọi fitting - ăn khớp): chuẩn bị liệu đầu vào, xác định kích thước khối Các khối phải phù hợp với cấu trúc tế bào FPGA (gồm nhiều cổng logic) đặt chúng vào vị trí tối ưu cho việc chạy dây Hình 4.2 Sơ đồ gán chân * Đặt khối định tuyến (Place & Route): - Đặt khối: đặt khối ánh xạ vào tế bào (cell) vị trí tối ưu cho việc chạy dây 57 Sinh viên thực tập: Nguyễn Thanh Tùng Hà Nội University of Industry Faculty of Electronics Hình 4.3 Sơ đồ khơng gian gán bên FPGA - Định tuyến: bước thực việc nối dây tế bào Hình 4.4 Sơ đồ định tuyến Để thực việc này, cần có thông tin sau: ⦁ Các thông tin vật lý thư viện tế bào, ví dụ kích thước tế bào, điểm để kết nối, định thời, trở ngại dây ⦁ Một netlist tổng hợp chi tiết instance mối quan hệ kết nối bao gồm đường dẫn bị hạn chế thiết kế ⦁ Tất yêu cầu tiến trình cho lớp kết nối, bao gồm luật thiết 58 Sinh viên thực tập: Nguyễn Thanh Tùng Hà Nội University of Industry Faculty of Electronics kế cho lớp chạy dây, trở kháng điện dung, tiêu thụ lượng, luật dẫn điện lớp 4.1.3 Quá trình nạp (download) lập trình (program) Sau trình thực hiện, thiết kế cần nạp vào FPGA dạng dòng bit (bit stream) Quá trình nạp thiết kế (download) vào FPGA thường nạp vào nhớ tạm, ví dụ SRAM Thơng tin cấu hình nạp vào nhớ Dịng bit truyền lúc mang thông tin định nghĩa khối logic kết nối thiết kế Tuy nhiên, lưu ý rằng, SRAM liệu nguồn nên thiết kế không lưu đến phiên làm việc Lập trình (program) thuật ngữ để mơ tả q trình nạp chương trình cho nhớ trong, ví dụ PROM Như vậy, thơng tin cấu hình lưu trữ nguồn 4.2 Các vi mạch ứng dụng Tất thiết kế mạch sử sụng phần mếm ISE(ISE Design Suite 14.5) hãng Xilinx KIT phát triển Digilent Basys2 ( Xem Phụ lục Phụ lục 2) 4.2.1 Kiểm tra chuỗi chẵn lẻ Ở sử dụng KIT Basys2 nên ta thực kiểm tra chuỗi gồm 8bit Thuật toán sử dụng sử dụng phép toán logic XOR Mục đích để kiểm tra kết cuối phép toán XOR sau đưa chuỗi cần kiểm tra vào Chuỗi chẵn kết ‘= 0’ chuỗi lẻ kết ‘=1’ Mã thiết kế sau: library IEEE; 59 Sinh viên thực tập: Nguyễn Thanh Tùng Hà Nội University of Industry Faculty of Electronics use IEEE.STD_LOGIC_1164.all; entity kiemtrachanle is port( vao : in STD_LOGIC_VECTOR(7 downto 0); ketqua : out STD_LOGIC ); end kiemtrachanle; architecture kiemtrachanle of kiemtrachanle is begin process(vao) variable bientam : std_logic; begin bientam := vao(0)xor vao(1) xor vao(2) xor vao(3) xor vao(4) xor vao(5) xor vao(6) xor vao (7) ; if(bientam = '1') then ketqua

Ngày đăng: 08/04/2015, 21:13

Từ khóa liên quan

Tài liệu cùng người dùng

Tài liệu liên quan