TP Hồ Chí Minh, Tháng 052022 ĐẠI HỌC QUỐC GIA THÀNH PHỐ HỒ CHÍ MINH TRƯỜNG ĐẠI HỌC BÁCH KHOA KHOA ĐIỆN – ĐIỆN TỬ BÁO CÁO XỬ LÝ TÍN HIỆU SỐ VỚI FPGA Giáo viên hướng dẫn Trịnh Vũ Đăng Nguyên Nhóm thực hiện 2 Danh sách thành viên Võ Quốc Hưng 1913656 Lê Bá Hiệp 1910185 Châu Trần Hồng Hà 1910146 Nguyễn Đặng Hoàng Quân 1914828 BÀI TẬP LỚN MỤC LỤC NỘI DUNG 3 1 Phần chung cho tất cả các nhóm 3 1 1 Bài 1 3 1 1 1 Đề bài 3 1 1 2 Giải thuật thứ nhất 3 1 1 3 Giải thuật thứ hai 9 1 2 Bài 2 15 1 2 1 Đề b.
Bài 1
Đề bài
Cho sơ đồ khối của hệ thống tìm số nhỏ nhất thứ nhất (min1), số nhỏ nhất thứ 2
(min2) và vị trí của số nhỏ nhất thứ nhất (index_min1) trong 𝑛 số không dấu ngõ vào như hình bên dưới.
Thực thi hệ thống trên với 𝑛 = 10
Các ngõ vào I0, I1,…, In-1 là các số nhị phân 4 bit không dấu.
Trường hợp ngõ vào có nhiều hơn 2 giá trị min1, thì ngõ ra index_min1 chỉ vị trí ngõ vào có chỉ số nhỏ hơn.
1 Đề xuất 2 giải thuật thực thi hệ thống trên (sơ đồ khối, giải thích chi tiết).
2 Viết code Verilog mô tả 2 giải thuật đã đề xuất ở trên Sử dụng phần mềm mô phỏng kiểm tra chức năng hệ thống (chụp lại hình kết quả mô phỏng).
3 Đánh giá tài nguyên phần cứng khi thực thi 2 giải thuật đề xuất trên Cyclone V 5CGXFC7C7F23C8
Đầu tiên, trong sơ đồ giải thuật thứ nhất bộ min_finder, chúng ta kết hợp giá trị của port với số thứ tự của nó, tạo thành IN[i] để tiến hành so sánh Khi thực hiện so sánh, nếu giá trị của hai port trùng nhau, chúng ta sẽ tiếp tục so sánh dựa trên số thứ tự của các port đó.
Tiếp theo, ta lưu min_1 và index_min1 tương ứng với giá trị của port 0 và số thứ tự của nó:
0 và min_2 là giá trị của port 1.
The min_finder module compares two minimum values, min_1 and min_2, along with their corresponding indices It operates with a local parameter n set to 10 and takes inputs for reset, clock, and ten 4-bit input values The module outputs the minimum values and their indices, along with a flag It uses registers to store the input values and temporary variables for processing The comparison logic is implemented through dedicated comparison modules, and the state of the input registers is updated on each clock cycle, allowing for dynamic value comparisons The system resets the count and flag on initialization, ensuring proper functionality throughout its operation.
The code snippet defines a digital module that compares two 8-bit inputs, `in0` and `in1`, producing an output based on their values It includes registers `reg_min1` and `reg_min2`, which are initialized on a reset signal The module updates these registers based on control signals `cp1` and `cp2` The comparison is handled by two instances of the `cp` module, which evaluate the least significant and most significant nibbles of the inputs, respectively The output `out` indicates whether `in0` is greater than `in1`, depending on the equality and greater-than signals generated by the comparisons.
//grt = 1 if in1