Hệ thống nhúng slide 2

32 50 0
Hệ thống nhúng slide 2

Đ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

13:15:17 BÀI 2: FPGA Giới thiệu VHDL (Very High speed integrated circuit Description Language) Verilog HDL Bài 13:21:53 Giới thiệu FPGA (Field Programmable Gate Array) vi mạch dùng cấu trúc mảng phần tử logic mà người dùng lập trình - Có thể 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 - 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 Bài 2 13:21:53 Giới thiệu 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 Bài 13:21:53 Một số ứng dụng Altera DE2 TV Box Chuột USB Ứng dụng Ethernet Ứng dụng âm Bài 13:21:53 Giới thiệu Cấu trúc FPGA (Configurable Logic Blocks) Bài 13:21:53 VHDL VHDL ngôn ngữ mô tả phần cứng cho mạch tích hợp tốc độ cao (VHDL: Very High Speed Integrated Circuits - Hardware Description Language) sử dụng để mô tả hệ thống thiết kế logic VHDL chuẩn hóa từ 1987 IEEE 1076-1987, nâng cấp năm 1993 Đa số phần mềm thiết kế hỗ trợ VHDL Bài 13:21:53 VHDL CẤU TRÚC CỦA MỘT THIẾT KẾ DÙNG VHDL Bài 13:21:53 VHDL LIBRARY (thư viện) Một thư viện nơi lưu trữ câu lệnh thường sử dụng Khai báo Library: LIBRARY library_name; USE library_name.package_name.package_parts; Có gói, từ thư viện khác thường sử dụng thiết kế: • ieee.std_logic_1164, ieee.std_logic_arith (ieee library), • standard (std library) • work (work library) Bài 16:13:14 VHDL Entity (thực thế) Khai báo entity dùng để mô tả ngõ vào ngõ thiết kế Mức cao thiết kế VHDL khai báo entity đơn, tên file lưu trữ phải trùng với tên theo sau từ khóa entity signal_mode: IN, OUT, INOUT BUFFER signal_type: BIT, STD_LOGIC, INTEGER, … entity_name: tên bất kỳ, trừ từ khóa VHDL Bài 16:13:14 Entity (thực thế) library ieee; use ieee.std_logic_1164.all; ENTITY HALF_ADDER IS PORT(A,B : IN BIT; SUM,CARRY : OUT BIT); END HALF_ADDER; Bài 10 16:13:14 Entity (thực thế) 2.1 D-FF Mux 8-1 2.3 Mux 4-1 2.2 Bài 11 16:13:14 Entity (thực thế) signal_type:  bit : có giá trị  bit_vector: là vector giá trị bit, ví dụ: bit_vector (0 to 7)  std_logic, std_logic_vector: có giá trị giá trị kích thước tín hiệu  boolean: có giá trị TRUE FALSE  integer: dãy giá trị integer  Real: có dãy giá trị Real  Time - để biểu thị thời gian Bài 12 16:13:14 Entity (thực thế) signal_type: std_logic: U chưa gán X không xác định 'X', '1', '0' giá trị mạnh trội giá trị yếu 'W', 'L', 'H' chúng lại trội 'Z’ '1' '0' hiểu nối Z tổng trở cao W không xác định (yếu) L (yếu) H (yếu) - Không quan tâm nguồn nối đất Giá trị 'U'và 'W' gọi giá trị gần luận lý, chủ yếu có chức mơ khơng có ý nghĩa phần cứng Bài 13 16:13:14 Entity (thực thế) signal_type: std_logic: A B A = 0, B = H  A = Z, B = H  H A = H, B = L  W Bài 14 16:13:14 Entity (thực thế) signal_type: std_logic_vector: Khai báo vector kiểu std_logic ENTITY my_design IS Port (a, b : in integer range to 7; c : in std_logic_vector (0 to 2); d : in std_logic_vector (3 downto 0); e : out Boolean); END my_design; Bài 15 16:13:14 Entity (thực thế) Bài 16 16:13:14 VHDL ARCHITECTURE (cấu trúc) mô tả mạch dùng để xác định mạch làm việc (có chức gì) Bài 17 16:13:14 Architechture dạng cấu trúc (structure) mô tả phần tử bên hệ thống kết nối phần tử ARCHITECTURE HA_STRUCTURE OF HALF_ADDER IS Component XOR2 Port(X,Y: in BIT; Z: out BIT); End component Component AND2 Port(L,M: in BIT; N: out BIT); End component BEGIN X1: XOR2 port map (A,B,SUM); A1: AND2 port map (A,B,CARRY); END HA_STRUCTURE; Bài 18 16:13:14 Architechture dạng cấu trúc (structure) 2.4 Bài 19 16:13:14 Architechture dạng hành vi (behavioral) Kiểu mô tả hành vi bao gồm tập hợp thứ tự phép gán tín hiệu khai báo bên phát biểu process Biến khai báo process biến cục Tín hiệu khơng khai báo process ARCHITECTURE HA_STRUCTURE OF HALF_ADDER IS BEGIN Process(A,B) Begin SUM 2.10 Mạch so sánh bit Mạch so sánh bit bao gồm bit ngõ vào, chia thành nhóm, nhóm bit đặt tên A B Kết phép so sánh ngõ vào biểu thị bit ngõ cho trường hợp so sánh A B: AeqB(A equal B), AgtB(A greater B), AltB (A lighter B) Bài 36 18 Lệnh Case 16:13:14 2.11 Thực 2.8 -> 2.9 dùng lệnh case Bài WHEN 37 16:13:14 Gán WHEN điều_kiện ELSE Gán WHEN điều_kiện ELSE …; WITH biểu_thức SELECT Gán WHEN giá trị, Gán WHEN giá trị, … Gán WHEN OTHERS; 2.12 Thực lại 2.11 Bài 38 19 16:13:14 2.13 Viết mã VHDL cho giải mã 3-> 2.14 Viết mã VHDL cho mã hóa -> Bài 39 16:13:14 Verilog HDL Cấu trúc chương trình // Khai báo module Module tên chương trình (tên biến I/O); // tên chương trình trùng tên file.v Input [msb:lsb] biến; Output [msb:lsb] biến; Reg [msb:lsb] biến reg; Wire [msb: lsb] biến wire; // Khai báo khối always, khối initial … lệnh … Endmodule Bài 40 20 16:13:14 Verilog HDL assign: lệnh gán ~, &, |: toán tử NOT, AND, OR Bài 41 16:13:14 Verilog HDL Thực Quartus: Quá trình tương tự VHDL, B4, chọn Verilog HDL thay cho VHDL Bài 42 21 16:13:14 Verilog HDL Bài 43 16:13:14 Wire: - Mô tả dây dẫn mạch, dùng để kết nối cổng hay module - Giá trị Wire đọc, khơng gán hàm khối - Wire không lưu trữ giá trị phải thực thi lệnh gán hay kết nối Wire với ngõ cổng module Những dạng đặc biệt khác Wire: Wand (wired_and): giá trị phụ thuộc vào mức logic And toàn điều khiển kết nối đến Wire Wor (wired_or): giá trị phụ thuộc vào mức logic Or toàn bộ điều khiển kết nối đến Wire Tri (three_state): tất điều khiển kết nối đến tri phải trạng thái tổng trở cao Bài 44 22 16:13:14 Cú pháp: Wire [msb:lsb] tên biến wire Wand [msb:lsb] tên biến wand Wor [msb:lsb] tên biến wor Tri [msb:lsb] tên biến tri Ví dụ: Wire c; Wand d; Assign d= a; Assign d= b;// giá trị d mức logic phép And a b Wire [9:0] A; // vectơ A có 10 wire Bài 45 16:13:14 2.15 Viết mã Verilog mô tả mạch: ~ (bitwire NOT) & (bitwire AND) | (bitwire OR) ^ (bitwire XOR), 2.16 ~^ hay ^~ (bitwire XNOR) =( ̅ )+( Bài )+( ̅ )+( ) 46 23 16:13:14 Mạch đếm lên không đồng bit có ngõ vào xóa (clr) tích cực mức thấp Bài 47 16:13:14 Reg: Reg (register) đối tượng liệu chứa giá trị từ thủ tục gán kế tiếp, dùng hàm khối thủ tục Reg loại biến Verilog không thiết ghi tự nhiên Cú pháp: Reg [msb:lsb] tên biến reg Ví dụ: Reg a; // biến ghi đơn giản bit Reg [7:0] A; // vector bit Reg [5:0]b, c; // hai biến ghi bit Bài 48 24 16:13:14 Khối always: trạng thái tồn thực thi liên tục mô Tất khối always module thực thi liên tục Khối always dùng chốt, flip flop hay kết nối logic Nếu lệnh khối always nằm phạm vi khối begin… end thực thi liên tục, nằm khối fort… join, chúng thực thi đồng thời (chỉ mô phỏng) Khối always thực mức, cạnh lên cạnh xuống hay nhiều tín hiệu (các tín hiệu cách từ khóa OR) Cú pháp: Always @(sự kiện or kiện or…) Begin … lệnh… end Always @(sự kiện or kiện or…) Begin: tên khối … lệnh… end Bài 49 16:13:14 posedge: xung cạnh lên negedge: xung cạnh xuống Nếu có xung cạnh lên chân clk hay clr thực đoạn mã begin …end 4’b0: b0: số nhị phân 0, 4’: bit  0000 3’d5: d5: số thập phân 5, 3’: bit  101 8’hAB: hAB: số thập lục phân AB, 8’: bit  1010 1011 Bài 50 25 16:13:14 Lệnh if Thực lệnh khối lệnh phụ thuộc vào kết biểu thức theo sau mệnh đề if Cú pháp If (biểu thức) Begin … lệnh… end else if (biểu thức) Begin … lệnh… end else Begin … lệnh… end Bài Phép gán =

Ngày đăng: 24/10/2020, 08:31

Từ khóa liên quan

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

Tài liệu liên quan