02-布尔运算习题

一,基本构件的说明

1,半加器
芯片名:HalfAdder
输入:a,b
输出:sum,carry
功能:sum=LSB of a+b
carry=MSB of a+b
————————————————————————————————————————————
2,全加器
芯片名:FullAdder
输入:a,b,c
输出:sum,carry
功能:sum = LSB of a+b+c
carry= MSB of a+b+c
————————————————————————————————————————————
3,加法器
芯片名:Add16
输入:a[16],b[16]
输出:out[16]
功能:out=a+b
说明:2补码的整数加法,不处理溢出的情况

————————————————————————————————————————————
4,增量器
芯片名:Inc16
输入:in[16]
输出:out[16]
功能:out=in+1
说明:2补码的整数加法,不处理溢出的情况
————————————————————————————————————————————
5,ALU
芯片名:ALU
输入:x[16], y[16]
zx, //x输入置0
nx, //x输入取反
zy, //y输入置0
ny, //y输入取反
f, //功能码:1 Add 0 and
no // out输出取反
输出:out[16], //16位输出
zr, //若out=0,为True,否则为False
ng //若out<0,为True,否则为False
功能:if zx then x=0
if nx then x=!x
if zy then y=0
if ny then y=!y
if f then out=x+y else out=x&y
if no then out=!out
if out=0 then zr=1 else zr=0
if out<0 then ng=1 else ng=0
说明:不处理溢出的情况
————————————————————————————————————————————
二,ALU 的功能列表:

注意:以上的理解基于下面的基础:
    (1)zx=1,nx=1 =====> x = -1
    (2)!x+1=-x
  举例子:
  (a)f(x,y) = !(!x-1)
        = !(!x+1-2)
        = !(-x-2)
        = !(-x-2)+1-1
        = -(-x-2)-1
        =x+1
   (b)f(x,y) = !(!x+y)
           = !(!x+1+y-1)
         = !(-x+y-1)+1-1
           = -(-x+y-1)-1
           = x-y

三,代码实现://TODO

1,半加器

————————————————————————————————————————————

2,全加器

————————————————————————————————————————————

3,加法器

————————————————————————————————————————————

4,增量器

————————————————————————————————————————————

5,ALU

————————————————————————————————————————————

 

posted on 2016-10-16 20:00  桃枝妖妖  阅读(424)  评论(0编辑  收藏  举报

导航