《湘潭大学计算机原理 实验一 算术逻辑单元ALU实验报告》由会员分享,可在线阅读,更多相关《湘潭大学计算机原理 实验一 算术逻辑单元ALU实验报告(6页珍藏版)》请在人人文库网上搜索。
1、计算机原理与设计实验报告实验一 算术逻辑单元ALU姓名: XXX学号: 班级: 13级软件工程2班实验日期: 2014年 10 月22 日实验地点信息楼605硬件环境Intel(R) Core i3-3240 ,1.91GB系统环境Windows XP SP3设计软件Quartus II 13.0器件型号EP1C12QC240C8一实验目的1 理解算术逻辑单元ALU的工作原理。2 掌握算术逻辑单元ALU的设计方法。3 验证32位算术逻辑单元ALU的加、减、与、移位功能。4 按给定数据,完成几种指定的算术和逻辑运算。二实验内容算术逻辑单元ALU的设计如图1-1所示。其中运算器addsub32能实。
2、现32位的加减运算。参加运算的两个32位数据分别为A31.0和B31.0,运算模式由aluc3.0的16种组合决定,而aluc3.0的值由4位2进制计数器LPM_COUNTER产生,计数时钟是Sclk(图1-1);r31.0为输出结果,Z为运算后的零标志位。ALU功能如表1-1所示。表1-1ALU的运算功能选择端alucALU功能3 2 1 0* 0 0 0* 0 0 1* 0 1 0* 1 0 0 * 1 0 1* 1 1 00 0 1 10 1 1 11 1 1 1注1、* 表示每一位都移至下一更高有效位, “+”是逻辑或,“加”是算术加三实验步骤(1)设计ALU元件ALU元件设计代码:m。
3、odule alu (a,b,aluc,r,z);input 31:0 a,b;input 3:0 aluc;output 31:0 r;output z;assign r = cal(a,b,aluc);assign z = |r;function 31:0 cal;input 31:0 a,b;input 3:0 aluc;casex (aluc)4bx000: cal=a+b;4bx100: cal=a-b;4bx001: cal=a&b;4bx101: cal=a|b;4bx010: cal=ab;4bx110: cal=b15:0,16h0;4bx011: cal=ba4:0;4b1。
4、111: cal=$signed(b)a4:0;endcaseendfunctionendmodule(2)以原理图方式建立顶层文件工程原理图如下:(3)查看波形图波形图如下:(4)分配引脚结构图如下:引脚分配表如下:Node NameDirectionLocationA0_B1InputPIN_235ALUC3OutputPIN_140ALUC2OutputPIN_139ALUC1OutputPIN_138ALUC0OutputPIN_137CLRInputPIN_239DA7OutputPIN_20DA6OutputPIN_19DA5OutputPIN_18DA4OutputPIN_17D。
5、A3OutputPIN_16DA2OutputPIN_15DA1OutputPIN_14DA0OutputPIN_13DB7OutputPIN_136DB6OutputPIN_135DB5OutputPIN_134DB4OutputPIN_133DB3OutputPIN_132DB2OutputPIN_128DB1OutputPIN_41DB0OutputPIN_21IN7InputPIN_12IN6InputPIN_8IN5InputPIN_7IN4InputPIN_6IN3InputPIN_4IN2InputPIN_3IN1InputPIN_2IN0InputPIN_1R7OutputPI。
6、N_164R6OutputPIN_163R5OutputPIN_162R4OutputPIN_161R3OutputPIN_160R2OutputPIN_159R1OutputPIN_158R0OutputPIN_141SCLKInputPIN_238ZOutputPIN_165四实验任务(1)按图1-1所示,在本验证性示例中用数据选择开关(键3控制)的高/低电平选择总线通道上的8位数据进入对应的数据锁存器lpm_latch中;即首先将键3输入高电平,用键2、键1分别向DA7.0 置数(55H),这时在数码管4/3上显示输入的数据(55H);然后用键3输入低电平,再用键2、键1分别向DB7.0。
7、置数(AAH),这时在数码管2/1上显示输入的数据(AAH);这时表示在图1-1中的两个锁存器中分别被锁入了加数55H和被加数AAH。可双击图1-1的ALU元件,了解其Verilog HDL描述。(2)键6控制时钟SCLK,可设置表1-1的aluc3.0=0 F。现连续按动键6,设置操作方式选择aluc3.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,设置aluc3.0=0F,KEY7设置clr=0或cl。
8、r=1,验证ALU的逻辑运算功能,并记录实验数据。表1-2 DA7.0,DB7.0设置值检查R7.0Z寄存器内容ALUC3 2 1 0CLRDA7.0DB7.0000110(3) 验证ALU的算术运算和逻辑运算功能,ALU模块功能可参照表1-1。表1-3给定了寄存器DRl=DA7.0和DR2=DB7.0的数据(十六进制),要求根据此数据对照逻辑功能表所得的理论值(要求课前完成)与实验结果值进行比较(均采用正逻辑0)。表1-3ALUC3 2 1 0DA7.0DB7.0ALU功能运算结果R7.0(CLR=0)0000AA55RA加BFF0001AA55RA与B000010AA55R=A异或BFF0。
9、011AA55R=B逻辑左移A4.0位000100FF01RA减BFE0101FF01RA或BFF0110FF01RB逻辑左移16位000111FF01RB逻辑右移A4.0001000FFFFRA加BFF1001FFFFRA与BFF1010FFFFR=A异或B001011FFFFR=B逻辑左移A4.0位0011005501RA减B5411015501RA或B5511105501RB逻辑左移16位0011115501R=B算术右移A4.0位08四实验心得这次实验总体难度并不大,较难的地方是由于第一次接触Quartus这个软件,所以刚开始在应用上出现了很多问题,比如不知道该如何封装元件、如何测试波形、如何设置引脚等等。为了解决这样的问题我上网搜索了很多资料,也请教了老师和同学,最终学会了这些,让我受益很大。