Nghiên cứu Khoa học

Nghiên cứu và thực hiện bộ ALU 4-bit trên Board DE2-115

  • 18/05/2019
  • Nghiên cứu Khoa học

1. MỤC TIÊU CỦA ĐỀ TÀI

Tìm hiểu mô hình thiết kế Top-Down, có thể hoạt động, linh động chỉnh sửa lỗi và phát triển ở các ứng dụng tính toán nhiều hơn trong môi trường thực tế.

Thiết kế và thực hiện chức năng tính toán Cộng, Trừ, Nhân và Chia số nguyên (N) trên công nghệ FPGA (Board mạch DE2-115).

2. PHƯƠNG PHÁP NGHIÊN CỨU

Nghiên cứu lý thuyết:

    - Tìm hiểu mô hình thiết kế Top-Down, thiết kế theo phép SHIFT.

    - Phương pháp tích hợp các chức năng riêng lẽ và chương trình testbench kiểm thử

Nghiên cứu thực nghiệm:

    -  Sử dụng ngôn ngữ mô tả phần cứng Verilog để mô tả các phép toán cơ bản

    -  Phát triển Core trên nền FPGA, mô phỏng và đánh giá kết quả.

3. ĐỐI TƯỢNG VÀ PHẠM VI ĐỀ TÀI

Đối tượng nghiên cứu:

    - Nghiên cứu về cách thức hoạt động, nguên lý làm việc của kit Altera.

    - Nghiên cứu cách nạp chương trình và viết testbench để kiểm thử.

    - Sử dụng ngôn ngữ mô tả phần cứng Verilog để mô tả chương trình.

Phạm vi đề tài:

    - Hệ thống nhận và tính toán các giá trị số được nhập từ bên ngoài. Kết quả thực nghiệm và đánh giá được hiển thị ngay trên kit.

    - Nghiên cứu lý thuyết liên quan.

    - Kiểm thử, đánh giá và đưa ra các kiến nghị về sản phẩm.

4. THIẾT KẾ CORE ALU 4-BIT

Sơ đồ khối:

Quá trình thiết kế được xem xét ở mức độ tổng thể như xem xét sơ đồ khối chức năng, độ dài dữ liệu vào ra. Sau đó sẽ Module hóa các khối chức năng dựa vào kỹ thuật chuyển đổi trạng thái, dữ liệu của các khối chức năng đó. Quy trình thiết kế cho bộ ALU như sau:

undefined

Hình 1: Sơ đồ khối Core ALU 4-bit

Từ sơ đồ khối tổng quát hình 2.4, bảng 2.1 mô tả cụ thể chức năng từng tín hiệu đầu vào, đầu ra của ALU 4-bits core. Độ rộng của từng tín hiệu tính theo đơn vị bit.

Bảng 2.1 Mô tả các đường tín hiệu đầu vào/ra

Tín hiệu                  

Độ rộng (bit)

  Mô tả

Tín hiệu hệ thống

Clk

1

 Xung clock đồng bộ hệ thống

Rst

1

  Khởi động lại hệ thống

Các dữ liệu đầu vào

 Load

 

 Điều khiển Core thực hiện phép toán ALU  

 ALU

 3

 Phép toán ALU:

   + Phép cộng: ALU = 1

   + Phép trừ: ALU = 2

   + Phép nhân: ALU = 3

   + Phép chia: ALU = 4

 A

 4

 Giá trị đầu vào A

 B

 4

 Giá trị đầu vào B

 SigA

 1

 Bit dấu “-“ của đầu vào A

 SigB

 1

 Bit dấu “-“ của đầu vào B

Các dữ liệu đầu ra

Led1

7

 Kết quả phép tính ALU – hàng đơn vị

Led2

7

 Kết quả phép tính ALU – hàng chục

Led3

7

 Kết quả phép tính ALU – hàng trăm

Led4

7

 Kết quả phép tính ALU – bít dấu “-“

Thiết kế FSM ALU-4bit:

Chương trình bắt đầu khi có tín hiệu Rst bằng 0. Các bước thực thi như sau:

Bước 1:  Chờ nhận các giá trị cho A, B bằng cách gạt các switchs (mã nhị phân).

Bước 2:  Lựa chọn phép toán thực thi (cộng, trừ, nhân, chia) qua tín hiệu ALU để tính toán.

Bước 3:  Xác nhậnvàđiều khiển switch Load để đưa dữ liệu vào.

Bước 4:  Reset để xóa các Led về 0 (nếu cần).

Chương trình gồm 2 module chính:

     - Tính toán.

     - Xuất kết quả ra led 7 đoạn.

Chương trình gồm có cộng, trừ, nhân, chia số nguyên:   

if(ALU == 1)begin  --------------- PHÉP CỘNG

kq <= a + b;

dau <= kq[9];

tram    <= kq /100;

chuc    <= (kq %100) / 10;

donvi <= (kq %100) % 10;

end

else if(ALU == 2) begin --------------- PHÉP TRỪ

   if(a < b) begin

kq <= b - a;

dau <= kq[9];

tram    <= 4'b1010;

chuc    <= (kq %100) / 10;

donvi <= (kq %100) % 10;

  end

  else begin

kq <= a - b;

dau <= kq[9];

tram    <= kq /100;

chuc    <= (kq %100) / 10;

donvi <= (kq %100) % 10;

  end

end

else if(ALU == 3)begin --------------- PHÉP NHÂN

kq <= a * b;

dau <= kq[9];

tram    <= kq /100;

chuc    <= (kq %100) / 10;

donvi <= (kq %100) % 10;

end

else if(ALU == 4)begin --------------- PHÉP CHIA

kq <= a / b;

dau <= kq[9];

tram    <= kq /100;

chuc    <= (kq %100) / 10;

donvi <= (kq %100) % 10;

end

 

Các tin khác