计算机组成原理实验实验四ALU的设计与实现
专业班级计算机科学与技术
学号姓名冯帆
学号姓名张琪
实验地点理工楼901
f实验四ALU的设计与实现
一、实验目的
1、理解ALU的功能和其在处理器中的地位。
2、掌握ALU的结构化分模块、分层次的设计方法。
3、掌握ALU的Verilog语言描述方法。
二、实验内容
1、学习ALU的设计方法。
2、用Verilog语言采用行为描述的方法完成74181的逻辑设计。
3、用Verilog语言采用结构描述的方法完成74181的逻辑设计。
4、学习用宏模块的方法定制并调用ALU。
三、实验仪器及设备
PC机QuartusⅡ90DE270
四、实验步骤
1打开Quartus软件新建工程并新建一个verilog文件。
2编写verilog程序。首先查找74181的功能表用always模块和case语句实现其功能。然后设计ALU的过程中利用p函数和g函数实现超前进位功能。
3附程序代码如下
moduleALU_74181
i
put30a
i
put30b
i
put30s选择信号
i
putmm1执行逻辑运算反之执行算术运算
i
putc
低位的进位或者是高位的借位
output30f
outputaeqb输出当ab时输出1当ab时输出0
outputc4对应74181的C
4
outputpp函数
outputgg函数
reg30result定义中间变量result存放结果
wire40temp定义中间变量temp存放选择变量s和m
wirep0p1p2p3进位产生信号
wireg0g1g2g3进位传递信号
fassig
tempsm
alwaystemporaorb
begi
casetempcase语句实现74181的32种功能
5b00000resulta
5b00001resulta
5b00010resultab
5b00011resultab
5b00100resultab
5b00101resultab
5b00110result4b1111补码运算1的补码是1111
5b00111result0
5b01000resultaab
5b01001resultab
5b01010resultb
5b01011resultabab
5b01100resultab
5b01101resultab4b1111
5b01110resultab4b1111
5b01111resultab
5b10000resultaab
5b10001resultab
5b10010resultab
5b10011resultab
5b10100resultabab
5b10101resultb
5b10110resultab4b1111
5b10111resultab
5b11000resultaa
5b11001result1
5b11010resultaba
5b11011resultab
5b11100resultaba
5b11101resultab
f5b11110resulta4b1111
5b11111resulta
defaultresult4b0000默认情况给result赋值为0e
dcase
e
d
assig
fresult将中间变量result的值赋给f
片与片之间的超前进位
assig
g0a0b0g函数是a与b的与
assig
g1a1b1
assig
g2a2b0
assig
g3a3b0
assig
p0a0b0p函数是a和b的异或
assig
p1a1b1
assig
p2a2b2
assig
p3a3b3
assig
c4g3g2p3g1p2p3g0p0p1p2c
p0p1p2p3g3p3g2p3p2g1p3p2p1g0p3p2p1p0c
assig
pp0p1p2p3
assig
gg3g2pr