1. Trang chủ
  2. » Giáo Dục - Đào Tạo

Thiết kế luận lý với hdl báo cáo bài tập lớn

14 0 0
Tài liệu đã được kiểm tra trùng lặp

Đ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

Thông tin cơ bản

Tiêu đề Thiết Kế Luận Lý Với HDL
Tác giả Nguyễn Trung Tân, Thạch Minh Hưng, Phạm Gia Huy, Hà Trọng Sơn, Trần Thiện Huy
Người hướng dẫn Phạm Công Thái
Trường học Đại Học Quốc Gia Thành Phố Hồ Chí Minh, Trường Đại Học Bách Khoa
Chuyên ngành Khoa Học & Kỹ Thuật Máy Tính
Thể loại Báo cáo bài tập lớn
Năm xuất bản 2024
Thành phố Thành phố Hồ Chí Minh
Định dạng
Số trang 14
Dung lượng 1,33 MB

Nội dung

1 Giới thiệuĐồng hồ kỹ thuật số Tiếng Anh: Digital clock, ở Việt Nam đôi khi gọi chung là đồng hồ điện tử là tên gọi của loại đồng hồ hiển thị thời gian bằng các màn hình điện tử hoặc cá

Trang 1

TRƯỜNG ĐẠI HỌC BÁCH KHOA KHOA KHOA HỌC & KỸ THUẬT MÁY TÍNH

Thiết Kế Luận Lý Với HDL

Báo Cáo Bài Tập Lớn

Giảng viên: Phạm Công Thái

Sinh viên thực hiện:

Nguyễn Trung Tân - 2213063

Thạch Minh Hưng - 2311357

Phạm Gia Huy - 2311230

Hà Trọng Sơn - 2312958

Trần Thiện Huy - 2311254

TP Hồ Chí Minh, 6/2024

Trang 2

3.1 Công cụ hỗ trợ 2

3.2 Phần mềm Vivado 2

3.3 Board Arty Z7 2

3.4 Extension for board Arty Z7 3

4 Hiện thực 3 4.1 Thiết kế module đếm thời gian 3

4.2 Thiết kế module giải mã cho Led 7 đoạn 5

4.3 Thiết kế module top 7

4.4 Chức năng báo thức 10

4.5 Thực hành trên mạch 11

5 Kết luận 12 5.1 Ưu điểm 12

5.2 Nhược điểm 12

Trang 3

1 Giới thiệu

Đồng hồ kỹ thuật số (Tiếng Anh: Digital clock, ở Việt Nam đôi khi gọi chung là (đồng hồ điện tử) là tên gọi của loại đồng hồ hiển thị thời gian bằng các màn hình điện tử hoặc các chữ số Hầu hết các loại đồng hồ này

là đồng hồ tinh thể, hoạt động qua sự dao động tinh thể thạch anh hoặc đồng hồ nguyên tử Cụ thể bài này sẽ là đồng hồ kĩ thuật số hiển thị giờ

và phút bằng 4 thiết bị led 7

• Hiểu về thiết kế và mô phỏng trong Verilog

• Thiết kế bộ đếm và đồng hồ hiển thị giờ và phút với chức năng báo thức

• Điều khiển led 7 đoạn Kiểm tra và thử trên mạch Arty - Z7 – 20

3.1 Công cụ hỗ trợ

Verilog là ngôn ngữ mô tả phần cứng (Hardware Description Language)được

sử dụng trong việc thiết kế các các hệ thống số, các mạch tích hợp: như

bộ nhớ RAM, bộ vi xử lý hoặc đơn giản là D-FlipFlop Thiết kế số FPGA bằng ngôn ngữ verilog cũng giống như bạn viết chương trình cho vi điều khiển

3.2 Phần mềm Vivado

Vivado 2023 là một môi trường thiết kế tích hợp (IDE - Integrated De-velopment Environment) mạnh mẽ được phát triển bởi Xilinx (nay thuộc AMD) để hỗ trợ việc thiết kế và triển khai các hệ thống số trên các thiết

bị FPGA và SoC Vivado 2023 cung cấp một loạt các công cụ và tính năng nhằm giúp các kỹ sư thiết kế tối ưu hóa hiệu suất và giảm thời gian phát triển

3.3 Board Arty Z7

Board Arty Z7 là một nền tảng phát triển FPGA được sản xuất bởi Digilent, thiết kế dựa trên các thiết bị FPGA Zynq-7000 của Xilinx Đây

là một board phát triển mạnh mẽ, linh hoạt và phù hợp cho nhiều ứng dụng trong các lĩnh vực như xử lý video, truyền thông, và hệ thống nhúng

Trang 4

3.4 Extension for board Arty Z7

Extension for board Arty Z7 là board sử dụng cho board FGPA Arty Z7,

mở rộng thêm switch, LED 7 đoạn Extension board được sử dụng để hỗ trợ cho môn Thiết kế luận lý với HDL, giúp sinh viên có thể dễ dàng sử dụng thêm các chức năng mà Extension Board đã cấp sẵn

4.1 Thiết kế module đếm thời gian

Thực hiện bộ đếm thời gian theo giây

Tạo xung nhịp 1Hz

Figure 1: Module Clock Divider

Trang 5

- Sau đó thực hiện bộ đếm thời gian cho phút

- Tạo xung nhịp mỗi phút

Figure 2: Module Minute Counter

NOTE: do biến thời gian là giờ quá lớn nên phải dùng hai bước

Trang 6

4.2 Thiết kế module giải mã cho Led 7 đoạn

- Chuyển đổi một giá trị nhị phân 4 bit thành mã điều khiển cho một LED

7 đoạn - Mỗi chữ số (từ 0 đến 9) được mã hóa bằng cách kích hoạt các đoạn LED phù hợp để hiển thị đúng chữ số bằng phương pháp ánh xạ Bảng ánh xạ Để hiển thị các chữ số từ 0 đến 9, chúng ta cần xác định các đoạn nào cần được bật (1) và tắt (0) cho từng chữ số Dưới đây là bảng ánh xạ

Table 1: Bảng ánh xạ

Trang 7

Với mỗi LED 7 đoạn thì sẽ ứng với một module.

Figure 3: Module led 7 thanh

• Với mỗi LED 7 đoạn thì sẽ ứng với một module

• Đầu vào (digit): là một số nhị phân 4 bit (từ ‘4’b0000’ đến ‘4’b1001’) đại diện cho các số từ 0 đến 9

• Đầu ra (seg) là một mã 7 đoạn ( 7 bit ) điều khiển LED 7 đoạn

• Khối ‘always’ này được kích hoạt mỗi khi ‘digit’ thay đổi “always

@(digit)”

• Cấu trúc ‘case’ được sử dụng để ánh xạ giá trị của ‘digit’ tới giá trị của ‘seg’

Trang 8

4.3 Thiết kế module top

- Khởi tạo các biến với giá trị ban đầu là thời gian hiện tại để đồng hồ bắt đầu chạy

- Gọi các module và nối thiết lập các biến phù hợp:

Figure 4: Module top

Trang 9

Figure 5: Module top

Trang 10

Figure 6: Module top

Trang 11

Đồng hồ có nút reset, khi reset tích cực thì thiết lập đồng hồ về 00:00 Thiết lập các điều kiện ràng buộc cho phút và giờ phù hợp:

• Khi min_units tăng đến 9 là sau một xung clk đếm phút thì min_units

về 0 và min_tens tăng thêm 1

• Khi min_tens tăng đến 5 và min_units tăng đến 9 thì sau một xung clk đếm phút thì min_tens về 0 và min_units về 0 dẫn đến hour_uinits tăng thêm 1

• Khi min_units tăng đến 9, min_tens tăng đến 5, hour_units tăng đến

3, hour_tens tăng đến 2 thì sau một phút tất cả sẽ về 00:00 (do chọn

hệ đếm giờ là hệ 24 giờ)

4.4 Chức năng báo thức

• Trước tiên cần tạo các biến là thanh ghi để có thể lưu các giá trị giờ

và phút chúng ta thiết lập để báo thức

• Kết nối một input với nút bấm, mỗi lần bấm thì giá trị của thanh ghi ứng với giờ và phút sẽ tăng lên 1 đơn vị

• Để chuyển đổi giữa các biến chục giờ, giờ và chục phút, phút chúng ta cần thiết lập thêm một nút bấm để chuyển đổi giữa các biến để ghi giá trị

• Sau khi thiết lập xong thì chúng ta cần một module để thực hiện việc

so sánh giữa 4 input vào và giờ đang được đếm Khi đếm đến đó thì mạch sẽ phát ra tín hiệu (ví dụ như các đèn nhấp nháy hoặc phát âm thanh)

Trang 12

4.5 Thực hành trên mạch

Đồng hồ đang hiện 17 giờ 34 phút

Trang 13

5 Kết luận

5.1 Ưu điểm

• Dễ đọc: Digital Clock hiển thị giờ bằng các con số, giúp người dùng dễ dàng và nhanh chóng biết được giờ và phút chính xác mà không cần giải mã vị trí của kim đồng hồ

• Chính xác cao: Digital Clock thường sử dụng bộ dao động tinh thể thạch anh để giữ thời gian chính xác, ít bị ảnh hưởng bởi các yếu tố ngoại cảnh như nhiệt độ hay từ trường

• Thiết kế đa dạng: Digital Clock có thể thiết kế theo nhiều kiểu dáng

và kích thước khác nhau, phù hợp với nhiều phong cách và nhu cầu của người sử dụng

5.2 Nhược điểm

Đồng hồ kỹ thuật số (digital clock) có nhiều ưu điểm, nhưng cũng có một

số nhược điểm Dưới đây là một số nhược điểm của đồng hồ kỹ thuật số:

• Khó sửa chữa: Khi Digital Clock gặp sự cố, việc sửa chữa có thể phức tạp và đòi hỏi kỹ thuật chuyên môn Trong một số trường hợp, việc thay thế toàn bộ đồng hồ có thể dễ dàng và kinh tế hơn so với việc sửa chữa

• Với chủ đề về Digital Clock do hạn chế về thời gian nên nhóm vẫn chưa thể hiện thực thêm chức năng cho đồng hồ như là báo thức, lịch, đo nhiệt độ và các tính năng thông minh khác

• Thiết kế chưa tối ưu khi phải sử dụng nhiều output dẫn đến lúc lắp mạch xuất hiện nhiều sai sót

[1] ASIC Verilog tutorial https://www.asic-world.com/

[2] FPGA Tutorial Available: https://fpgatutorial.com/verilog/ [3] 7-segment-Display-Basic-Electronics-Tutorials and Revision., https:// electronics-tutorials.ws/blog/7-segment-display-tutorial html

Trang 14

[4] Arty Z7 - Digilent Reference https://digilent.com/reference/ programmable-logic/arty-z7/start

[5] Verilog code for Clock divider on FPGA , https://fpga4student.com/ 2017/08/verilog-code-for-clock-divider-on-fpga.html

[6] Electrical Engineering: Verilog - programmable clock divider https: //electronics.stackexchange.com

[7] Shirshendu Roy, Advanced Digital System Design, A Practical Guide to Verilog Based FPGA and ASIC Implementation

Ngày đăng: 30/10/2024, 09:28

w