您好,欢迎访问三七文档
当前位置:首页 > 建筑/环境 > 工程监理 > 湘潭大学计算机原理 实验一 算术逻辑单元ALU实验报告
计算机原理与设计实验报告实验一算术逻辑单元ALU姓名:XXX学号:2013551728班级:13级软件工程2班实验日期:2014年10月22日实验地点信息楼605硬件环境Intel(R)Core™i3-3240,1.91GB系统环境WindowsXPSP3设计软件QuartusII13.0器件型号EP1C12QC240C8一.实验目的1.理解算术逻辑单元ALU的工作原理。2.掌握算术逻辑单元ALU的设计方法。3.验证32位算术逻辑单元ALU的加、减、与、移位功能。4.按给定数据,完成几种指定的算术和逻辑运算。二.实验内容算术逻辑单元ALU的设计如图1-1所示。其中运算器addsub32能实现32位的加减运算。参加运算的两个32位数据分别为A[31..0]和B[31..0],运算模式由aluc[3..0]的16种组合决定,而aluc[3..0]的值由4位2进制计数器LPM_COUNTER产生,计数时钟是Sclk(图1-1);r[31..0]为输出结果,Z为运算后的零标志位。ALU功能如表1-1所示。表1-1ALU的运算功能选择端alucALU功能3210*000BAR加*001BAR与*010BAR*100BAF-*101BAR*110位逻辑左移将16BR0011位逻辑左移]0..4[ABR0111位逻辑右移]0..4[ABR1111位算数右移]0..4[ABR注1、*表示每一位都移至下一更高有效位,“+”是逻辑或,“加”是算术加三.实验步骤(1)设计ALU元件ALU元件设计代码:modulealu(a,b,aluc,r,z);input[31:0]a,b;input[3:0]aluc;output[31:0]r;outputz;assignr=cal(a,b,aluc);assignz=~|r;function[31:0]cal;input[31:0]a,b;input[3:0]aluc;casex(aluc)4'bx000:cal=a+b;4'bx100:cal=a-b;4'bx001:cal=a&b;4'bx101:cal=a|b;4'bx010:cal=a^b;4'bx110:cal={b[15:0],16'h0};4'bx011:cal=ba[4:0];4'b0111:cal=ba[4:0];4'b1111:cal=$signed(b)a[4:0];endcaseendfunctionendmodule(2)以原理图方式建立顶层文件工程原理图如下:(3)查看波形图波形图如下:(4)分配引脚结构图如下:引脚分配表如下:NodeNameDirectionLocationA0_B1InputPIN_235ALUC[3]OutputPIN_140ALUC[2]OutputPIN_139ALUC[1]OutputPIN_138ALUC[0]OutputPIN_137CLRInputPIN_239DA[7]OutputPIN_20DA[6]OutputPIN_19DA[5]OutputPIN_18DA[4]OutputPIN_17DA[3]OutputPIN_16DA[2]OutputPIN_15DA[1]OutputPIN_14DA[0]OutputPIN_13DB[7]OutputPIN_136DB[6]OutputPIN_135DB[5]OutputPIN_134DB[4]OutputPIN_133DB[3]OutputPIN_132DB[2]OutputPIN_128DB[1]OutputPIN_41DB[0]OutputPIN_21IN[7]InputPIN_12IN[6]InputPIN_8IN[5]InputPIN_7IN[4]InputPIN_6IN[3]InputPIN_4IN[2]InputPIN_3IN[1]InputPIN_2IN[0]InputPIN_1R[7]OutputPIN_164R[6]OutputPIN_163R[5]OutputPIN_162R[4]OutputPIN_161R[3]OutputPIN_160R[2]OutputPIN_159R[1]OutputPIN_158R[0]OutputPIN_141SCLKInputPIN_238ZOutputPIN_165四.实验任务(1)按图1-1所示,在本验证性示例中用数据选择开关(键3控制)的高/低电平选择总线通道上的8位数据进入对应的数据锁存器lpm_latch中;即首先将键3输入高电平,用键2、键1分别向DA[7..0]置数01010101(55H),这时在数码管4/3上显示输入的数据(55H);然后用键3输入低电平,再用键2、键1分别向DB[7..0]置数10101010(AAH),这时在数码管2/1上显示输入的数据(AAH);这时表示在图1-1中的两个锁存器中分别被锁入了加数55H和被加数AAH。可双击图1-1的ALU元件,了解其VerilogHDL描述。(2)键6控制时钟SCLK,可设置表1-1的aluc[3..0]=0~F。现连续按动键6,设置操作方式选择aluc[3..0]=0000(加法操作),使数码管8显示0,以验证ALU的算术运算功能:当键7设置clr=0时,数码管6/5=FF(55H+AAH=FFH);当键7设置cn=1(复位)时,数码管7/6/5=100(Z=1);键KEY6控制时钟SCLK,设置aluc[3..0]=0~F,KEY7设置clr=0或clr=1,验证ALU的逻辑运算功能,并记录实验数据。表1-2DA[7..0],DB[7..0]设置值检查R[7..0]Z寄存器内容ALUC3210CLRDA[7..0]DB[7..0]1111111100101010110101010100000000000101010101101010101010(3)验证ALU的算术运算和逻辑运算功能,ALU模块功能可参照表1-1。表1-3给定了寄存器DRl=DA[7..0]和DR2=DB[7..0]的数据(十六进制),要求根据此数据对照逻辑功能表所得的理论值(要求课前完成)与实验结果值进行比较(均采用正逻辑0)。表1-3ALUC3210DA[7..0]DB[7..0]ALU功能运算结果R[7..0](CLR=0)0000AA55R=A加BFF0001AA55R=A与B000010AA55R=A异或BFF0011AA55R=B逻辑左移A[4..0]位000100FF01R=A减BFE0101FF01R=A或BFF0110FF01R=B逻辑左移16位000111FF01R=B逻辑右移A[4..0]001000FFFFR=A加BFF1001FFFFR=A与BFF1010FFFFR=A异或B001011FFFFR=B逻辑左移A[4..0]位0011005501R=A减B5411015501R=A或B5511105501R=B逻辑左移16位0011115501R=B算术右移A[4..0]位08四.实验心得这次实验总体难度并不大,较难的地方是由于第一次接触Quartus这个软件,所以刚开始在应用上出现了很多问题,比如不知道该如何封装元件、如何测试波形、如何设置引脚等等。为了解决这样的问题我上网搜索了很多资料,也请教了老师和同学,最终学会了这些,让我受益很大。
本文标题:湘潭大学计算机原理 实验一 算术逻辑单元ALU实验报告
链接地址:https://www.777doc.com/doc-4282760 .html