日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

计算机组成要素二:布尔运算:ALU算术运算器

發布時間:2023/12/20 编程问答 34 豆豆
生活随笔 收集整理的這篇文章主要介紹了 计算机组成要素二:布尔运算:ALU算术运算器 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.


二進制補碼:



半加器:

CHIP HalfAdder {IN a, b; // 1-bit inputsOUT sum, // Right bit of a + b carry; // Left bit of a + bPARTS:// Put you code here:Xor(a=a,b=b,out = sum);And(a=a,b=b,out = carry); }

全加器:

CHIP FullAdder {IN a, b, c; // 1-bit inputsOUT sum, // Right bit of a + b + ccarry; // Left bit of a + b + cPARTS:// Put you code here:HalfAdder(a=a,b=b,carry=hcarry,sum=hsum);HalfAdder(a=hsum,b=c,carry=fcarry,sum=sum);Xor(a=hcarry,b=fcarry,out=carry); }

加法器:

CHIP Add16 {IN a[16], b[16];OUT out[16];PARTS:// Put you code here:HalfAdder(a=a[0],b=b[0],carry = c0,sum = out[0]);FullAdder(a=a[1],b=b[1],c=c0,carry = c1,sum = out[1]);FullAdder(a = a[2], b = b[2], c = c1, sum = out[2], carry = c2);FullAdder(a = a[3], b = b[3], c = c2, sum = out[3], carry = c3);FullAdder(a = a[4], b = b[4], c = c3, sum = out[4], carry = c4);FullAdder(a = a[5], b = b[5], c = c4, sum = out[5], carry = c5);FullAdder(a = a[6], b = b[6], c = c5, sum = out[6], carry = c6);FullAdder(a = a[7], b = b[7], c = c6, sum = out[7], carry = c7);FullAdder(a = a[8], b = b[8], c = c7, sum = out[8], carry = c8);FullAdder(a = a[9], b = b[9], c = c8, sum = out[9], carry = c9);FullAdder(a = a[10], b = b[10], c = c9, sum = out[10], carry = c10);FullAdder(a = a[11], b = b[11], c = c10, sum = out[11], carry = c11);FullAdder(a = a[12], b = b[12], c = c11, sum = out[12], carry = c12);FullAdder(a = a[13], b = b[13], c = c12, sum = out[13], carry = c13);FullAdder(a = a[14], b = b[14], c = c13, sum = out[14], carry = c14);FullAdder(a = a[15], b = b[15], c = c14, sum = out[15], carry = c15); }

/*** 16-bit incrementer:* out = in + 1 (arithmetic addition)*/CHIP Inc16 {IN in[16];OUT out[16];PARTS:// Put you code here:Add16(a = in, b[0] = true, b[1..15] = false, out = out); }

ALU:


ALU CHIP:

CHIP ALU {IN x[16], y[16], // 16-bit inputs zx, // zero the x input?nx, // negate the x input?zy, // zero the y input?ny, // negate the y input?f, // compute out = x + y (if 1) or x & y (if 0)no; // negate the out output?OUT out[16], // 16-bit outputzr, // 1 if (out == 0), 0 otherwiseng; // 1 if (out < 0), 0 otherwisePARTS:// Put you code here:// if (zx == 1) set x = 0Mux16(a=x,b[0..15]=false,sel=zx,out=x0);// if (nx == 1) set x = !x Not16(in = x0, out = x1);Mux16(a = x0, b = x1, sel = nx, out = x2);// if (zy == 1) set y = 0Mux16(a=y,b[0..15]=false,sel=zy,out=y0);// if (ny == 1) set y = !y Not16(in = y0, out = y1);Mux16(a = y0, b = y1, sel = ny, out = y2);// if (f == 1) set out = x + y else set out = x & yAdd16(a=x2,b=y2,out = addxy);And16(a=x2,b=y2,out = andxy);Mux16(a=andxy,b=addxy,sel=f,out=out0);// if (no == 1) set out = !outNot16(in = out0, out = out1);Mux16(a = out0, b = out1, sel = no, out = out,out =out2);// if (out == 0) set zr = 1Or16Way(in = out2,out = zr1);Not(in = zr1, out = zr);// if (out < 0) set ng = 1//Or(a = out2[15],b=false,out = ng);IsNeg(in = out2, out = ng); } 創作挑戰賽新人創作獎勵來咯,堅持創作打卡瓜分現金大獎

總結

以上是生活随笔為你收集整理的计算机组成要素二:布尔运算:ALU算术运算器的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。