Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 16 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
16
Dung lượng
1,51 MB
File đính kèm
bao cao verilog.rar
(10 MB)
Nội dung
NGÔNNGỮLẬPTRÌNHVERILOG BỘ CÔNG THƯƠNG TRƯỜNG ĐẠI HỌC CÔNG NGHIỆP TPHCM KHOA CÔNG NGHỆ ĐIỆN TỬ - oOo TIỂU LUẬN CÔNG NGHỆ VI ĐIỆN TỬ ĐỀ TÀI: NGÔNNGỮLẬPTRÌNHVERILOG Trang NGÔNNGỮLẬPTRÌNHVERILOG MỤC LỤC I Giới thiệu ngônngữVerilog II Các thuật ngữVerilog III Các dạng liệu IV.Toán tử V Modules ví dụ Trang NGÔNNGỮLẬPTRÌNHVERILOG Giới Thiệu Verilog Đặc điểm: - Verilogngônngữ mô tả phần cứng người thiết kế phần cứng sử dụng để mô tả, thiết kế hệ thống số VD: vi xử lý hay linh kiện điện tử - Verilog dễ học dễ sử dụng VHDL - Verilog chuẩn hoá theo chuẩn IEEE vào năm 1995 2001 - Verilog giống ngônngữ C giới chuyên môn nghiên cứu, sử dụng nhiều Verilog sử dụng để thiết kế hệ thống số nhiều mức khác Verilog thường dùng để mô tả thiết kế bốn dạng: • Thuật toán (một số lệnh giống ngônngữ C như: if, case, for, while…) • Chuyển đổi ghi (kết nối biểu thức Boolean) • Các cổng kết nối (cổng: OR, AND, NOT…) • Chuyển mạch (BJT, MOSFET) Trang NGÔNNGỮLẬPTRÌNHVERILOG Cấu trúc chương trình dùng ngônngữVerilog // 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 Trang NGÔNNGỮLẬPTRÌNHVERILOG CÁC THUẬT NGỮ TRONG VERILOG Khoảng trắng Chú giải Được viết sau hai dấu gạch xiên (//), viết dòng Được viết /* */, viết nhiều dòng giải Chữ số Định nghĩa số bit, giá trị là: số nhị phân, bát phân, thập phân, thập lục phân VD : 3’b001, 5’d30 = 5’b11110, 16’h5ED4 = 16’d24276 = 16’b0101111011010100 Từ định danh Từ định danh người dùng quy định cho biến, tên hàm, tên môđun, tên khối tên trường hợp Từ định danh bắt đầu mẫu tự đường gạch ’_’ (không bắt đầu số $ ) kể chữ số mẫu tự, số đường gạch Từ định danh Verilog phân biệt dạng chữ Trang NGÔNNGỮLẬPTRÌNHVERILOG Cú pháp : Ký hiệu cho phép: ABDCE…abcdef…1234567890_$ Không cho phép: ký tự đặc biệt khác -, &, #, @ Toán tử Toán tử một, hai, ba kí tự dùng để thực toán hạng biến Các toán tử bao gồm >, +, &, != Từ khóa Verilog Có nhiều từ mã có ý nghĩa đặc biệt Verilog Ví dụ: assign, case, while, wire, reg, and, or, nand, module Chúng không dùng từ định danh Từ khóa Verilog bao gồm dẫn chương trình biên dịch System Task (hệ thống soạn thảo) hàm Trang NGÔNNGỮLẬPTRÌNHVERILOG CÁC DẠNG DỮ LIỆU Đặt giá trị Verilog bao gồm giá trị sau: 0: mức logic 0, điều kiện sai 1: mức logic 1, điều kiện X: mức logic tuỳ định Z: trạng thái tổng trở cao X Z dùng có giới hạn tổng hợp (synthesis) Wire - Mô tả vật liệu đường dây dẫn để kết nối cổng hay module - Giá trị Wire đọc, không gán function block - 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 đầu 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 bộ điều khiển kết nối đến Wire - Wor (wired_or): giá trị p.thuộc 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 Z cao Trang NGÔNNGỮLẬPTRÌNHVERILOG 2.1 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 2.2 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 Reg - Reg (register) : liệu chứa có giá trị từ thủ tục gán Reg dùng thủ tục hàm khối - Reg loại biến Verilog; không thiết ghi tự nhiên Trong ghi nhiều bit, data lưu trữ chữ số không dấu kí hiệu đuôi mở rộng, chủ yếu số bù hai Trang NGÔNNGỮLẬPTRÌNHVERILOG 3.1 Cú pháp: Reg [msb:lsb] tên biến reg 3.2.Ví dụ: Reg a; // biến ghi đơn giản bit Reg [7:0] A; // vectơ bit; bank bít ghi Reg [5:0]b, c;// hai biến ghi bit Input, Output, Inout - Những từ khoá biểu thị đầu vào, đầu ra, port hai chiều module task Một port đầu cấu hình từ dạng: wire, reg, wand, wor, tri Mặc định wire 4.1 Cú pháp: Input [msb:lsb] port đầu vào Output [msb:lsb] port đầu Inout [msb:lsb] port đầu vào,ra hai chiều 4.2 Ví dụ: Module sample (b, e, c, a); Input a; // đầu vào mặc định kiểu wire Output b, e; // hai đầu mặc định kiểu wire Output [1:0] c; /* đầu hai bit, phải khai báo lệnh riêng*/ Trang NGÔNNGỮLẬPTRÌNHVERILOG Reg [1:0] c; // đầu c khai báo reg Integer (Số nguyên) - Integer biến đa Trong tổng hợp, dùng chủ yếu cho vòng lặp, tham số, số Chúng hoàn toàn reg - Tuy nhiêu chúng chứa liệu số có dấu, khai báo dạng reg chung số không dấu - Nếu chúng chứa số mà không định nghĩa thời gian biên dịch kích thước mặc định 32 bit Nếu chứa hằng, tổng hợp điều chỉnh số có kích thước nhỏ cần thiết cho biên dịch 5.1 Cú pháp: Integer tên biến nguyên; …tên nguyên…; 5.2 Ví dụ: Integer a; // số nguyên đơn giản 32bit Assign b= 63; // mặc định biến bit Trang 10 NGÔNNGỮLẬPTRÌNHVERILOG Supply0, Supply1 - Xác định chổ đường dẫn lên mức logic ( đất), logic (nguồn) theo thứ tự định sẵn Time -Time lượng 64 bit mà sử dụng với $time, hệ thống thao tác chứa lượng thời gian mô Time không hỗ trợ tổng hợp và dùng mục đích mô 7.1 Cú pháp: Time biến time; 7.2 Ví dụ: Time c; c = $time; // c = thời gian mô dòng điện Parameter (Tham số) Một Parameter xác định số mà đặt bạn cho ví dụ cụ thể module Các cho phép ta sửa chữa Trang 11 NGÔNNGỮLẬPTRÌNHVERILOG 8.1 Cú pháp: Parameter par_1= giá trị, par_2= giá trị, …; Parameter [giới hạn] par_3 = giá tr?; 8.2 Ví dụ: Parameter add = 2b’00, sub = 3b’111; Parameter n = 4; Parameter [3:0] par_2 = 4b’1010; … reg [n-1:0] harry; /* ghi bít mà độ rộng đặt tham số n */ always @(x) y = {{(add - sub) {x}}} if (x) begin state = par_2[1]; else state =par_2[2]; end Trang 12 NGÔNNGỮLẬPTRÌNHVERILOG TOÁN TỬ Trang 13 NGÔNNGỮLẬPTRÌNHVERILOG Trong đó, ý so sánh kiểu case hay identity kiểu so sánh giá trị đồng Các giá trị dùng xử lý so sánh bao gồm 0, 1, X Z Kết trả bit mang ý nghĩa True/False Với kiểu so sánh logic xử lý giá tị 1, đối tượng so sánh chứa giá trị X Z kết trả X Trang 14 NGÔNNGỮLẬPTRÌNHVERILOG Phép Logic Trang 15 NGÔNNGỮLẬPTRÌNHVERILOG Modules Toán tử điều kiện dùng để chọn lựa giá trị gán cho tín hiệu theo điều kiện cho trước Bitwise Biểu thức: Y = A & B (đây biểu thức) A B gọi toán hạng Toán tử bitwise thực xử lý bit tương ứng theo vị trí hai toán hạng Nếu toán hạng có độ dài ngắn toán hạng lại toán hạng ngắn mở rộng thêm bit “0” vị trí bit trọng số cao MSB (bên trái toán hạng đó) để thực Ví dụ: Nếu A[2:0] B[3:0] A[2:0] mở rộng thành {0, A[2:0]}, lúc B[3] AND với Toán tử bitwise trả kết giá trị có hướng, kết bit tất toán hạng bit, vector toán hạng nhiều bit Trang 16 ...NGÔN NGỮ LẬP TRÌNH VERILOG MỤC LỤC I Giới thiệu ngôn ngữ Verilog II Các thuật ngữ Verilog III Các dạng liệu IV.Toán tử V Modules ví dụ Trang NGÔN NGỮ LẬP TRÌNH VERILOG Giới Thiệu Verilog. .. if (x) begin state = par_2[1]; else state =par_2[2]; end Trang 12 NGÔN NGỮ LẬP TRÌNH VERILOG TOÁN TỬ Trang 13 NGÔN NGỮ LẬP TRÌNH VERILOG Trong đó, ý so sánh kiểu case hay identity kiểu so sánh... giá tị 1, đối tượng so sánh chứa giá trị X Z kết trả X Trang 14 NGÔN NGỮ LẬP TRÌNH VERILOG Phép Logic Trang 15 NGÔN NGỮ LẬP TRÌNH VERILOG Modules Toán tử điều kiện dùng để chọn lựa giá trị gán