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

22 1.5K 30
Hướng dẫn thiết kế số sử dụng ngôn ngữ Verilog-HDL trên FPGA: Bài 3 pdf

Đ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 1) BÀI 3: 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  Quy tắc đặt tên  Cấu trúc một thiết kế  Khai báo module  Các loại toán tử  Hàm assign  Cấu trúc always  Phép gán blocking và non-blocking  posedge và negedge  Bài tập ví dụ 30/05/2013 FPGA Class 2 Quy tắc đặt tên (1)  Quy tắc đặt tên áp dụng cho tên file module, tên tín hiệu, tên các thông số do người thiết kế tạo ra.  Tên project trùng tên file với module chính (top module).  Top module là module kết nối tất cả các module con (sub-module).  Tên file trùng tên module: <tên module>.v  Tên chỉ gồm ký tự chữ cái (phân biệt chữ hoa và chữ thường), số và dấu gạch dưới và phải bắt đầu với một ký tự chữ.  Không dùng các tên như VDD, VCC, VSS, GND, VREF kể cả chữ hoa và chữ thường.  Không trùng các từ khóa của ngôn ngữ lập trình.  Không kết thúc tên với dấu gạch dưới, không sử dụng nhiều dấu gạch dưới liên tiếp. 30/05/2013 FPGA Class 3 Quy tắc đặt tên (2)  Không đặt tên trùng nhau.  Với tín hiệu clock nên là: clock, clk hoặc ck  Với tín hiệu reset nên là: reset, rst hoặc reset_n, rst_n.  Tên càng gợi nhớ và càng ngắn càng tốt.  Tên các tín hiệu, các port, thanh ghi nên đặt chữ in thường.  Tên các tham số (parameter, define) nên đặt chữ in hoa. 30/05/2013 FPGA Class 4 Nội dung chính  Quy tắc đặt tên  Cấu trúc một thiết kế  Khai báo module  Các loại toán tử  Hàm assign  Cấu trúc always  Phép gán blocking và non-blocking  posedge và negedge  Bài tập ví dụ 30/05/2013 FPGA Class 5 Cấu trúc một thiết kế 30/05/2013 FPGA Class 6 Mỗi module là một file. Các module sẽ được kết nối với nhau (ngõ vào module này nối với ngõ ra module khác ở top module). Tên project trùng tên với top module. Nội dung chính  Quy tắc đặt tên  Cấu trúc một thiết kế  Khai báo module  Các loại toán tử  Hàm assign  Cấu trúc always  Phép gán blocking và non-blocking  posedge và negedge  Bài tập ví dụ 30/05/2013 FPGA Class 7 Khai báo một module  module example (//input a, b, //ouput y);  input a;  input [2:0] b;  output y;  reg y; always, assign, case, if, for  endmodule 30/05/2013 FPGA Class 8 từ khóa tên module danh sách port khai báo tín hiệu ngõ vào khai báo tín hiệu ngõ ra khai báo kiểu tín hiệu ngõ ra các hàm và lệnh kết thúc module Ví dụ về khai báo module 30/05/2013 FPGA Class 9 Đoạn code mô tả bộ mux 2 sang 1 Mux 2 sang 1 Mạch sau khi tổng hợp bằng Quartus Nội dung chính  Quy tắc đặt tên  Cấu trúc một thiết kế  Khai báo module  Các loại toán tử  Hàm assign  Cấu trúc always  Phép gán blocking và non-blocking  posedge và negedge  Bài tập ví dụ 30/05/2013 FPGA Class 10 [...]... 30 /05/20 13 20 Bài tập ví dụ 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 FPGA Class 30 /05/20 13 21 KẾT THÚC BÀI 3 FPGA... Không thiết kế với cả posedge và negedge trong cùng 1 cấu trúc always  Chỉ nên sử dụng 1 khai báo posedge hoặc negedge (đơn clock) nếu có thể  Thường dùng posedge FPGA Class 30 /05/20 13 19 Nội dung chính          Quy tắc đặt tên Cấu trúc một thiết kế Khai báo module Các loại toán tử Hàm assign Cấu trúc always Phép gán blocking và non-blocking posedge và negedge Bài tập ví dụ FPGA Class 30 /05/20 13. .. kiện sai>; Kết thúc một dòng lệnh bằng dấu “chấm phẩy” Ví dụ:  assign mux_out = sel? din_1: din_0;  assign mux_out = sel_1? (sel_2?din_2:din_1): din_0; FPGA Class 30 /05/20 13 13 Nội dung chính          Quy tắc đặt tên Cấu trúc một thiết kế Khai báo module Các loại toán tử Hàm assign Cấu trúc always Phép gán blocking và non-blocking posedge và negedge Bài tập ví dụ FPGA Class 30 /05/20 13 14 Cấu... 1 hàm case, if, always Dùng cho mạch tổ hợp Dùng cho mạch tuần tự C = DIN FPGA Class 30 /05/20 13 17 Nội dung chính          Quy tắc đặt tên Cấu trúc một thiết kế Khai báo module Các loại toán tử Hàm assign Cấu trúc always Phép gán blocking và non-blocking posedge và negedge Bài tập ví dụ FPGA Class 30 /05/20 13 18 posedge và negedge  Hai từ khóa này dùng trong danh sách độ nhạy của cấu trúc always...Các loại toán tử và mức ưu tiên Cao Thấp FPGA Class 30 /05/20 13 11 Nội dung chính          Quy tắc đặt tên Cấu trúc một thiết kế Khai báo module Các loại toán tử Hàm assign Cấu trúc always Phép gán blocking và non-blocking posedge và negedge Bài tập ví dụ FPGA Class 30 /05/20 13 12 Hàm ASSIGN và toán tử điều kiện Phải là kiểu dữ liệu “wire” Phải là phép gán blocking... wire Với kiểu viết như thế này chúng ta không sợ thiếu danh sách độ nhạy FPGA Class 30 /05/20 13 15 Nội dung chính          Quy tắc đặt tên Cấu trúc một thiết kế Khai báo module Các loại toán tử Hàm assign Cấu trúc always Phép gán blocking và non-blocking posedge và negedge Bài tập ví dụ FPGA Class 30 /05/20 13 16 Gán blocking (=) và non-blocking ( . 30 /05/20 13 FPGA Class 1 NGÔN NGỮ LẬP TRÌNH PHẦN CỨNG VERILOG HDL (PHẦN 1) BÀI 3: hoangquang.dientu@gmail.com Nhận hướng dẫn thiết kế số sử dụng. khóa của ngôn ngữ lập trình.  Không kết thúc tên với dấu gạch dưới, không sử dụng nhiều dấu gạch dưới liên tiếp. 30 /05/20 13 FPGA Class 3 Quy tắc

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