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

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

MỤC LỤC CHƯƠNG : GIỚI THIỆU 1.1 TỔNG QUAN 1.2 GIỚI THIỆU VỀ SỐ DẤU CHẤM ĐỘNG IEEE 754 CHƯƠNG : XÂY DỰNG BỘ NHÂN VÀ BỘ CỘNG 2.1 Xây dựng nhân 2.1.1 Giải thuật Modified Booth Multiplier 2.1.2 Kiểm tra giải thuật 2.1.3 Kiến trúc Modified Booth Multiplier 2.2 Xây dựng 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 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 DANH SÁCH HÌNH VẼ DANH SÁCH BẢNG DANH SÁCH TỪ VIẾT TẮT MỤC TIÊU - Nghiên cứu xây dựng cộng, nhân so sánh ngôn ngữ phần cứng Verilog - Nghiên cứu xây dựng khối truy cập nhớ nội ngôn ngữ phần cứng Verilog CHƯƠNG : GIỚI THIỆU 1.1 TỔNG QUAN Mạng nơron nhân tạo xây dựng dựa module nhân cộng Hầu hết tính toán dựa phép nhân phép cộng để thực Do việc thực thi phần cứng mà đảm bảo tính xác việc thực thi hai phép toán điều vô quan trọng Do tính xác việc tiếp cận phép tính đặ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 biểu diễn dạng: Trong đó:  Sign :1 bit dấu bit cho số dương cho số âm  Exponent : 8bit phần mũ  Significand :23 bit phần định trị - Giá trị thực số dấu chấm động tính bằng: Với : ! " CHƯƠNG : XÂY DỰNG BỘ NHÂN VÀ BỘ CỘNG 2.1 Xây dựng nhân 2.1.1 Giải thuật Modified Booth Multiplier Giải thuật Modified Booth Multiplier số (cho số có dấu)  Chèn thêm bit vào sau LSB số nhân  Nếu số bit số nhân số lẻ mở rộng thêm bit dấu (MSB) cho số nhân Nếu số bit số nhân số chẵn không mở rộng thêm bit MSB cho số nhân  Chia số nhân thành nhóm, nhóm gồm bits, có chồng lấp bit  Từ khoảng chia số nhân (mỗi nhóm có bits), xác định tích thành phần từ bảng encoder  Tính tổng tích thành phần với  Cộng thêm chuỗi bit hiệu chỉnh kết Chuỗi bit có dạng {1010….101011,00…00} Số bit thêm vào (00 00) chiều dài (số bị nhân+1) Chiều dài chuỗi bit hiệu chỉnh=chiều dài kết phép nhân X2i+1 X2i X2i-1 Action 0 0xY 0 1xY 1xY 1 2xY 0 -2xY 1 -1xY 1 -1xY 1 0xY 2.1.2 Kiểm tra giải thuật Thiết kế nhân số có dấu (bù 2): X.Y, với X: 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 bit vào sau LSB X: 110100 2) Số bit X số lẻ (5bits)mở rộng thêm bit dấu cho X: 1110100 3) Chia X thành nhóm, nhóm 3bits, có chồng lấp bit: 1110100 4) Tính tổng tích thành phần với chuỗi bit hiệu chỉnh lại với 5) Dựa vào bảng Encoder, tìm tích thành phần X2i+1 X2i X2i-1 Action Partial product (18bits) 0 -2xY 111110001101011110 1 -1xY 111111000110101111 1 0xY 000000000000000000 Chuỗi bit hiệu chỉnh có số bit thêm vào chiều dài (số bị nhân+1)có dạng 011000000000000000000 000111110001101011110 011111100011010111100 000000000000000000000 011000000000000000000 : Chuỗi bit hiệu chỉnh 111111010101000011010 -21990 : (-6)x(+3665)=-21990 2.1.3 Kiến trúc Modified Booth Multiplier CSA: Carry Save Adder CLA: Carry Look Ahead Adder mo rong sign bit (in1[4]) csa21win csa21win1(cout1,mulout1,{2'b0,~boothout1[17],boothout1}, {~boothout2[17],boothout2,2'b0},{boothout3[16:0],4'b0}); csa21win csa21win2(cout2,mulout2,{cout1[19:0],1'b0},mulout1, {3'b011,18'b0});//so bit them vao cuoi=length(boothout) cla20win cla20win(sum20,a20,b20); always @(negedge clk or negedge reset) begin if(reset==0) 17 begin state[...]... input A,B,C; output S,P,G; assign G=A&B; assign P=A^B; assign S=P^C; endmodule 21 TÀI LIỆU THAM KHẢO 22 23 MỤC TIÊU - Nghiên cứu và 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 - Nghiên cứu và xây dựng khối truy cập bộ nhớ nội bằng ngôn ngữ phần cứng Verilog 5 25 ... 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 12 CHƯƠNG 3 : KẾT LUẬN 3.1 Bộ nhân Sau khi xây dựng được mô hình phần mềm cũng như phần cứng, bộ nhân. ..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 Đặt: Gi=ai.bi Pi=aibi Si=PiCi Ci+1=Gi+Pi.Ci Bộ cộng CLA 4bits 11 Giá trị của biến nhớ trong mỗi bộ Full Adder: C1=G0+P0.C0 C2=G1+P1.C1=G1+P1(G0+P0.C0)=G1+P1.G0+P1.P0.C0... Đá nh giá sa i số của bộ cộ ng dấu c hấm độ ng 32 b it  Đánh giá kết quả Kết quả được đá nh giá dựa trê n số l iệu t hu được sau quá trì nh kiểm tra trê n tool VCS và tí nh toá n các số l iệu c hí nh xác 16 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) //2 clock cycles module window(in2,in1,out,en,clk,reset);//17*5... 1.9*10-12 0 Dựa trê n kết quả mô phỏ ng bằ ng phầ n mềm (M atl ab) và phầ n cứ ng (VCS), các thố ng kê về s ai số được tí nh toá n nhằm đá nh giá chí nh xác hiệu nă ng củ a bộ cộ ng dấu chấm độ ng 32 bit 15 SAI SỐ BỘ CỘNG 10-12 5 4.5 4 3.5 3 2.5 2 1.5 1 0.5 0 Trường hợp kiểm tra 1 2 3 4 5 6 7 8 9 10 ‰Š‹„Œ† 3-1 Đá nh giá sa i số của bộ cộ ng dấu c hấm độ ng 32 b it  Đánh giá kết quả Kết quả được đá... Wallace tree 12 CHƯƠNG 3 : KẾT LUẬN 3.1 Bộ nhân Sau khi xây dựng được mô hình phần mềm cũng như phần cứng, bộ nhân được tiến hành kiểm tra với các trường hợp tiêu biểu nhất như sau •‚ƒ„…† 3-1 Kết quả mô phỏng bộ nhân dấu chấm động 32 bit case factor 1 factor 2 software hardware error 1 2.67895 0.125 0.33486875 0.3348687589169 3.9*10-17 2 1.245 1.25 1.55625 1.5562499761581 2.8*10-16 3 -0.00873 64.0019531... booth2(boothout2,in1[3:1],in2); booth17 booth3(boothout3,{in1[4],in1[4:3]},in2);/ /so bit vao le (5 bit) > mo rong sign bit (in1[4]) csa21win csa21win1(cout1,mulout1,{2'b0,~boothout1[17],boothout1}, {~boothout2[17],boothout2,2'b0},{boothout3[16:0],4'b0}); csa21win csa21win2(cout2,mulout2,{cout1[19:0],1'b0},mulout1, {3'b011,18'b0});/ /so bit 0 them vao cuoi=length(boothout) cla20win cla20win(sum20,a20,b20);... -0.0177 -0.0176999960095 7.9*10-18 9 2.1875 -0.625 -1.3671875 -1.3671875 0 10 0 0 0 0 0 -40.8509979248046 2.1*10-12 -40.851 13 DANH SÁCH BẢNG 3 •‚ƒ„…† 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 1 2.67895 0.125 2.80395 2.8039500713348 2.5*10-15 2 0.5117188 -0.4843750 0.027343750 0.02734375 0 3 -0.00873 4 0.9837640 -0.0078125 0.9759515 0.9759514927864

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