Hướng dẫn thiết kế số sử dụng ngôn ngữ Verilog-HDL trên FPGA: Bài 4 pptx

12 1.2K 31
Hướng dẫn thiết kế số sử dụng ngôn ngữ Verilog-HDL trên FPGA: Bài 4 pptx

Đ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

30/05/2013 FPGA Class 1 NGÔN NGỮ LẬP TRÌNH PHẦN CỨNG VERILOG HDL (PHẦN 2) BÀI 4: hoangquang.dientu@gmail.com Nhận hướng dẫn thiết kế số sử dụng ngôn ngữ Verilog-HDL trên FPGA Nội dung chính  Hàm If  Hàm case  Máy trạng thái FSM  Ví dụ thực hiện 30/05/2013 FPGA Class 2 Hàm If  Hàm If nằm trong cấu trúc always  If (<điều kiện 1>) begin  Kết quả 1;  end  else if (<điều kiện 2>) begin  Kết quả 1;  end  else begin  Kết quả khác;  end 30/05/2013 FPGA Class 3 Phải có nếu có nhiều dòng lệnh Phải có nếu là mạch tổ hợp hoặc là mạch tuần tự nhưng không muốn giữ lại giá trị cũ. Ví dụ hàm If  module example_1 (a, b, c, d, sel, y);  input a;  input b;  input c;  input d;  input [1:0] sel;  output reg [1:0] y;  always @ (*) begin  If (sel == 1’b00)  y = a;  else if (sel == 1’b01)  y = b;  else if (sel == 1’b10)  y = c;  else  y = d;  end  endmodule 30/05/2013 FPGA Class 4  module example_1 (a, b, c, sel, y);  input a;  input b;  input c;  input [1:0] sel;  output reg [1:0] y;  always @ (*) begin  If (sel == 1’b00)  y = a;  else if (sel == 1’b01)  y = b;  else if (sel == 1’b10)  y = c;  end  endmodule Hàm if đầy đủ trường hợp Hàm if không đầy đủ trường hợp phải chú ý đến nhánh else để tránh tạo chốt Nội dung chính  Hàm If  Hàm case  Máy trạng thái FSM  Ví dụ thực hiện 30/05/2013 FPGA Class 5 Hàm case và casex  case (<điều kiện tác động>)  <Trường hợp 1>: begin  <Giá trị ngõ ra>;  end  <Trường hợp 2>: begin  <Giá trị ngõ ra>;  end  default: begin  <Giá trị ngõ ra>;  end  endcase 30/05/2013 FPGA Class 6 Phải có nếu có nhiều dòng lệnh Một hoặc nhiều tín hiệu ghép lại Phải có nếu là mạch tổ hợp Giá trị điều kiện là hằng số (chỉ là 1 hoặc 0)  casex (<điều kiện tác động>)  endcase casex sử dụng như hàm case nhưng giá trị điều kiện có thể là “X” (don’t care – tùy định) Ví dụ hàm case 30/05/2013 FPGA Class 7  module example_1 (a, b, c, d, sel, y);  input a;  input b;  input c;  input d;  input [1:0] sel;  output reg [1:0] y;  always @ (*) begin  case (sel)  2’b00: y = a;  2’b01: y = b;  2’b10: y = c;  2’b11: y = d;  endcase  end  endmodule  module example_1 (a, b, c, sel, y);  input a;  input b;  input c;  input [1:0] sel;  output reg [1:0] y;  always @ (*) begin  case (sel)  2’b00: y = a;  2’b01: y = b;  2’b10: y = c;  endcase  end  endmodule Hàm case đầy đủ trường hợp Hàm case không đầy đủ trường hợp phải có default để tránh tạo chốt So sánh If và case  If sẽ tạo ra mạch xử lý nối tiếp  Tốc độ xử lý chậm.  Diện tích có thể nhỏ hơn case. 30/05/2013 FPGA Class 8  Case sẽ tạo ra mạch xử lý song song  Tốc độ xử lý nhanh.  Diện tích thường lớn hơn If.  Mạch tạo bởi casex đôi khi tương đồng với hàm If.  Điều này còn tùy vào trình tổng hợp sử dụng Bài tập ví dụ tổng hợp 30/05/2013 FPGA Class 9 1. Diễn giải chức năng của mạch? 2. Xác định ngõ vào (tín hiệu vào) và ngõ ra (tín hiệu ra của mạch)? Từ đó vẽ đồ chân tín hiệu. 3. Viết RTL code bằng ngôn ngữ Verilog mô tả mạch bên theo các cách sau: 1. Chỉ dùng hàm assign 2. Chỉ dùng hàm always@ 1. Với If 2. Với Case 3. Dùng kết hợp assign và always 4. Đưa ra phương án kiểm tra trên KIT DE1. Máy trạng thái (FSM – Finite State Machine)  <Khai báo hằng số trạng thái>  <Khai báo biến trạng thái>  <Khối always chuyển trạng thái>  <Khối always xác định giá trị ngõ ra và điều kiện chuyển trạng thái> 30/05/2013 FPGA Class 10 parameter <tên trạng thái> = <hăng số gán>; hai biến kiểu reg với state/current_state và next_state Hoạt động theo xung clock Mạch tổ hợp Toàn bộ máy trạng thái là mạch tuần tự [...]...Ví dụ máy trạng thái FPGA Class 30/05/2013 11 KẾT THÚC BÀI 4 FPGA Class 30/05/2013 12 . 1 NGÔN NGỮ LẬP TRÌNH PHẦN CỨNG VERILOG HDL (PHẦN 2) BÀI 4: hoangquang.dientu@gmail.com Nhận hướng dẫn thiết kế số sử dụng ngôn ngữ Verilog-HDL trên. (<điều kiện 1>) begin  Kết quả 1;  end  else if (<điều kiện 2>) begin  Kết quả 1;  end  else begin  Kết quả khác;  end 30/05/2013

Ngày đăng: 10/03/2014, 00:20

Từ khóa liên quan

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

Tài liệu liên quan