Thiết kế dice- game tương tự game xúc xắc
Trang 1BÁO CÁO BÀI TẬP LỚN THIẾT KẾ, TỔNG HỢP HỆ THỐNG SỐ
GVHD: TS.VÕ LÊ CƯỜNG
Nhóm 2
Đề tài:
Thiết kế dice-game tương tự game xúc xắc
Trang 2Nội dung
Giới thiệu chung
1
2
3 Thực hiện đề tài
Phân công công việc
4 Kết luận
Trang 31 Giới thiệu chung
Mục đích:
Củng cố kiến thức được học trên lớp về lập trình bằng ngôn ngữ verilog.
Làm quen với các thiết kế phức tạp yêu cầu FSM ( Finite State Machine) nhiều trạng thái.
Học cách sử dụng các phần mềm mô phỏng và tổng hợp thiết kế HDL.
Yêu cầu:
Thiết kế dùng ngôn ngữ Verilog
Có tín hiệu reset đồng bộ
Xung clock đồng bộ điều khiển 2 xung khác nhau của 2 bộ counter đếm từ 1-6
Thiết kế theo sơ đồ máy trạng thái FSM
Mô phỏng thiết kế trên modelsim-altera và tổng hợp bằng phần mềm quartus
Trang 42 Phân công công việc
Đinh Duy Khánh
Chu Minh Họa
Phạm Thị Thanh
Nguyễn Thị Thảo
Đặng Trung Kiên
Code khối control FSM + tổng hợp mạch trên quatus Code khối adder + test logic + slide báo cáo
Code khối compare + register Code khối hiển thị trên led 7 thanh + slide báo cáo Code khối clock divider và bộ counter 1-6
Trang 53 Thực hiện đề tài
2.1 Mô tả dice game
1 Sơ đồ khối tổng quát
2 Hoạt động
2.2 Thực hiện các khối
Trang 63.1 Mô tả dice-game
Sơ đồ khối:
• Gồm 1 bộ cộng Adder 3 bit
• 2 bộ đếm 3 bit chạy với 2 xung clock khác nhau được điều khiển bởi xung clock đồng bộ
• 1 bộ so sánh 2 số 4 bit
• 1 thanh ghi lưu trữ giá trị trung gian khi tiếp tục chơi mà chưa có kết quả thắng thua
• 1 bộ test logic kiểm tra tổng, đưa tín hiệu điều khiển vào controller
• Máy điều khiển trạng thái FSM Control
Trang 73.1 Mô tả dice-game
Hoạt động :
Đầu vào của dice-game sẽ gồm 2 nút.1 là RESET và 1 là RB ( Roll botton ) Trong đó reset được dùng để tạo game mới
Khi RB được ấn và dữ trong 1 khoảng thời gian nhất định Trong khoảng thời gian ấn RB thì có 2 bộ đếm Counter chạy song với 2 xung clock khác nhau và tổng được update liên tục từ giá trị của 2 bộ đếm Counter nhưng nó vẫn chưa được hiển thị lên màn hình
Khi nút RB ngừng ấn thì giá trị của 2 bộ đếm được hiển thị và game bắt đầu tính toán đưa ra kết quả tổng Sum0 ra màn hình :
Nếu Sum0 = 7 hoặc 11 thì Win
Nếu Sum0 = 2, 3, 12 thi Lose
Trang 8Hoạt động dice-game (tiếp):
Nếu Sum0 khác 2, 3, 7, 11, 12 thì lưu tổng vừa có Sum0 vào 1 thanh ghi Point
Và yêu cần ấn tiếp RB để chơi cho đến khi có kết quả thắng thua
( Point chỉ được ghi 1 lần đầu tiên duy nhất đầu tiên khi chưa thắng thua)
Nếu các lần thực hiện sau :
tổng Sum = Point thì Win
tổng Sum = 7 thì Lose
Nếu không thì vẫn yêu cầu ấn tiếp RB để chơi cho đến khi kết quả thắng thua thì thôi
Trang 93.2 Thực hiện các khối
Thuật toán khối clockdivider:
Trang 10Sơ đồ chuyển trạng thái của counter1-6 :
Trang 11Thuật toán khối adder:
Trang 12Thuật toán khối test logic:
Trang 13Thuật toán khối compare:
Trang 14Thuật toán khối register:
Trang 15Sơ đồ trạng thái máy FSM:
Trang 164 Kết luận
Trang 17Xin cảm ơn thầy và các bạn
đã lắng nghe!