Bài tập lab 2 kiến trúc máy tính
Lab 20% found this document useful (0 votes) 54 views 17 pages Copyright© Attribution Non-Commercial (BY-NC) Available FormatsDOCX, PDF, TXT or read online from Scribd Share this documentDid you find this document useful?0% found this document useful (0 votes) 54 views17 pages Lab 2Jump to Page You are on page 1of 17 ĐỒ ÁN VI X Ử LÝ & C Ấ U TRÚC MÁY TÍNH GVHD: TR Ầ N TH Ị MINH H Ạ NH SVTH: C Ậ N – BÌNH – TU Ấ N ALU 1. Giới thiệu : - Trong lab 2 này chúng ta xây dựng khối ALU 32 bits với nhiệm vụ thực hiện các lệnhsố học đơn giản như ADD, SUB , XOR , SLT . - ALU 32 bits được xây dựng từ 32 bộ alu 1 bit - Đây là khối xử lý mọi công việc tính toán của bộ vi xử lý . 2. M ục đích thiế t k ế : - Th ự c hi ệ n thi ế t k ế m ộ t kh ối ALU đơn giả n.- Hai ngõ vào 32 bit, tín hi ệu điề u khi ển 2 bít dùng để l ự a ch ọ n m ộ t trong b ố n phéptoán: add,sub,xor và slt.- Ngõ ra có độ dài 32 bit,ngoài ra còn có các c ờ báo hi ệ u: overflow, zero, carryout,negative. 3. Sơ đồ khối : 32 bit ALU323232ZeroOverflowCarryOut ALUControlBus ABus BOutput ĐỒ ÁN VI X Ử LÝ & C Ấ U TRÚC MÁY TÍNH GVHD: TR Ầ N TH Ị MINH H Ạ NH SVTH: C Ậ N – BÌNH – TU Ấ N Nguyên lý hoạt động của khối ALU: - Khối ALU có 2 đầu vào A,B mỗi đầu vào 32 bits. - Khối ALU sẽ dựa vào 2 bits ALU Control mà sẽ xác định phép toán cần xử lý Vd: ALU Control = 00 thì sẽ thực hiện phép A + B - Kết quả các phép toán sẽ được đưa ra ở Output 32 bits - Ngoài ra còn có các bits cờ : + Zero : sẽ bằng 1 khi kết quả ở đầu ra Output = 0 và bằng 0 khi Output khác 0 + Overflow : sẽ được set bằng 1 khi thực hiện các phép toán ADD , SUB có xảy ra tràn. + Carryout : sẽ được set bằng 1 trong các phép toán ADD, SUB khi xảy ra có nhớ ở bits 31+ Negative : sẽ được set bằng 1 khi kết quả sau khi tính toán là một số âm . - Vì tín hi ệu vào có 32 bit . Do đó ta chỉ c ầ n g ọ i 32 l ầ n modul Calc_bit (đã xây dự ng ở ph ầ n trên) để th ự c hi ệ n ADD, SUB , XOR 32 bit theo th ứ t ự t ừ bit 0 đế n bit 31. Cách xác định cờ Overflow như sau: CinAdd-cinSub a b CAdd outAdd CSub outSub0 0 0 0 0 0 00 0 1 0 1 1 10 1 0 0 1 0 10 1 1 1 0 0 01 0 0 0 1 1 11 0 1 1 0 1 01 1 0 1 0 0 01 1 1 1 1 1 1 + Đố i v ớ i phép c ộ ng: 2 s ố h ạ ng c ủ a phép c ộ ng cùng d ấu nhưng kế t qu ả khác d ấ u v ớ i 2 s ố h ạ ng đó. Từ b ả ng, suy ra cách nh ậ n bi ế t thông qua bit nh ớ : overflow x ả y ra khi bit nh ớ cinAdd vàCAdd c ủ a MSB khác nhau. ĐỒ ÁN VI X Ử LÝ & C Ấ U TRÚC MÁY TÍNH GVHD: TR Ầ N TH Ị MINH H Ạ NH SVTH: C Ậ N – BÌNH – TU Ấ N + Đố i v ớ i phép tr ừ : s ố b ị tr ừ là s ố dương và số tr ừ là s ố âm, k ế t qu ả là s ố âm ho ặ c s ố b ị tr ừ là s ố âm và s ố tr ừ là s ố dương, kế t qu ả là s ố dương. Từ b ả ng, suy ra cách nh ậ n bi ế t thông qua bit mượ n: overflow x ảy ra khi bit mượ n cinSub và CSub c ủ a MSB khác nhau.- Sau khi th ự c hi ện tính toán, ta có đượ c k ế t qu ả c ủa 4 phép toán ADD, SUB, XOR và SLT. Căn c ứ vào 2 bit điề u khi ể n ở port ALU control để xác đị nh k ế t qu ả nào s ẽ được đưa ra output porttheo như bả ng sau: ALUCONTROLLINES FUNCTION 00 Add 01 XOR 10 Sub 11 SLT Do đó, cần có khối chọn kênh MultiplexorOut 4 ) Thi ế t k ế kh ố i ALU 4.1) Thi ế t kê kh ố i ADD, SUB và XOR a) Phép AddCode: module add(a,b,s,cin,cout);input a,b,cin;wire c1,c2,c3;output cout,s; xor (s,a,b,cin);and (c1,a,b);or (c2,a,b);and (c3,c2,cin);or (cout,c1,c3);endmodule Reward Your CuriosityEverything you want to read. Anytime. Anywhere. Any device. No Commitment. Cancel anytime. |