BÁO CÁO THIẾT KẾ HỆ THỐNG SỐ KC102 THỰC HÀNH TRÊN BOARD DE2

59 44 1
BÁO CÁO THIẾT KẾ HỆ THỐNG SỐ KC102 THỰC HÀNH TRÊN BOARD DE2

Đ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

BÁO CÁO THỰC HÀNH THIẾT KẾ HỆ THỐNG SỐ KC102 Bài 1: Giới thiệu BOARD ALTERA DE2115, Phần mềm QUARTUS II và MODELSIM Code mô phỏng: module BAI1( output Y, input X); assign Y=X; endmodule module BAI1_test( output wire 0:0LEDR, input wire 0:0SW); BAI1 DUT( .Y (LEDR0), .X(SW0)); endmodule Tiến hành biên dịch và gán chân cho hệ thống. Vào Processing Start compilation, đợi quá trình biên dịch kết thúc và báo thành công. Sau đó vào Assignment Pin Planner Chúng ta chọn SW0 làm ngõ vào và LEDR0 để hiển thị: Kết quả: Bật SW0 thì LEDR0 sáng. BÀI 2: MẠCH TỔ HỢP I. Cổng AND Bảng trạng thái cổng AND A B Y=A.B 0 0 0 0 1 0 1 0 0 1 1 1 Code mô phổng: module BAI2A ( output wire Y, input wire A, input wire B); assign Y=AB; endmodule module BAI2A_test( output wire 1:0LEDR, output wire 0:0LEDG, input wire 1:0SW); assign LEDR1:0 = SW1:0; BAI2A DUT(

BỘ GIÁO DỤC VÀ ĐÀO TẠO TRƯỜNG ĐẠI HỌC CẦN THƠ KHOA CÔNG NGHỆ  BÁO CÁO THIẾT KẾ HỆ THỐNG SỐ KC102 THỰC HÀNH TRÊN BOARD DE2 Giảng viên hướng dẫn: NGUYỄN Sinh viên thực hiện: CAO QUÍ BÁO CÁO THỰC HÀNH THIẾT KẾ HỆ THỐNG SỐ KC102 Bài 1: Giới thiệu BOARD ALTERA DE2-115, Phần mềm QUARTUS II MODELSIM -Code mô phỏng: module BAI1( output Y, input X); assign Y=X; endmodule module BAI1_test( output wire [0:0]LEDR, input wire [0:0]SW); BAI1 DUT( Y (LEDR[0]), X(SW[0])); endmodule -Tiến hành biên dịch gán chân cho hệ thống Vào Processing →Start compilation, đợi q trình biên dịch kết thúc báo thành cơng Sau vào Assignment →Pin Planner -Chúng ta chọn SW0 làm ngõ vào LEDR0 để hiển thị: Kết quả: Bật SW0 LEDR0 sáng BÀI 2: MẠCH TỔ HỢP I Cổng AND Bảng trạng thái cổng AND A 0 1 B 1 Y=A.B 0 -Code mô phổng: module BAI2A ( output wire Y, input wire A, input wire B); assign Y=A&B; endmodule module BAI2A_test( output wire [1:0]LEDR, output wire [0:0]LEDG, input wire [1:0]SW); assign LEDR[1:0] = SW[1:0]; BAI2A DUT( .Y(LEDG[0]), A(SW[0]), B(SW[1])); endmodule -Tiến hành biên dịch gán chân cho hệ thống Vào Processing →Start compilation, đợi q trình biên dịch kết thúc báo thành cơng Sau vào Assignment →Pin Planner Ở chọn SW0 SW1 làm ngõ vào, LEDR0 LEDR1 hiển thị , Output LEDG0: Xem thiết kế BAI2A_test mức ghi- vận chuyển cách vào Tools→ Netlist Viewers → RTL Viewer Kết quả: Bật SW0 SW1 , LEDR0 VÀ LEDR1 sáng, Output LEDG8 sáng Cổng AND thực trạng thái với bảng trạng thái ban đầu mà thiết kế mong muốn có II Cổng OR Bảng trạng thái cổng OR A 0 1 B 1 -Code mô phổng: module BAI2B( output wire Y, input wire A, input wire B); assign Y=A|B; endmodule module BAI2B_test( output [1:0] LEDR, output [0:0] LEDG, input [1:0] SW); assign LEDR[1:0] = SW [1:0]; BAI2 DUT ( Y(LEDG[0]), A(SW[0]), B(SW[1])); Y=A+B 1 endmodule Tiến hành biên dịch gán chân cho hệ thống Vào Processing →Start compilation, đợi q trình biên dịch kết thúc báo thành cơng Sau vào Assignment →Pin Planner -Ở chọn SW0 SW1 làm ngõ vào, LEDR0 LEDR1 hiển thị, LEDG0 làm ngõ Xem thiết kế BAI2B_test mức ghi- vận chuyển cách vào Tools→ Netlist Viewers → RTL Viewer Kết quả: Mạch thiết kế hoạt động với trạng thái với trạng thái cổng OR III Mạch kiểm tra chẵn lẻ -Code mô phổng: module BAI2C( output wire Y, input wire A, input wire B, input wire C, input wire D); assign Y=((A^B)^(C^D)); endmodule module BAI2C_test( output [0:3] LEDR, output [0:0] LEDG, input [0:3] SW); assign LEDR[0:3] = SW[0:3]; BAI2C DUT( Y(LEDG[0]), A(SW[0]), B(SW[1]), C(SW[2]), D(SW[3])); endmodule 10 BÀI MẠCH TRẠNG THÁI HỮU HẠN Mục đích: Trang bị người học kiến thức kỹ nâng lập trình thiết kế hệ thống số áp dụng phương pháp máy trạng thái hữu hạn Tiếp tục phát triển kỹ nâng lập trình, sử dụng phần mềm Modelsim Quartus II, thành tạo bước thiết board Altera DE2_15 Yêu cầu Người học ôn lại kiến thức liên quan mạch đếm giáo trình Mạch số giáo trình Thiết kế hệ thống số 6.1 MÁY BOORE – MẠCH PHÁT HIỆN CHUỖI BÍT module BAI6A ( input wire X, input wire rst, input wire clk, utput reg W); parameter [2:0] A= 3’ b000, B= 3’ b 001, C= 3’ 010, D= 3’b 011, E= b’ 100; Reg [2:0] p_state, n_state; // present and next state, respectively Always @ (X or p_state ) begin: Transitions N_state = A;// Reset state Case (p-state) A: If( X == 1’b 1) n_state = B; else n_state = A; B: If( X == 1’b 1) n_state = B; else n_state = C; 45 C: If( X == 1’b 1) n_state = D; else n_state = A; D: If( X == 1’b 1) n_state = E; else n_state = ; E: If ( X == 1’b 1) n_state = B; else n_state = C; default: n_state = A; // Reset state endcase end always @ (X or p_state) begin : Outputing W =1’b 0; W =(p_state ==E); end always @ (X or p_state) begin :Registering //synchronous if(~rst) p_state = A; else p_state = n_state; end endmodule Kiểm tra thiết kế BAI6A_test với nội dung sau: module BAI6A_test ( output [0:0] LEDG, input [0:0] SW, 46 input [0:1] KEY, BAI6A DUT ( X (SW[0]), clk (KEY [1]), rst(KEY[0]), W (LEDG[0])); endmodule Phương pháp thực hiện: Người học nhập chuỗi bít từ SW quan sát, kiểm tra kết ngã hiển thị LEDG0: LED sáng mạch phát đươc chuỗi bít 1011 47 48 6.2 MÁY MEALY – MẠCH PHÁT HIỆN CHUỖI BIT: module BAI6B ( input wire X, input wire clk, input wire rst, output reg W); parameter [1:0] A= 2’ b00, B= 2’ b 01, C= 2’ 10, D= 2’b 11; reg [1:0] p_state, n_state; // present and next states always @ (X or p_state ) begin: Transitions n_state = A;// Reset state case (p-state) A: If( X == 1’b 1) n_state = B; else n_state = A; B: If( X == 1’b 1) n_state = B; else n_state = C; C: If( X == 1’b 1) n_state = D; else n_state = A; D: If( X == 1’b 1) n_state = E; else n_state = ; E: If ( X == 1’b 1) n_state = B; else n_state = C; 49 default: n_state = A; // Reset state endcase end always @ (X or p_state) begin : Outputing W =1’b 0; W =(p_state ==D)&(X==1’b 1); end always @ (X or p_state) begin :Registering //synchronous // reset state if(~rst) p_state = A; else p_state = n_state; end endmodule Kiểm tra thiết kế BAI6B_test với nội dung sau: module BAI6B_test ( output [0:0] LEDG, input [0:0] SW, input [0:1] KEY, BAI6B DUT ( X (SW[0]), clk (KEY [1]), rst(KEY[0]), W (LEDG[0])); Endmodule Phương pháp thực hiện: 50 Người học sử dụng SW0 để chọn giá trị ngõ vào X, nhấn nút KEY1 để cấp xung đồng hồ, KEY0 để reset hoạt động hệ thống quan sát trạng thái LEDG0: LED sáng chuỗi bít 1011 phát chuỗi giá trị nhận ngõ vào X 51 6.3 ĐÈN GIAO THÔNG module BAI6C ( input wire clk, input wire rst, output reg [5:0] lights); reg [2:0] state; reg [3:0] count; parameter S0=3’b000,S1=3’b001,S2=3’b010, S3=3’b011, S4=3’b10 0,S5=3’b101; 52 // states parameter SEC5=4’b1111,SEC1=4’b0011; // delays always @ (posedge clk) begin if(~rst) begin state

Ngày đăng: 19/08/2021, 10:58

Từ khóa liên quan

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

  • Đang cập nhật ...

Tài liệu liên quan