Tải bản đầy đủ (.pdf) (12 trang)

BÁO CÁO CUỐI KỲ MÔN HỌC THIẾT KẾ HỆ THỐNG SỐ VỚI HDL

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (791.91 KB, 12 trang )

ĐẠI HỌC QUỐC GIA TP. HỒ CHÍ MINH
TRƯỜNG ĐẠI HỌC CƠNG NGHỆ THƠNG TIN
KHOA KỸ THUẬT MÁY TÍNH

BÁO CÁO CUỐI KỲ
MƠN HỌC THIẾT KẾ HỆ THỐNG SỐ VỚI HDL
LỚP: CE213.N11
NHĨM 15
SINH VIÊN THỰC HIỆN:
NGUYỄN THỊNH PHÁT - 20521738
VÕ NHẬT NAM - 20520646
NGUYỄN HỮU TRÍ - 20522051
GVGD:

TS. LÂM ĐỨC KHẢI
TP. HỒ CHÍ MINH, NĂM 2022


Thiết kế hệ thống số với HDL - Nhóm 15

Project: 32 BITS - FLOATING POINT
MULTIPLIER
1. Số thực dấu chấm động (độ chính xác đơn):
Định nghĩa:
Biểu diễn số thực:
3.1459265…ten (pi)
2.71828…ten (e)
0.000000001ten or 1.0ten x 10-9 (seconds in a nanosecond)
3,155,760,000ten or 3.15576ten x 109 (second in a typical century)
 Scientific nonation: Một số thực được gọi là “scientific notation” khi
bên trái dấu chấm động có đúng 1 chữ số.


 Normalized number: Một số thực được gọi là “Normalized
number” (dạng chuẩn) khi số này được viết trong “scientific
nonation” và chữ số bên trái dấu chấm khơng phải là 0.
Ví dụ: 1.0ten x 10-9: số thực chuẩn
0.1ten x 10-8: không phải số thực chuẩn
10.0ten x 10-10: khơng phải số thực chuẩn
Trong máy tính, các số nhị phân phải được đưa về dạng chuẩn như sau:
1.xxxxxxxxxtwo x 2yyyy
Biểu diễn số thực dấu chấm động:
Biểu diễn số thực dấu chấm động theo chuẩn IEEE 754 (với độ chính xác
đơn)

Trong đó:
1


Thiết kế hệ thống số với HDL - Nhóm 15
s biểu diễn dấu của số thực dấu chấm động (1 nghĩa là âm, ngược lại 0 là
dương)
Phần mũ (exponent) có kích thước là 8 bit. Exponent là biểu diễn quá 127
của yyyy (excess -127 hoặc bias of 127).
Phần lẻ (fraction) hay phần định trị (mantissa) dùng 23 bits để biểu diễn
cho xxxxxxxxx
Tổng quát, số thực dấu chấm động được tính dựa theo (với bias = 127):
(-1)S x (1 + fraction) x 2(Exponent – Bias)
Hoặc:
(-1)S x (1 + (s1 x 2-1) + (s2 x 2-2) + (s3 x 2-3) + (s4 x 2-4) +…) x 2E với (s1, s2,
s3,… là các bit lần lượt từ trái sang phải của fraction).
Ví dụ: biểu diễn số -2345,125
B1: Chuyển đổi số trên ra hệ hai

-2345,125 = -1001 0010 1001.001 (dãy số nhị phân được biểu diễn bình
thường)
B2: Chuẩn hố theo IEEE 32bit
-100100101001.001
=> -1.00100101001001 x 2^11
(tức là lùi dấu chấm ra trước kế bên số đầu tiên, bao nhiêu số thì mũ mấy)
B3: Xác định các thơng số biểu diễn S,E,M
S: phần định trị là số âm, nên s là 1
E : phần mũ được xác định E = 11+127=138=10001010
M: phần định trị được xác định là 001001010010010 0000 0000 (23 số) 
(tức là M = dãy số sau dấu chấm sau khi chuẩn hóa, còn lại ghi số 0 cho đủ
23 số)
Dãy số là: 
S E               M
1 10001010 00100101001001000000000
2. 24 bits Multiplier Architecture:

2


Thiết kế hệ thống số với HDL - Nhóm 15

A và B lần lượt là 2 input đầu vào 24bits
-

A là số bị nhân, được nạp vào thanh ghi dịch trái (Shift Left Reg) và sử
dụng tín hiệu điều khiển SL từ controller.

-


B là số nhân, được nạp vào thanh ghi dịch phải (Shift Right Reg) và sử
dụng tín hiệu điều khiển SR từ controller.

-

Khối ALU bao gồm một bộ AND với chính input, một bộ cộng và một bộ
MUX.
 Nếu B[0]=0 thì kết quả của ALU sẽ lấy kết quả từ thanh ghi REG và
and với chính nó.
 Nếu B[0]=1 thì ALU sẽ lấy kết quả của Shift Left Reg cộng với kết quả
từ thanh ghi REG.
3


Thiết kế hệ thống số với HDL - Nhóm 15
Cuối cùng kết quả đưa đến cổng Tri, khi có tín hiệu từ Controller thì kết
quả sẽ được xuất ra.
-

Ngồi ra, ở bộ so sánh với 0 (Compare 0), khi nhận thấy giá trị ở thanh ghi
Shift Right Reg = 0 thì có nghĩa phép nhân đã được thực thi xong, sẽ
truyền tín hiệu cho Controller để xuất kết quả.

 24bits Multiplier FSM:

-

Trạng thái S0:
 SL và SR sẽ bằng 01 để bật tín hiệu cho phép nạp giá trị vào thanh ghi.
 Lúc này, do chưa thực hiện phép tính nên chưa xuất kết quả, vì vậy nên

V = 0.
 Khi có tín hiệu S = 1 thì trạng thái S0 sẽ chuyển sang trạng thái S1.

-

Trạng thái S1:
 SL = 10 cho phép thanh ghi Shift Left Reg dịch trái để thực thi phép
tính.
 SR = 11 cho phép thanh ghi Shift Right Reg dịch phải để thực thi phép
tính.
 Khi có tín hiệu EN từ bộ so sánh (Compare 0) bật lên 1 thì từ trạng
thái S1 sẽ chuyển sang trạng thái S2.

-

Trạng thái S2:
 Tín hiệu V=1 cho phép xuất kết quả.
4


Thiết kế hệ thống số với HDL - Nhóm 15
 SL và SR lúc này không cần quan tâm giá trị vì trạng thái S2 chỉ xuất
kết quả.
3. 32 bits Multiplier Architecture:

-

Tín hiệu đầu vào ở đây là 2 input A và B ở dạng số thực dấu chấm động
(Floating Point) nên khi input nạp vào sẽ được tách thành 3 phần chính:
 Sign (dấu): gồm 1 bit (0 là số dương, 1 là số âm)

 Exponent (mũ): gồm 8 bits kế tiếp
 Mantissa (định trị): gồm 23 bit cuối

-

Khi có tín hiệu Load từ Controller thì input (32bits) sẽ được nạp vào thanh
ghi và được tách thành 3 phần như trên.
5


Thiết kế hệ thống số với HDL - Nhóm 15
-

Đối với phần dấu, 2 bit mũ đi qua cổng XOR được sử dụng để tính được
bit dấu của tích. Giá trị đi đến cổng Tri và khi có tín hiệu điều khiển từ
Controller thì kết quả sẽ được xuất ra.
Input A

Input B

Output

0

0

0

0


1

1

1

0

1

1

1

0

 Khi 2 bit mũ khác nhau thì kết quả đi qua cổng XOR sẽ là 1 (có
nghĩa nhân hai số trái dấu với nhau thì kết quả sẽ là số âm).
 Khi 2 bit mũ cùng dấu thì kết quả đi qua cổng XOR sẽ là 0 (có
nghĩa nhân hai số cùng dấu với nhau thì kết quả sẽ ra số dương).
-

Với phần mũ, các bit mũ sẽ lần lượt được trừ với 127. Sau đó hai phần mũ
sẽ được cộng lại với nhau và cộng với 128. Kết quả sau đó sẽ được đưa
đến bộ trừ (Subtractor) để trừ đi phần mũ. Kết quả của phần mũ trừ kết quả
của Counter ở bộ Shift Left_Counter ta sẽ ra được bit mũ chính xác cuối
cùng.. Kết quả sẽ được đưa đến cổng Tri và chờ tín hiệu điều khiển từ
Controller để xuất kết quả.

-


Đối với phần định trị, do phần định trị của cả hai input chỉ còn 23bits nên
sẽ cần thêm một bit 1 ở phía trước mỗi input để trở thành 24bits và được
đưa vào bộ nhân 24bits (24bits Multiplier) để thực thi phép nhân. Thông
qua bộ nhân, kết quả trả về sẽ ở dạng 48bits. Kết quả qua bộ Shift
Left_Counter (bao gồm một bộ dịch trái và bộ đếm) để đưa về dạng 1.xx,
khi kết quả ra 0.xx thì bộ dịch sẽ dịch trái để đưa kết quả về dạng 1.xx.
Đồng thời, ở mỗi lần dịch trái thì bộ Counter cũng sẽ phải tăng thêm lên 1.
Sau cùng, lấy kết quả của phần mũ trừ kết quả quả Counter ta sẽ ra được
bit mũ chính xác cuối cùng. Phần định trị sẽ lấy kết quả từ bộ Shift Left
6


Thiết kế hệ thống số với HDL - Nhóm 15
[46-23] (chỉ lấy 23 bits) qua cổng Tri chờ tín hiệu điều khiển từ Controller
sẽ cho xuất ra kết quả.
-

Ngoài ra, khi bộ 24bits Multiplier thực thi xong sẽ có tín hiệu V trả về
Controller để báo hiệu kết quả thực thi ở bộ nhân 24bits đã tính xong.

 32bits Multiplier FSM:

-

Trạng thái S0:
 Load = 1 cho phép nạp giá trị input vào thanh ghi.
 Lúc này, kết quả chưa xuất nên V = 0.
 Khi tín hiệu Start = 1 thì trạng thái S0 sẽ chuyển sang trạng thái S1.


-

Trạng thái S1:
 Load = 0 do giá tị đã được nạp ở trạng thái S0.
 Lúc này, kết quả vẫn chưa xuất nên vẫn tiếp tục V = 0.
 Khi tín hiệu Done từ bộ nhân 24bits bật lên 1 thì trạng thái S1 sẽ
chuyển sang trạng thái S2.

-

Trạng thái S2:
 V = 1 cho phép xuất kết quả.

4. Mô phỏng:
1
2

Input A

Input B

Kết quả lý thuyết

01000000101010101111100111011011

01000011110110001011001100110011

01000101000100001011101010000000

(5.343)


(433.4)

(2315.6562)

01000011011100100110011001100110

11000001010001001100110011001100

11000101001110100101100001010000

7


Thiết kế hệ thống số với HDL - Nhóm 15

3

4

(242.4)

(-12.3)

(-2981.52)

01000010111101101110110100001110

00000000000000000000000000000000


00000011011101101110110100001110

(123.463)

(0)

(0.000xx)

11000010111110010000000000000000

11000010001101010100101011000000

01000101101100000101010110110100

(-124.5)

(-45.323)

(5642,7135)

 Testcase 1:


Waveform:



Post Synthesis:

Fmax = 178.35 Mhz


 Testcase 2:


Waveform:



Post Synthesis:

 Testcase 3:
 Waveform:
8


Thiết kế hệ thống số với HDL - Nhóm 15

 Post Synthesis:

 Testcase 4:
 Waveform:

 Post Synthesis:

9






×