Professional Documents
Culture Documents
Lancuoi WORD FPGA LAN1
Lancuoi WORD FPGA LAN1
Đà Nẵng, 2024
Báo cáo cuối kì
MỤC LỤC
2
Báo cáo cuối kì
3
Báo cáo cuối kì
Hình 1. Mô tả hệ thống
4
Báo cáo cuối kì
2 Thiết kế hệ thống
Tổng quan về CPU:
CPU có 2 phần chính: hệ thống dữ liệu và hệ thống điều khiển.
• Hệ thống dữ liệu gồm:
Thanh ghi chứa dữ liệu
ALU (module tính toán)
Đường kết nối
Tín hiệu điều khiển
Tín hiệu điều kiện (đầu ra)
• Hệ thống điều khiển:
Các lệnh
Chương trình
Mô tả cấu trúc CPU:
Đây là CPU với 2 khối chính là Control Subsystem và Data Subsystem. Đầu tiên,
khối control system sẽ nhận tín hiệu điều kiện (zero,neg,cy) từ data subsystem, sau đó sẽ
tạo ra các tín hiệu để điều khiển cho nó. Các tín hiệu dữ liệu này sẽ được biểu diễn trên
16 bit và địa chỉ thì 4 bit. Mỗi lệnh sẽ được thực hiện trong 1 chu kì xung nhịp.
5
Báo cáo cuối kì
Start (tín hiệu vào) và Done (tín hiệu ra) cùng chung nhịp clock để ra lệnh đồng
thời. Đầu vào khối dữ liệu là các tín hiệu đặt.
Code CPU :
6
Báo cáo cuối kì
7
Báo cáo cuối kì
Data subsystem có tổng cộng 9 thanh ghi, mỗi thanh ghi 16 bit. Có thể thực hiện
đồng thời cả 2 chức năng là đọc và ghi. Có 4 thanh ghi vào (r_in, k_d, k_i, k_p).
Khối ALU có khả năng thực hiện tính toán như các phép cộng, trừ, nhân, +1.
MUX là bộ dồn kênh, tùy thuộc trên tín hiệu điều khiển, nó chọn dữ liệu được ghi
vào tệp thanh ghi.
Lệnh selR_in gồm 3 bit, khi mã lệnh là 000 thì sẽ chọn dữ liệu alu_out, khi mã
lệnh là 001 thì sẽ chọn dữ liệu r_in, 010 là k_d, 011 là k_i và 111 là k_p.
Sau đó muốn đẩy dữ liệu lên thì cần lệnh fld_A, fld_B, fld_C để lưu vào thanh
ghi và lệnh ldRF đưa 2 dữ liệu đã được lưu ra port A, B để đưa vào ALU để tính
toán.
Khối ALU cần lệnh alu_op gồm 2 bit để lựa chọn các phép tính, 00 là phép cộng,
01 là phép trừ, 10 là phép nhân và 11 là +1.
Đầu ra: Đầu vào:
9
Báo cáo cuối kì
Condition Code
Start 00
Zero 01
Neg 10
Cy 11
• Chương trình được lưu trữ trong control subsystem, là một mảng gồm 17 phần tử,
mỗi phần tử rộng 26 bit
• Tín hiệu bắt đầu được nhận từ đối tượng và CPU chỉ bắt đầu thực hiện các lệnh
khi tín hiệu này là “1”
• Lệnh thứ hai tạo ra một vòng lặp chờ cho đến khi nhận được tín hiệu bắt đầu
• Lệnh trước lệnh cuối cùng đặt tín hiệu xong, CPU thông báo cho đối tượng rằng
kết quả có thể được đưa ra
• Lệnh cuối cùng tạo bước nhảy sang lệnh thứ hai trong đó chương trình sẽ đợi một
khởi đầu mới từ đối tượng
CODE CONTROL SUBSYSTEM :
10
Báo cáo cuối kì
11
Báo cáo cuối kì
12
Báo cáo cuối kì
- Giá trị start là biến khởi động hệ thống, khi start bằng 1 thì hệ thống bắt đầu hoạt động
Sau đó, sai lệch được đưa vào bộ điều khiển tại đây các giá trị Ki, Kp, Kd
được gán cho các giá trị Kp=0.15, Ki=0.05 và Kd= 0.01.
Kiểu dữ liệu của các đầu vào ra :
- mic_in, kp, ki, kd : 16 bit Q15
- start ,done : 1 bit (0 or 1)
- Z_out : 16 bit Q15
Tín hiệu đáp ứng đầu ra đưa vào hàm đối tượng, ở đây chúng ta sử dụng hàm bậc 2
để mô phỏng đối tượn
Hình 6. Kết quả mô phỏng đáp ứng đầu ra của đối tượng so với Set Point
14
Báo cáo cuối kì
Nhận xét:
- Trong quá trình thực hiện mô phỏng trên Matlab Simulink, kết quả thu được
không hoàn toàn như mong đợi. Cụ thể, các giá trị và hình dạng của đồ thị đầu ra
có giá trị bằng 0 không khớp với giá trị Set Point trước đó.
- Đối với mô phỏng trên Modelsim, tuy các tham số vào ra và các tín hiệu biến điều
khiển vẫn thay đổi trong quá trình tính toán mô phỏng tuy nhiên đầu ra zout lại
không xác định, cho thấy có sai sót trong quá trình lập trình hoặc mô phỏng.
Cần thêm thời gian để tiến hành sửa lỗi và hoàn thiện dự án.
Dưới đây là một số nhận xét chi tiết về nguyên nhân có thể dẫn đến sai lệch này:
- Sai lầm trong việc thiết lập thông số đầu vào
- Sai sót trong cấu trúc mô hình
- Tham số của các khối mô phỏng chưa đúng
- Sai sót trong việc xây dựng các thuật toán chương trình
15
Báo cáo cuối kì
Mặc dù hiện tại kết quả mô phỏng chưa đạt yêu cầu, chúng em đã xác định rõ những
sai lầm và đã có một số biện pháp kiểm tra khắc phục cụ thể. Trong các lần mô phỏng
tiếp theo, sẽ áp dụng những biện pháp này để cải thiện độ chính xác của mô hình và đạt
được kết quả như mong đợi.
16