- 1、本文档共6页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
实验三 构造ALU
实验三 构造ALU
实验目的:
学会用已存在的芯片构造自己想要的芯片
实现HalfAdder芯片
实现FullAdder芯片
实现Add16芯片
实现Inc16芯片
实现ALU芯片
实验器材:
硬件:安装了JDK的PC机一台
软件:1. 软件包tecs-software-suite-2.5.zip中的硬件仿真器
2. 实验三测试包
实验步骤:
1. 实现HalfAdder芯片
HalfAdder芯片API
芯片名: HalfAdder
输 入: a,b
输 出: sum,carry
功 能: sum=LSB of a+b
carry=MSB of a+b
参考实现原理图:
参考实现代码:
CHIP HalfAdder {
IN a, b;
OUT sum, // LSB of a + b
carry; // MSB of a + b
PARTS:
And(a=a,b=b,out=carry);
Xor(a=a,b=b,out=sum);
}
2. 实现FullAdder芯片
FullAdder芯片API
芯片名: FullAdder
输 入: a,b,c
输 出: sum,carry
功 能: sum=LSB of a+b+c
carry=MSB of a+b+c
参考实现原理图:
参考实现代码:
CHIP FullAdder {
IN a, b, c;
OUT sum, // LSB of a + b + c
carry; // MSB of a + b + c
PARTS:
And(a=a,b=b,out=tp1);
And(a=c,b=a,out=tp2);
And(a=b,b=c,out=tp4);
Or(a=tp1,b=tp2,out=tp3);
Or(a=tp3,b=tp4,out=carry);
Xor(a=a,b=b,out=tp5);
Xor(a=tp5,b=c,out=sum);
}
3. 实现Add16芯片
Add16芯片API
芯片名: Add16
输 入: a[16],b[16]
输 出: out[16]
功 能: out=a+b,不处理溢出情况。
参考实现原理图:
参考实现代码:
CHIP Add16 {
IN a[16], b[16];
OUT out[16];
PARTS:
FullAdder(a=a[0],b=b[0],c=false,sum=out[0],carry=tp1); FullAdder(a=a[1],b=b[1],c=tp1,sum=out[1],carry=tp2);
FullAdder(a=a[2],b=b[2],c=tp2,sum=out[2],carry=tp3);
FullAdder(a=a[3],b=b[3],c=tp3,sum=out[3],carry=tp4);
FullAdder(a=a[4],b=b[4],c=tp4,sum=out[4],carry=tp5);
FullAdder(a=a[5],b=b[5],c=tp5,sum=out[5],carry=tp6);
FullAdder(a=a[6],b=b[6],c=tp6,sum=out[6],carry=tp7);
FullAdder(a=a[7],b=b[7],c=tp7,sum=out[7],carry=tp8);
FullAdder(a=a[8],b=b[8],c=tp8,sum=out[8],carry=tp9);
FullAdder(a=a[9],b=b[9],c=tp9,sum=out[9],carry=tp10);
FullAdder(a=a[10],b=b[10],c=tp10,sum=out[10],carry=tp11);
FullAdder(a=a[11],b=b[11],c=tp11,sum=out[11],carry=tp12);
FullAdder(a=a[12],b=b[12],c=tp12,sum=out[12],carry=tp13);
FullAdder(a=a[13],b=b[13],c=tp13,sum=out[13],carry=tp14);
FullAdder(a=a
文档评论(0)