1. Trang chủ
  2. » Luận Văn - Báo Cáo

Nghiên cứu xây dựng các bộ cộng, bộ nhân và bộ so sánh bằng ngôn ngữ phần cứng verilog

25 728 4

Đ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

Định dạng
Số trang 25
Dung lượng 367,01 KB

Nội dung

Nghiên cứu xây dựng các bộ cộng, bộ nhân và bộ so sánh bằng ngôn ngữ phần cứng verilog

Trang 1

1

MỤC LỤC

CHƯƠNG 1 : GIỚI THIỆU 6

1.1 TỔNG QUAN 6

1.2 GIỚI THIỆU VỀ SỐ DẤU CHẤM ĐỘNG IEEE 754 6

CHƯƠNG 2 : XÂY DỰNG BỘ NHÂN VÀ BỘ CỘNG 7

2.1 Xây dựng bộ nhân 7

2.1.1 Giải thuật Modified Booth Multiplier 7

2.1.2 Kiểm tra giải thuật 8

2.1.3 Kiến trúc bộ Modified Booth Multiplier 9

2.2 Xây dựng bộ cộng .10

2.2.1 Bộ cộng bán phần Half Adder (HA) 10

2.2.2 Bộ cộng toàn phần Full Adder ( FA) .10

2.2.3 Bộ cộng Ripple Carry Adder (RCA) 11

2.2.4 Bộ cộng Carry Save Adder (CSA) 12

CHƯƠNG 3 KẾT LUẬN .13

3.1 Bộ nhân .13

3.2 Bộ cộng 14

PHỤ LỤC 17

TÀI LIỆU THAM KHẢO 21

Trang 2

2

DANH SÁCH HÌNH VẼ

Trang 3

3

DANH SÁCH BẢNG

Trang 4

4

DANH SÁCH TỪ VIẾT TẮT

Trang 6

là điều vô cùng quan trọng Do đó tính chính xác trong việc tiếp cận các phép tính này được đặt lên hàng đầu

1.2 GIỚI THIỆU VỀ SỐ DẤU CHẤM ĐỘNG IEEE 754

- Số dấu chấm động 32 bit được biểu diễn dưới dạng:

Trang 7

7

CHƯƠNG 2 : XÂY DỰNG BỘ NHÂN VÀ BỘ CỘNG

2.1 Xây dựng bộ nhân

2.1.1 Giải thuật Modified Booth Multiplier

Giải thuật Modified Booth Multiplier cơ số 4 (cho số có dấu)

 Chèn thêm 1 bit 0 vào sau LSB của số nhân

 Nếu số bit của số nhân là số lẻ thì mở rộng thêm 1 bit dấu (MSB) cho số nhân Nếu số bit của số nhân là số chẵn thì không mở rộng thêm bit MSB cho số nhân

 Chia số nhân ra thành các nhóm, mỗi nhóm gồm 3 bits, có chồng lấp 1 bit

 Từ các khoảng chia số nhân (mỗi nhóm có 3 bits), xác định các tích thành phần từ bảng encoder

 Tính tổng các tích thành phần với nhau

 Cộng thêm chuỗi bit hiệu chỉnh kết quả Chuỗi bit có dạng

{1010….101011,00…00} Số bit 0 thêm vào (00 00) bằng chiều dài của (số bị

nhân+1) Chiều dài chuỗi bit hiệu chỉnh=chiều dài kết quả phép nhân

X 2i+1 X 2i X 2i-1 Action

Trang 8

8

2.1.2 Kiểm tra giải thuật

Thiết kế bộ nhân 2 số có dấu (bù 2): X.Y, với X: 5 bits, Y: 17 bits

Ví dụ: Cho X=-6 , Y=+3665 Tính X.Y?

X=-610=110102 (số có dấu 5bits bù 2)

1) Y=+366510=000001110010100012 (số có dấu 17bits bù 2)

Chèn thêm 1 bit 0 vào sau LSB của X: 110100

2) Số bit của X là số lẻ (5bits)mở rộng thêm 1 bit dấu cho X: 1110100

3) Chia X thành từng nhóm, mỗi nhóm 3bits, có chồng lấp 1 bit: 1110100

4) Tính tổng các tích thành phần cùng với chuỗi bit hiệu chỉnh lại với nhau

5) Dựa vào bảng Encoder, tìm các tích thành phần

Trang 10

10

2.2 Xây dựng bộ cộng

2.2.1 Bộ cộng bán phần Half Adder (HA)

Bộ cộng bán phần có nhiệm vụ thực hiện phép cộng số học x+y với x, y là 2 bit nhị phân ngõ vào

Hệ có 2 ngõ ra là tổng (S: sum) và bit nhớ (C: carry)

2.2.2 Bộ cộng toàn phần Full Adder ( FA)

Bộ cộng toàn phần có nhiệm vụ thực hiện phép cộng nhị phân số học 3 bit x + y + z Trong đó z là bit nhớ được gửi từ bộ cộng có trọng số nhỏ hơn

xây dựng bộ cộng toàn phần dựa trên ghép 2 bộ cộng bán phần

Trang 11

11

2.2.3 Bộ cộng Ripple Carry Adder (RCA)

Bộ cộng RCA 4 bit được thực hiện bằng cách ghép nối 4 bộ cộng Full Adder

Bộ cộng Carry Look Ahead Adder (CLA)

Ngõ ra bộ cộng toàn phần: S=xyz; C=x.y+(xy).z

Trang 12

2.2.4 Bộ cộng Carry Save Adder (CSA)

Carry save adder là một bộ cộng số học, được sử dụng trong kiến trúc máy tính để tính tổng của số từ 3 bit trở lên, nó khác với các bộ cộng số học khác ở chỗ ngõ ra tổng S có cùng kích thước ( số bit) với ngõ vào và ngõ ra còn lại là bit nhớ (carry)

Wallace tree

Trang 13

•‚ƒ„…†3-1 Kết quả mô phỏng bộ nhân dấu chấm động 32 bit

Trang 15

15

•‚ƒ„…†3-2 Bả ng Kết quả mô phỏ ng bộ cộ ng dấu chấm độ ng 32 bit

case factor 1 factor 2 software hardware error

Trang 17

17

PHỤ LỤC

1) Code Verilog cho bộ nhân 2 số 5bits x 17bits theo thuật toán Modified Booth Multiplier

//out=in1*in2 >21bit (1 sign bit plus 20 data bits)

Trang 19

G[ii] = A[ii] & B[ii];

P[ii] = A[ii] ^ B[ii];

C[ii+1] = G[ii] | (P[ii]&C[ii]);

S[ii] = P[ii] ^ C[ii];

/*connect four 4-bit carry look ahead adder together to be a 16-bit carry look ahead adder

with block generate and propagate*/

cla4i cla4_0(sum[4:1],tc,a[4:1],b[4:1],gp[0],gg[0]);

Trang 20

20

cla4i cla4_1(sum[8:5],ctmp[0],a[8:5],b[8:5],gp[1],gg[1]); cla4i cla4_2(sum[12:9],ctmp[1],a[12:9],b[12:9],gp[2],gg[2]); cla4i cla4_3(sum[16:13],ctmp[2],a[16:13],b[16:13]);

Trang 22

22

TÀI LIỆU THAM KHẢO

Trang 23

23

Trang 24

24

Trang 25

25

Ngày đăng: 02/06/2016, 10:29

TỪ KHÓA LIÊN QUAN

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

w