Hướng dẫn thiết kế số sử dụng ngôn ngữ Verilog-HDL trên FPGA: Bài 3
Số trang: 22
Loại file: pdf
Dung lượng: 666.94 KB
Lượt xem: 15
Lượt tải: 0
Xem trước 3 trang đầu tiên của tài liệu này:
Thông tin tài liệu:
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: .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...
Nội dung trích xuất từ tài liệu:
Hướng dẫn thiết kế số sử dụng ngôn ngữ Verilog-HDL trên FPGA: 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 BÀI 3: NGÔN NGỮ LẬP TRÌNH PHẦN CỨNG VERILOG HDL (PHẦN 1) FPGA Class 30/05/2013 1 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/2013 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: .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. FPGA Class 30/05/2013 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. FPGA Class 30/05/2013 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ụ FPGA Class 30/05/2013 5 Cấu trúc một thiết kế 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. FPGA Class 30/05/2013 6 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/2013 7 Khai báo một module từ khóa tên module module example (//input a, b, danh sách port //ouput y); input a; khai báo tín hiệu ngõ vào input [2:0] b; output y; khai báo tín hiệu ngõ ra reg y; khai báo kiểu tín hiệu ngõ ra --------------------- always, assign, case, if, for các hàm và lệnh --------------------- endmodule kết thúc module FPGA Class 30/05/2013 8 Ví dụ về khai báo module Đ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 FPGA Class 30/05/2013 9 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/2013 10 Các loại toán tử và mức ưu tiên Cao Thấp FPGA Class 30/05/2013 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/2013 12 Hàm ASSIGN và toán tử điều kiện Phải là kiểu dữ liệu “wire” toán tử điều Phải là phép gán blocking kiện assign = ? : ; 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/2013 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/2013 14 Cấu trúc ALWAYS@ Liệt kê tất các tín hiệu bên phải biểu thức gán always @ () begin case, if, (không có assign) end Kiểu dữ liệu của tín hiệu được gán trong cấu trúc always phải là reg Danh sách độ nhạy không được khai báo đầy đủ (Thiếu tín hiệu C) Được khai báo đầy đủ always @ (*) begin (Đây là mạch tổ hợp) y = A & B & C; ...
Nội dung trích xuất từ tài liệu:
Hướng dẫn thiết kế số sử dụng ngôn ngữ Verilog-HDL trên FPGA: 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 BÀI 3: NGÔN NGỮ LẬP TRÌNH PHẦN CỨNG VERILOG HDL (PHẦN 1) FPGA Class 30/05/2013 1 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/2013 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: .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. FPGA Class 30/05/2013 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. FPGA Class 30/05/2013 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ụ FPGA Class 30/05/2013 5 Cấu trúc một thiết kế 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. FPGA Class 30/05/2013 6 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/2013 7 Khai báo một module từ khóa tên module module example (//input a, b, danh sách port //ouput y); input a; khai báo tín hiệu ngõ vào input [2:0] b; output y; khai báo tín hiệu ngõ ra reg y; khai báo kiểu tín hiệu ngõ ra --------------------- always, assign, case, if, for các hàm và lệnh --------------------- endmodule kết thúc module FPGA Class 30/05/2013 8 Ví dụ về khai báo module Đ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 FPGA Class 30/05/2013 9 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/2013 10 Các loại toán tử và mức ưu tiên Cao Thấp FPGA Class 30/05/2013 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/2013 12 Hàm ASSIGN và toán tử điều kiện Phải là kiểu dữ liệu “wire” toán tử điều Phải là phép gán blocking kiện assign = ? : ; 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/2013 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/2013 14 Cấu trúc ALWAYS@ Liệt kê tất các tín hiệu bên phải biểu thức gán always @ () begin case, if, (không có assign) end Kiểu dữ liệu của tín hiệu được gán trong cấu trúc always phải là reg Danh sách độ nhạy không được khai báo đầy đủ (Thiếu tín hiệu C) Được khai báo đầy đủ always @ (*) begin (Đây là mạch tổ hợp) y = A & B & C; ...
Tìm kiếm theo từ khóa liên quan:
FPGA ngôn ngữ Verilog mô phỏng orcad thiết kế mạch mạch điện tử nguyên lý mạch điện thiết kê sơ đồ nguyên lýGợi ý tài liệu liên quan:
-
Báo cáo thưc hành: Thiết kế mạch bằng phần mềm altium
9 trang 224 0 0 -
Giáo trình Mạch điện tử - Trường Cao đẳng nghề Số 20
97 trang 169 0 0 -
Tiểu luận: Tìm hiểu công nghệ OFDMA trong hệ thống LTE
19 trang 157 0 0 -
88 trang 106 0 0
-
Đồ án: Vẽ và thiết kế mạch in bằng Orcad
32 trang 95 0 0 -
Đồ án môn học: Thiết kế mạch chuyển nhị phân 4 Bit sang mã Gray và dư 3 sử dụng công tắc điều khiển
29 trang 92 0 0 -
Giáo trình Lý thuyết mạch tín hiệu - Tập 1: Phần 1 - PGS.TS. Đỗ Huy Giác, TS. Nguyễn Văn Tách
122 trang 90 0 0 -
Đồ án Thiết kế mạch điện tử - Chuyên đề: Thiết kế mạch nguồn 12V - 3A
25 trang 90 1 0 -
4 trang 85 0 0
-
72 trang 83 0 0