Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 40 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
40
Dung lượng
0,92 MB
Nội dung
Đồ án thiếtkế logic số ĐỀ TÀI: THIẾTKẾIPCOREBỘĐIỀUKHIỂNCHUỘTMÁYTÍNHTHƠNGQUACHUẨNPS2 Đồ án thiếtkế logic số MỤC LỤC CHƯƠNG I TỔNG QUAN VỀ FPGA 1.1.GIỚI THIỆU FPGA 1.2.KIT SPARTAN 3AN 1.3.GIỚI THIỆU VỀ VHDL CHƯƠNG II: THIẾTKẾIPCOREBỘĐIỀUKHIỂNCHUỘTMÁYTÍNHTHƠNGQUACHUẨN 2.1.GIỚI THIỆU VỀ CHUẨN GIAO TIẾP PS2 2.2.GIỚI THIỆU CẤU TRÚC CHUỘTCHUẨNPS2 2.3.THIẾT KẾIPCOREBỘĐIỀUKHIỂNCHUỘTMÁYTÍNHTHÔNGQUACHUẨNPS2 2.3.1 GIẢN ĐỒ XUNG CỦA CỔNG PS2 2.3.2 Ý TƯỞNG THIẾTKẾ 2.3.3 SƠ ĐỒ KHỐI TRUYỀN VÀ NHẬN DỮ LIỆU .9 2.3.4.SƠ ĐỒ THUẬT TOÁN KHỐI TRUYỀN DỮ LIỆU .11 2.3.5.SƠ ĐỒ THUẬT TOÁN KHỐI NHẬN DỮ LIỆU 12 2.3.6 MƠ HÌNH THỬ NGHIỆM THIẾTKẾIPCOREBỘĐIỀUKHIỂNCHUỘTPS2 .14 TÀI LIỆU THAM KHẢO: 16 PHỤ LỤC 17 Đồ án thiếtkế logic số CHƯƠNG I TỔNG QUAN VỀ FPGA 1.1 Giới thiệu FPGA FPGA (Field Programable Gate Arrays) thiết bị bán dẫn bao gồm khối logic lập trình gọi "Logic Block", kết nối khả trình Các khối logic lập trình để thực chức khối logic AND, XOR, chức kết hợp phức tạp decoder phép tính tốn học Trong hầu hết kiến trúc FPGA, khối logic bao gồm phần tử nhớ Đó Flip-Flop nhớ hồn chỉnh Các kết nối khả trình cho phép khối logic nối với theo thiếtkế người xây dựng hệ thống, giống bảng mạch khả trình Một kiến trúc khác tương tự đơn giản FPGA, CPLD ( Complex Programable Logic Device ) Thực chất tiền thân FPGA Năm 1984, Ross Freeman, đồng sáng lập Xilinx phát minh FPGA FPGA CPLC bao gồm số lượng lớn phần tử logic khả trình Mật độ cổng logic (Logic Gate) CPLD nằm khoản từ vài nghìn 10 nghìn cổng Trong FPGA thơng thường chứa từ 10 nghìn vài triệu cổng Đồ án thiếtkế logic số Hình 1.1 Kiến trúc FPGA FPGA ứng dụng điển hình lĩnh vực yêu cầu tốc độ đáp ứng cao như: xử lý tín hiệu số,xử lý ảnh, thị giác máy, nhận dạng giọng nói, mã hóa, mơ phỏng(emulation) FPGA đặc biệt mạnh lĩnh vực ứng dụng mà kiến trúc yêu cầu lượng lớn xử lý song song, đặc biết mã hóa giải mã FPGA sử dụng ứng dụng cần thực thi thuật toán FFT, nhân chập (convolution), thay cho vi xử lý, hay có mặt nhiều hệ thống nhúng, hệ thống viễn thông Hiện công nghệ FPGA sản xuất hỗ trợ phần mềm hãng :Xilinx, Altera, Actel, Atmel Trong Xilinx Altera hai hãng hàng đầu 1.2 Kit Spartan 3AN Hình 1.2 KIT Spartan 3AN Đồ án thiếtkế logic số - Kít SPARTAN 3AN sử dụng chíp FPGA XC3S700AN tích hợp 700k cổng logic -Một số hỗ trợ kit như: + Các cổng I/O + Màn hình LCD + Cổng giao tiếp RS232,PS2,VGA + Tích hợp sẵn biến đổi ADC/DA kit + 2flash nối tiếp 16Mb + DDR2 SD RAM + Clock 50MHZ 1.3 Giới thiệu VHDL VHDL phát triển để giải khó khăn việc phát triển, thay đổi lập tài liệu cho hệ thống số VHDL ngôn ngữ độc lập không gắn với phương pháp thiết kế, mô tả hay công nghệ phần cứng Người thiếtkế tự lựa chọn cơng nghệ, phương pháp thiếtkế sử dụng ngôn ngữ Và đem so sánh với ngôn ngữ mô phần cứng khác ta thấy VHDL có số ưu điểm hẳn là: - Thứ tính cơng cộng: VHDL phát triển bảo trợ phủ Mỹ tiêu chuẩn IEEE VHDL hỗ trợ nhiều nhà sản xuất thiết bị nhiều nhà cung cấp công cụ thiếtkế mô hệ thống - Thứ hai khả hỗ trợ nhiều công nghệ nhiều phương pháp thiết kế: VHDL cho phép thiếtkế nhiều phương pháp ví dụ phương pháp thiếtkế từ xuống, hay từ lên dựa vào thư viện sẵn có VHDL hỗ trợ cho nhiều loại cơng cụ xây dựng mạch sử dụng công nghệ đồng hay khơng đồng bộ, sử dụng ma trận lập trình hay sử dụng mảng ngẫu nhiên Đồ án thiếtkế logic số - Thứ ba tính độc lập với cơng nghệ: VHDL hồn tồn độc lập với công nghệ chế tạo phần cứng Một mô tả hệ thống dùng VHDL thiếtkế mức cổng chuyển thành tổng hợp mạch khác tuỳ thuộc công nghệ chế tạo phần cứng đời áp dụng cho hệ thốngthiếtkế - Thứ tư khả mô tả mở rộng: VHDL cho phép mô tả hoạt động phần cứng từ mức hệ thống số mức cổng VHDL có khả mơ tả hoạt động hệ thống nhiều mức sử dụng cú pháp chặt chẽ thống cho mức Như ta mơ thiếtkế bao gồm hệ mô tả chi tiết - Thứ năm khả trao đổi kết quả: Vì VHDL tiêu chuẩn chấp nhận, nên mơ hình VHDL chạy mô tả đáp ứng tiêu chuẩn VHDL Các kết mơ tả hệ thống trao đổi nhà thiếtkế sử dụng công cụ thiếtkế khác tuân theo tiêu chuẩn VHDL Cũng nhóm thiếtkế trao đổi mơ tả mức cao hệ thống hệ thống lớn (trong hệ thiếtkế độc lập) - Thứ sáu khả hỗ trợ thiếtkế mức lớn khả sử dụng lại thiết kế: VHDL phát triển ngơn ngữ lập trình bậc cao, sử dụng để thiếtkế hệ thống lớn với tham gia nhóm nhiều người Bên ngơn ngữ VHDL có nhiều tính hỗ trợ việc quản lý, thử nghiệm chia sẻ thiếtkế Và cho phép dùng lại phần có sẵn Đồ án thiếtkế logic số CHƯƠNG II: THIẾTKẾIPCOREBỘĐIỀUKHIỂNCHUỘTMÁYTÍNHTHƠNGQUACHUẨN 2.1 Giới thiệu chuẩn giao tiếp PS2ChuẩnPS2 giao diện phần cứng dùng để kết nối bàn phím sử dụng cổng PS2 khác vào máytính Giao diện PS2 loại đầu nối 6-pin MINI DIN (DIN - Deutsches Institut fur Normung - chuẩn giao diện phát triển Viện khoa học Định chuẩn Đức) Cổng ps2 có kết nối nguồn làm việc tốt 5V, 3,3V thiết bị cũ Một chân kết nối với đất Hai đường dùng cho kết nối, dây cho phép truyền liệu theo chuỗi nối tiếp, dây lại chứa thông tin clock xác định liệu hợp lệ nhận Thông tin truyền theo gói 11 bít, bao gồm bit start , bit liệu, bít dùng cho phép kiểm tra chẵn lẻ, bit stop Các thông tin liên lạc cổng PS2 hai chiều máy chủ gửi lệnh bàn phím chuột để thiết lập thông số định Kết nối cổng ps2 kết nối song cơng Host gửi lệnh xuống chuột bàn phím cài đặt tham số Giao diện vật lý cho cổng PS2 Hình 2.1 Giao diện vật lý cổng PS2 Đồ án thiếtkế logic số Cổng giao tiếp PS2 có tất chân đánh số từ đến Chân số tương ứng GND nguồn Nguồn sử dụng 5V thực tế với thiếtkế FPGA sử dụng mức điện áp 3.3V Nguồn +5V tạo PC mass GND kết nối với mass PC Cả bàn phím máytính có điện trở kéo lên cho Clock Data lên nguồn 5V Chân chân tín hiệu đồng CLK Còn chân chân liệu DATA (PS2D) cho phép truyền liệu theo chuỗi nối tiếp.Chân 2,6 hai chân dự trữ 2.2 Giới thiệu cấu trúc chuộtchuẩnPS2 Hình 2.2 Định dạng gói liệu chuộtPS2 X8……,X0 : Các điểm trục tọa độ X Xv : Điểm tràn trục tọa độ X Y8…….,Y0 : Các điểm trục tọa độ Y Yv : Điểm tràn trục tạo độ Y L : Trạng thái phím bấm trái Trạng thái ‘1’ chuột trái bấm R : Trạng thái phím bấm phải Trạng thái ‘1’ chuột phải bấm Đồ án thiếtkế logic số M : Trạng thái phím lăn , lật trang Trạng thái ‘1’ phím bấm phải bấm 2.3 ThiếtkếIPcoređiềukhiểnchuộtmáytínhthơngquachuẩnPS2 2.3.1 Giản đồ xung cổng PS2 Hình 2.3 Giản đồ xung cổng PS2 2.3.2 Ý tưởng thiếtkế Sơ đồ khối hệ thống bao gồm : Đồ án thiếtkế logic số Hình 2.4.Sơ đồ khối hệ thống Khối MOUSE_LED: có chức thị trạng thái phím bấm vị trí chuột lên LED đơn Khối PS2_MOUSE: khối xác định phím bấm vị trí chuột Khối PS2_RXTX: Khối có chức liên kết khối truyền liệu (ps2_tx) khối nhận liệu (ps2_rx) Khối PS2_TX: Khối truyền đữ liệu Khối PS2_RX: Khối nhận liệu 2.3.3 Sơ đồ khối truyền nhận liệu Đồ án thiếtkế logic số x_next(7 downto 0) if rx_done_tick='1' then state_next ps2c, tx_idle=>tx_idle, tx_done_tick=>tx_done_tick); ps2_rx_unit: entity work.ps2_rx(behavioral) port map (clk=>clk, reset=>reset, rx_en=>tx_idle, ps2d=>ps2d, ps2c=>ps2c, rx_done_tick=>rx_done_tick, dout=> dout); end Behavioral; Code PS2_tx Đồ án thiếtkế logic số Company: Engineer: - Create Date: 23:21:38 04/01/2013 Design Name: Module Name: ps2_tx - Behavioral Project Name: Target Devices: Tool versions: Description: - Dependencies: - Revision: Revision 0.01 - File Created Additional Comments: library IEEE; use IEEE.STD_LOGIC_1164.ALL; use IEEE.NUMERIC_STD.ALL; Uncomment the following library declaration if using arithmetic functions with Signed or Unsigned values use IEEE.NUMERIC_STD.ALL; Đồ án thiếtkế logic số Uncomment the following library declaration if instantiating any Xilinx primitives in this code library UNISIM; use UNISIM.VComponents.all; entity ps2_tx is Port ( clk : in STD_LOGIC; reset : in STD_LOGIC; din : in STD_LOGIC_VECTOR(7 DOWNTO 0); wr_ps2 : in STD_LOGIC; ps2c : inout STD_LOGIC; ps2d : inout STD_LOGIC; tx_idle : out STD_LOGIC; tx_done_tick : out STD_LOGIC); end ps2_tx; architecture Behavioral of ps2_tx is type statetype is (idle, rts, start, data, stop); signal state_reg, state_next: statetype; signal filter_reg, filter_next: std_logic_vector(7 downto 0); signal f_ps2c_reg, f_ps2c_next : std_logic; signal fall_edge: std_logic; signal b_reg ,b_next: std_logic_vector(8 downto 0) ; signal c_reg ,c_next : unsigned(12 downto 0); signal n_reg ,n_next : unsigned(3 downto 0) ; Đồ án thiếtkế logic số signal par: std_logic; signal ps2c_out, ps2d_out: std_logic; signal tri_c, tri_d: std_logic; begin filter and falling-edge tick generation for ps2c process (clk, reset) begin if reset='1' then filter_reg '0'); f_ps2c_reg