推荐-湘潭大学计算机原理 实验一 算术逻辑单元alu实验

合集下载

ALU实验报告

ALU实验报告

算术逻辑部件ALU实验报告一、实验目的(1)熟悉硬件描述语言及开发环境,了解硬件系统开发的基本过程。

(2)掌握 ALU基本设计方法和简单运算器的数据传送通路。

(3)验证 ALU的功能。

二、实验环境( 1)硬件环境:安装有 Windows7 或以上操作系统的PC,THINPAD教学计算机。

( 2)软件开发: FPGA开发工具软件 Xilinx ISE 12.3或以上。

三、实验内容(1)根据实验原理中的要求,用 VHDL语言实现一个简单的 ALU。

(2)在教学计算机 THINPAD上验证实现的 ALU的功能。

四、实验原理算术逻辑部件 ALU的主要功能是对二进制数据进行定点算术运算、逻辑运算和各种移位操作等。

算术运算包括定点加减乘除运算,逻辑运算主要用逻辑与、逻辑或、逻辑异或和逻辑非等操作。

ALU通常有两个数据输入端A 和B 输出操作数,一个数据输出端Y 以及标志位输出结果,通过输入操作码op 来确定所要进行的操作,本实验通过实现一个状态机,根据状态机状态的变化来输人操作数及操作码,并最终实现不同的运算,将结果和标志位呈现出来。

本实验中的 ALU要求实现基本的算术运算、逻辑运算、移位运算等,具体功能如下:操作码功能描述ADD A+B加法SUB A-B减法AND A and B与OR A or B或XOR A xor B异或NOT not A取非SLL A sll B逻辑左移 B 位SRL A srl B逻辑右移 B 位SRA A sra B算术右移 B 位ROL A rol B循环左移 B 位ALU的输入数据为 16 位,操作码 op 为 4 位,算术运算时数据用补码表示。

五、实验步骤本实验通过 VHDL语言实现一个比较简单的ALU模块。

(1)用 VHDL语言编写 ALU 功能代码,并用状态机对其进行控制,使其完成实验要求的操作。

操作码和操作数的输入用微型开关 SW0~SW15,计算结果的输出用数字机上的 LED灯来展示。

计算机组成原理实验报告_32位ALU设计实验

计算机组成原理实验报告_32位ALU设计实验

实验三32位ALU设计实验一、实验目的学生理解算术逻辑运算单元(ALU)的基本构成,掌握Logisim 中各种运算组件的使用方法,熟悉多路选择器的使用,能利用前述实验完成的32位加法器、Logisim 中的运算组件构造指定规格的ALU 单元。

二、实验原理、内容与步骤实验原理、实验内容参考:1、32位加法功能的原理与设计1)设计原理1,被加数A(32位),2,被加数B(32位),3,前一位的进位CIN(1位),4,此位二数相加的和S(32位),5,此位二数相加产生的进位COUT(1位)。

要实现32位的二进制加法,一种自然的想法就是将1位的二进制加法重复32次(即逐位进位加法器)。

这样做无疑是可行且易行的,但由于每一位的CIN都是由前一位的COUT提供的,所以第2位必须在第1位计算出结果后,才能开始计算;第3位必须在第2位计算出结果后,才能开始计算,等等。

而最后的第32位必须在前31位全部计算出结果后,才能开始计算。

这样的方法,使得实现32位的二进制加法所需的时间是实现1位的二进制加法的时间的32倍。

2)电路设计32位加法功能2、32位减法功能的原理与实现1)变减法为加法的原理1.在Y引脚处使用求补器(32位),即可变减法为加法2.用构造好的32位加法器。

Y各位取反,C0取1,即可达到减法变加法。

无符号数的减法溢出,带加减功能的ALU的进位取反后表示,有符号数的减法溢出,仍然用最高位和符号位是否相等来判断2)电路设计32位减法功能3、加减溢出检测的设计(不考虑乘除法)1)有符号数溢出的设计有符号数溢出的设计2)无符号数溢出的设计无符号数溢出的设计4、移位的原理与设计1)逻辑移位逻辑移位2)算术移位算术移位5、逻辑运算功能的原理与设计2)与、或、异或、或非逻辑6、大于、等于、小于功能设计大于、等于、小于功能设计7、AluOP的控制原理与设计1)原理:AluOP的控制原理与设计8、总电路设计图算术逻辑运算单元ALU三、实验结论及分析(实验完成功能情况、存在问题分析或改进思路、自己的心得体会等。

计算机组成原理第一次实验

计算机组成原理第一次实验
F ( A B )加AB 加 1
FB F AB F 1 F A B F A B FA
F AB
F A加A
*
F AB减1
F A加A加1
F A B)加A 加 1 ( F A B )加A 加 1 (
F A B)加A ( F A B )加A (
2
网络工程系·2009 年编制
实验仿真:
管脚配置:
3
网络工程系·2009 年编制
ALU 实验数据表:
Hale Waihona Puke 选择端 M=H S3 S2 S1 S0 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 0 0 0 0 1 1 1 1 0 0 0 0 1 1 1 1 0 0 0 1 1 0 1 1 0 0 0 1 1 0 1 1 0 0 0 1 1 0 1 1 0 0 0 1 1 0 1 1 逻辑功能
FB F A B F AB F AB
F A B
F ( A B) 加 AB
F A减B
F ( A B) 加 AB +1
F A减B减1
F ( A B )减1
F A B
F A加AB F A加B F A B )加AB (
F A加AB 加 1 F A加B 加 1
《计算机组成原理》课程实验报告
实验名称 姓 名
算术逻辑单元(ALU)
实验序号 级 学 成 号 绩
1
系院专业
网络工程 指导教师

实验日期
一、实验目的 1、认识算术逻辑单元(ALU)是计算机的核心部件之一,它能执行加法和减法等算术运算, 也能执行“与”“或”“非”等逻辑运算。 、 、 2、了解算术逻辑运算的结构组成和工作原理。 3、了解运算器的数据传输通路; 4、验证运算器的组合功能; 5、掌握算术逻辑运算加、减工作原理; 6、验证实验台运算的 8 位加、减、与、直通功能;5、按给定数据,完成几种指定的算术和 逻辑运算。 二、实验内容与要求 1、设计 ALU 元件。在 Quartus II 环境下,用文本输入编辑器 Text Editor 输入 ALU181.VHD 算 术逻辑单元文件,编译 VHDL 文件,并将 ALU181.VHD 文件(例 4-1)制作成一个可调用的原理图 元件。 2、以原理图方式建立顶层文件工程。选择图形方式。根据图 4-50 输入实验电路图,从 Quartus II 的基本元件库中将各元件调入图形编辑窗口、连线,添加输入输出引脚。 将所设计的原理图图形文件 ALU.bdf 保存到原先建立的文件夹中, 将当前文件设置成工程文件, 以后的操作就都是对当前工程文件进行的。 3、器件选择。选择 Cyclone 系列,在 Devices 中选择器件 EP1C6QC240C8。编译,引脚锁定, 再编译。引脚锁定后需要再次进行编译,才能将锁定信息确定下来,同时生成芯片编程/配置所需要 的各种文件。 4、 芯片编程 Programming (也可以直接选择光盘中的示例) 打开编程窗口。 。 将配置文件 ALU.sof 下载进 GW48 系列现代计算机组成原理系统中的 FPGA 中。 5、选择实验系统的电路模式是 NO.0,验证 ALU 的运算器的算术运算和逻辑运算功能。根据表 4-1,用按键输入数据 A[7..0]和 B[7..0],并设置 S[3..0]、M、CN,验证 ALU 运算器的算术运算和逻 辑运算功能,记录实验数据。 实验原理图:

实验报告算术逻辑单元

实验报告算术逻辑单元

一、实验目的1. 理解算术逻辑单元(ALU)的基本原理和功能。

2. 掌握ALU的设计方法和实现过程。

3. 通过实验加深对计算机组成原理的理解。

二、实验原理算术逻辑单元(ALU)是计算机中执行算术运算和逻辑运算的核心部件。

它主要完成加、减、乘、除等算术运算以及与、或、非、异或等逻辑运算。

ALU的设计和实现是计算机组成原理中的基础内容。

三、实验内容1. 设计一个8位ALU,能够完成加、减、乘、除、与、或、非、异或等运算。

2. 使用Verilog HDL语言实现该ALU。

3. 在FPGA平台上进行测试,验证ALU的功能。

四、实验步骤1. 分析ALU的功能需求,确定输入和输出信号。

2. 设计ALU的内部结构,包括运算单元、控制单元和寄存器。

3. 使用Verilog HDL语言编写ALU的代码。

4. 在FPGA平台上进行测试,验证ALU的功能。

五、实验结果与分析1. 实验结果根据实验要求,我们设计了一个8位ALU,能够完成加、减、乘、除、与、或、非、异或等运算。

以下是部分实验结果:(1)加法运算输入:A = 10101010,B = 11001100输出:10111010(2)减法运算输入:A = 11001100,B = 10101010输出:01010100(3)乘法运算输入:A = 10101010,B = 11001100输出:1111100000(4)除法运算输入:A = 11111111,B = 10000000输出:11111111(5)与运算输入:A = 10101010,B = 11001100输出:10001000(6)或运算输入:A = 10101010,B = 11001100输出:11101110(7)非运算输入:A = 10101010输出:01010101(8)异或运算输入:A = 10101010,B = 11001100输出:011001102. 实验分析通过实验,我们成功设计并实现了8位ALU。

计算机组成原理运算器实验—算术逻辑运算实验

计算机组成原理运算器实验—算术逻辑运算实验

实验报告一、实騎名称运算器实騎一算术遐辑运算实騎二、实豔目的1、了解运算器的组成原理。

2、掌握运算器的工作原理。

3、掌握简单运算器的数据传送通路。

4、验证运算功能发生器(74LS181 )的组合助能。

三、实豔设备TDN-CM++it算机组成原理教学实验系统一套,导线若干。

实验中所用的运算器数据通路如图1"所示。

其中两片74LSI81以串行方式沟成8位字长的ALU, ALU的输出经il 一个三态门(74LS245)和数据总线相连。

三态门由ALU-R控制,控制运算器运算的绪果能否送往总线,低电平有效。

为实现双操作数的运算,ALU的两个数据输入端分别由二个锁存器DR1、DR2(由74LS273实现)锁存数据。

要稱数据总线上的数据锁存到DRk DR2中,锁存器的控制S LDDR1和DDR2必须为高电平,同时由T4脉冲到来。

数据开关(“INPUT DEVICE")用来给出参与运算的数摇,经过三态(74LS245 ) 后送人数据总线,三态门由SW-B控朝低电平有效。

数据显示灯(“BUS UNIT-) 已和数播总线相连,用来显示数据总线上的内容。

图中已将用户需要连接的腔制信号用冏IS标明(其他实騎相同,不再说明),其中除T4为脉冲信号外,其它均为电平信号。

由于实騎电路中的时序信号均已连至“W/RUNIT”的相应时序信号引岀端,因此,在进行实验时,只需将“W / R UNIT"的T4接至“STATEUNIT”的fit动开关KK2的输入竭,按动微动开关, 即可获得实酚所需的单脉冲。

ALU运算所需的电平控制信号S3、S2、S1、SO、Cn、M、LDDRk LDDR2、ALU-B、SW-B均由M SWITCH UNIT ”中的二进制数摇开关来模81,其中Cn、ALU—B s SW-B为低电平有效LDDRk LDDR2为高电平有效。

对单总线数据通路,需要分时共享总线,每一时刻只能由一组数弼送往总线。

计算机组成原理实验报告一算术逻辑运算器

计算机组成原理实验报告一算术逻辑运算器

计算机组成原理实验报告⼀算术逻辑运算器算术逻辑运算器⼀.实验⽬的与要求试验⽬的:1、掌握算术运算器单元ALU(74LS181)的⼯作原理。

2、掌握简单运算器的数据传送通道。

3、验算由74LS181等组合逻辑电路组成的运算功能发⽣器运算功能。

4、能够按给定数据,完成实验指定的算术/逻辑运算。

试验要求:按练习的要求输⼊数据和完成相应的操作,将实验结果填⼊表格⼆.实验⽅案1、按实验连线图接好线,仔细检查正确与否,⽆误后才接通电源。

2、⽤⼆进制数据开关分别向DR1寄存器和DR2寄存器置数。

3、通过总线输出DR1寄存器和DR2寄存器的内容。

4、⽐较实验结果和理论值是否⼀致,如果不⼀致,就分析原因,然后重做。

三.实验结果练习⼀表1.1.2练习⼆表1.1.31.实验结果分析●实验结果和理论值⼀致,讲明实验操作过程正确,实验结果准确⽆误。

2.结论●要有理论基础才可以做好实验的每⼀步,所以,平时⼀定要学好理论知识。

3.问题与讨论我们这个⼩组,在做第⼆个实验时就遇到了很多问题,就是我们我⽆论输⼊什么显⽰灯都不变,然后我们就互相讨论,但是还是没办法解决,后来问了⽼师才知道我们插错线。

4.实验总结(1)以前没有做过这种实验,所以实验前我做了充分的预习。

但预习毕竟不是实际操作,经常会在想实际情况会是什么样,在实际操作过程中我遇到了不少的困难,例如我做第⼆个实验时就插错线,幸好在⽼师的帮助下还加上⾃⼰的思考,终于把问题解决掉了。

我觉得,实验前⽼师应该做些⽰范给我们看,这样我们会学得更快。

(2)在做表1.1.4的实验时,不知道怎样查出S3、S2、S1、S0、M、Cn的值,问周围的同学,他们也不知道。

因为这个很重要,直接影响到后⾯的实验,所以请教了⽼师。

经过⽼师的解释后,我顺利地完成了后⾯的实验。

5.思考题1)写出本实验中的各控制端的作⽤。

答:S0 S1 S2 S3(它们共同决定运算器执⾏哪⼀种运算)M(决定是算术运算还是逻辑运算). CN(表⽰有⽆进位) SW-B(输⼊三态门控制“INPUT DEVICE”中的⼋位数据开关D7-D0的数据是否送到数据总线BUS上) ALU-B(输出三态门,控制运算器的运算结果是否送到数据总线BUS)LDDR1 LDDR2 (寄存器,寄存数据)2)在实验中哪些控制端⾼电平有效,哪些低电平有效?答:⾼电平有效(LDDR1 LDDR2)低电平有效(CN ALU-B SW-B)3)在实验正常的输⼊和输出操作中,SW-B和ALU-B为什么不能同时为0的状态?答:ALU-B SW-B都是低电平有效,如果同时为低电平,这将导致数据⼀边输⼊⼀边输出。

运算器原理实验报告

运算器原理实验报告

一、实验目的1. 理解和掌握运算器的组成结构及工作原理;2. 熟悉算术逻辑单元(ALU)的算术运算和逻辑运算功能;3. 掌握运算器中各种控制信号的作用及控制方法;4. 通过实验验证运算器的实际运算功能。

二、实验原理运算器是计算机中执行算术运算和逻辑运算的核心部件。

它主要由算术逻辑单元(ALU)、寄存器、控制单元等组成。

算术逻辑单元负责执行加、减、乘、除等算术运算和与、或、非、异或等逻辑运算。

控制单元根据指令控制运算器的各个部件进行相应的操作。

三、实验设备1. 计算机组成原理实验箱2. 74LS181算术逻辑单元芯片3. 数据输入/输出设备4. 排线若干四、实验步骤1. 按照实验指导书,连接实验箱电路,包括74LS181算术逻辑单元芯片、数据输入/输出设备等。

2. 设置运算器工作模式,包括算术运算模式和逻辑运算模式。

3. 设置算术运算模式,进行加、减、乘、除等算术运算实验。

4. 设置逻辑运算模式,进行与、或、非、异或等逻辑运算实验。

5. 观察实验结果,记录数据。

6. 根据实验结果,分析运算器的工作原理。

五、实验内容及结果1. 算术运算实验(1)加法运算输入两个8位二进制数:A=10101010,B=11001100。

执行加法运算,得到结果:S=11100110。

(2)减法运算输入两个8位二进制数:A=11001100,B=10101010。

执行减法运算,得到结果:S=01010100。

(3)乘法运算输入两个8位二进制数:A=10101010,B=11001100。

执行乘法运算,得到结果:S=111110010010。

(4)除法运算输入两个8位二进制数:A=11001100,B=10101010。

执行除法运算,得到结果:S=00101001。

2. 逻辑运算实验(1)与运算输入两个8位二进制数:A=10101010,B=11001100。

执行与运算,得到结果:S=10001000。

(2)或运算输入两个8位二进制数:A=10101010,B=11001100。

计算机组成原理实验报告算术逻辑单元ALU实验(源代码全)

计算机组成原理实验报告算术逻辑单元ALU实验(源代码全)

计算机组成原理实验报告算术逻辑单元ALU实验(源代码全)算术逻辑单元ALU实验⼀. 实验⽬的1、理解算术逻辑单元ALU的⼯作原理。

2、掌握算术逻辑单元ALU的设计⽅法。

3、验证32位算术逻辑单元ALU的加、减、与、移位等基本功能。

4、选定⼏组数据,完成⼏种算术/逻辑运算。

⼆. 实验设备1、 装有Xilinx Vivado的计算机⼀台。

2、LS-CPU-EXB-002教学系统实验箱⼀套。

三. 实验任务1、学习MIPS指令集,熟知指令类型,了解指令功能和编码,归纳基础的ALU运算指令。

2、归纳确定⾃⼰本次实验中准备实现的ALU运算,要求要求⾄少实现5种ALU运算,包含加减运算,其中减法在内部要转换为加法,见表1-1。

表1-1 ALU的控制信号选择端aluc ALU功能3 2 1 00 0 00 0 10 1 00 1 11 0 01 0 11 1 00 1 1 11 1 1 13、根据如图1-1所⽰的结构框图,设计实验⽅案,并⽤Verilog编写相应代码。

4、 对编写的代码进⾏仿真,得到正确的波形图。

5、将以上设计作为⼀个单独的模块,设计⼀个外围模块去调⽤该模块,如图1-2。

外围模块中需调⽤封装好的LCD触摸屏模块,显⽰ALU 的两个源操作数、操作码和运算结果,并且需要利⽤触摸功能输⼊源操作数。

操作码可以考虑⽤LCD触摸屏输⼊,也可⽤拨码开关输⼊。

6、将编写的代码进⾏综合布局布线,并下载到试验箱中的FPGA板⼦上进⾏演⽰。

四. 实验步骤这⾥给出实验代码,具体的实验步骤请看书alu.vmodule 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)4'b0000: cal = a + b;//加4'b0001: cal = a&b;4'b0010: cal = a^b;4'b0011: cal = b<<a[4:0];4'b0100: cal = a-b;4'b0101: cal = a|b;4'b0110: cal ={b[15:0],16'h0};4'b0111: cal = b>>a[4:0];4'b1111: cal = $signed(b)>>> a[4:0];//算术右移endcaseendfunctionendmodulealu-display.v//************************************************************************* // > ⽂件名: alu_display.v// > 描述:ALU显⽰模块,调⽤FPGA板上的IO接⼝和触摸屏// > 作者 : LOONGSON// > ⽇期 : 2016-04-14//************************************************************************* module alu_display(//时钟与复位信号input clk,input resetn,//后缀"n"代表低电平有效//拨码开关,⽤于选择输⼊数input [1:0] input_sel,//00:输⼊为控制信号(alu_control)//10:输⼊为源操作数1(alu_src1)//11:输⼊为源操作数2(alu_src2)//触摸屏相关接⼝,不需要更改output lcd_rst,output lcd_cs,output lcd_rs,output lcd_wr,output lcd_rd,inout[15:0] lcd_data_io,output lcd_bl_ctr,inout ct_int,inout ct_sda,output ct_scl,output ct_rstn);//-----{调⽤ALU模块}beginreg [3:0] alu_control;// ALU控制信号reg [31:0] alu_src1;// ALU操作数1reg [31:0] alu_src2;// ALU操作数2wire [31:0] alu_result;// ALU结果wire alu_z;alu alu_module(alu alu_module(.aluc(alu_control),.a(alu_src1 ),.b(alu_src2 ),.r(alu_result ),.z(alu_z));//-----{调⽤ALU模块}end//---------------------{调⽤触摸屏模块}begin--------------------// //-----{实例化触摸屏}begin//此⼩节不需要更改reg display_valid;reg [39:0] display_name;reg [31:0] display_value;wire [5:0] display_number;wire input_valid;wire [31:0] input_value;lcd_module lcd_module(.clk(clk ),//10Mhz.resetn(resetn ),//调⽤触摸屏的接⼝.display_valid(display_valid ),.display_name(display_name ),.display_value(display_value ),.display_number(display_number),.input_valid(input_valid ),.input_value(input_value ),//lcd触摸屏相关接⼝,不需要更改.lcd_rst(lcd_rst ),.lcd_cs(lcd_cs ),.lcd_rs(lcd_rs ),.lcd_wr(lcd_wr ),.lcd_rd(lcd_rd ),.lcd_data_io(lcd_data_io ),.lcd_bl_ctr(lcd_bl_ctr ),.ct_int(ct_int ),.ct_sda(ct_sda ),.ct_scl(ct_scl ),.ct_rstn(ct_rstn ));//-----{实例化触摸屏}end//-----{从触摸屏获取输⼊}begin//根据实际需要输⼊的数修改此⼩节,//建议对每⼀个数的输⼊,编写单独⼀个always块//当input_sel为00时,表⽰输⼊数控制信号,即alu_control always @(posedge clk)beginif(!resetn)beginalu_control <=12'd0;endelse if(input_valid && input_sel==2'b00)beginalu_control <= input_value[11:0];endend//当input_sel为10时,表⽰输⼊数为源操作数1,即alu_src1 always @(posedge clk)beginif(!resetn)if(!resetn)beginalu_src1 <=32'd0;endelse if(input_valid && input_sel==2'b10)beginalu_src1 <= input_value;endend//当input_sel为11时,表⽰输⼊数为源操作数2,即alu_src2 always @(posedge clk)beginif(!resetn)beginalu_src2 <=32'd0;endelse if(input_valid && input_sel==2'b11)beginalu_src2 <= input_value;endend//-----{从触摸屏获取输⼊}end//-----{输出到触摸屏显⽰}begin//根据需要显⽰的数修改此⼩节,//触摸屏上共有44块显⽰区域,可显⽰44组32位数据//44块显⽰区域从1开始编号,编号为1~44,always @(posedge clk)begincase(display_number)6'd1 :begindisplay_valid <=1'b1;display_name <="SRC_1";display_value <= alu_src1;end6'd2 :begindisplay_valid <=1'b1;display_name <="SRC_2";display_value <= alu_src2;end6'd3 :begindisplay_valid <=1'b1;display_name <="CONTR";display_value <={20'd0, alu_control};end6'd4 :begindisplay_valid <=1'b1;display_name <="RESUL";display_value <= alu_result;end6'd5 :begindisplay_valid <=1'b1;display_name <="ZF";display_value <= alu_z;enddefault:begindisplay_valid <=1'b0;display_name <=40'd0;display_value <=32'd0;endendcaseend//-----{输出到触摸屏显⽰}end//----------------------{调⽤触摸屏模块}end---------------------//endmodulealu_tb.v代码如下:module testbench;// Inputsreg [31:0] a;reg [31:0] b;reg [3:0] aluc;//outputwire [31:0] r;wire z;//Instantiate the Unit Under Test(UUT)alu uut(.a(a),.b(b),.r(r),.aluc(aluc),.z(z));initial begin// Initialize Inputsa=0;b=0;aluc=0;//Wait 100ns for global reset to finish#100;//Add stimulus hereendalways #10 a=$random;//$random为系统任务,产⽣⼀个随机的32位数always #10 b=$random;//#10表⽰等待10个单位时间(10ns),即每过10ns,赋值⼀个随机的32位数 always #10 aluc={$random}%2;//加了拼接符,{$random}产⽣⼀个⾮负数,除2取余得到0或1 endmodulealu.xdc⽂件如下:set_property PACKAGE_PIN AC19 [get_ports clk]set_property PACKAGE_PIN Y3 [get_ports resetn]set_property PACKAGE_PIN AC22 [get_ports input_sel[0]]set_property PACKAGE_PIN AD24 [get_ports input_sel[1]]set_property IOSTANDARD LVCMOS33 [get_ports clk]set_property IOSTANDARD LVCMOS33 [get_ports resetn]set_property IOSTANDARD LVCMOS33 [get_ports input_sel[1]]set_property IOSTANDARD LVCMOS33 [get_ports input_sel[0]]set_property PACKAGE_PIN J25 [get_ports lcd_rst]set_property PACKAGE_PIN H18 [get_ports lcd_cs]set_property PACKAGE_PIN K16 [get_ports lcd_rs]set_property PACKAGE_PIN L8 [get_ports lcd_wr]set_property PACKAGE_PIN K8 [get_ports lcd_rd]set_property PACKAGE_PIN J15 [get_ports lcd_bl_ctr]set_property PACKAGE_PIN H9 [get_ports {lcd_data_io[0]}]set_property PACKAGE_PIN K17 [get_ports {lcd_data_io[1]}]set_property PACKAGE_PIN J20 [get_ports {lcd_data_io[2]}]set_property PACKAGE_PIN M17 [get_ports {lcd_data_io[3]}]set_property PACKAGE_PIN L17 [get_ports {lcd_data_io[4]}]set_property PACKAGE_PIN L17 [get_ports {lcd_data_io[4]}]set_property PACKAGE_PIN L18 [get_ports {lcd_data_io[5]}]set_property PACKAGE_PIN L15 [get_ports {lcd_data_io[6]}]set_property PACKAGE_PIN M15 [get_ports {lcd_data_io[7]}]set_property PACKAGE_PIN M16 [get_ports {lcd_data_io[8]}]set_property PACKAGE_PIN L14 [get_ports {lcd_data_io[9]}]set_property PACKAGE_PIN M14 [get_ports {lcd_data_io[10]}]set_property PACKAGE_PIN F22 [get_ports {lcd_data_io[11]}]set_property PACKAGE_PIN G22 [get_ports {lcd_data_io[12]}]set_property PACKAGE_PIN G21 [get_ports {lcd_data_io[13]}]set_property PACKAGE_PIN H24 [get_ports {lcd_data_io[14]}]set_property PACKAGE_PIN J16 [get_ports {lcd_data_io[15]}]set_property PACKAGE_PIN L19 [get_ports ct_int]set_property PACKAGE_PIN J24 [get_ports ct_sda]set_property PACKAGE_PIN H21 [get_ports ct_scl]set_property PACKAGE_PIN G24 [get_ports ct_rstn]set_property IOSTANDARD LVCMOS33 [get_ports lcd_rst]set_property IOSTANDARD LVCMOS33 [get_ports lcd_cs]set_property IOSTANDARD LVCMOS33 [get_ports lcd_rs]set_property IOSTANDARD LVCMOS33 [get_ports lcd_wr]set_property IOSTANDARD LVCMOS33 [get_ports lcd_rd]set_property IOSTANDARD LVCMOS33 [get_ports lcd_bl_ctr]set_property IOSTANDARD LVCMOS33 [get_ports {lcd_data_io[0]}]set_property IOSTANDARD LVCMOS33 [get_ports {lcd_data_io[1]}]set_property IOSTANDARD LVCMOS33 [get_ports {lcd_data_io[2]}]set_property IOSTANDARD LVCMOS33 [get_ports {lcd_data_io[3]}]set_property IOSTANDARD LVCMOS33 [get_ports {lcd_data_io[4]}]set_property IOSTANDARD LVCMOS33 [get_ports {lcd_data_io[5]}]set_property IOSTANDARD LVCMOS33 [get_ports {lcd_data_io[6]}]set_property IOSTANDARD LVCMOS33 [get_ports {lcd_data_io[7]}]set_property IOSTANDARD LVCMOS33 [get_ports {lcd_data_io[8]}]set_property IOSTANDARD LVCMOS33 [get_ports {lcd_data_io[9]}]set_property IOSTANDARD LVCMOS33 [get_ports {lcd_data_io[10]}]set_property IOSTANDARD LVCMOS33 [get_ports {lcd_data_io[11]}]set_property IOSTANDARD LVCMOS33 [get_ports {lcd_data_io[12]}]set_property IOSTANDARD LVCMOS33 [get_ports {lcd_data_io[13]}]set_property IOSTANDARD LVCMOS33 [get_ports {lcd_data_io[14]}]set_property IOSTANDARD LVCMOS33 [get_ports {lcd_data_io[15]}]set_property IOSTANDARD LVCMOS33 [get_ports ct_int]set_property IOSTANDARD LVCMOS33 [get_ports ct_sda]set_property IOSTANDARD LVCMOS33 [get_ports ct_scl]set_property IOSTANDARD LVCMOS33 [get_ports ct_rstn]拨码开关的连接,通过AC22、AD24拨码开关来控制输⼊SRC_1,SRC_2,CONTR的值五.结果记录及分析(1) 仿真波形。

计算机组成原理实验实验一运算器实验(一)算术逻辑运算实验一

计算机组成原理实验实验一运算器实验(一)算术逻辑运算实验一

计算机组成原理实验实验一运算器实验(一)算术逻辑运算实验一、实验目的1、掌握简单运算器的数据传送通路。

2、验证运算功能发生器(74LS181)的组合功能。

二、实验原理1、实验中所用的运算器数据通路图1所示。

三、实验步骤1、用二进制数码开关向DR1和DR2寄存器置数。

具体操作步骤图2所示。

2、验证74LS181的算术运算和逻辑运算功能(二) 进位控制实验一、实验目的1、验证带进位控制算术运算功能发生器的功能。

2、按指定数据完成几种算术运算。

二、实验原理实验原理图如图3所示。

三、实验步骤1、用二进制数码开关向DR1和DR2寄存器置数向DR1存入01010101,向DR2存入10101010。

具体操作步骤图4所示。

图2图3 进位控制实验原理图2、进位标志清零S3 S2 S1 S0 M 的状态置为00000,AR 状态置为0,按动微动开关KK2。

进位标志指示灯CY 亮时表示无进位,进位标志为“0” ;指示灯CY 灭时表示有进位,进位标志为“1”。

3、验证带进位运算及进位锁存功能时,使Cn=1, Ar=0, SW-B=1。

T4脉冲到来时,将本次运算的进位结果锁存到进位锁存器中。

注意观察进位标志显示灯CY 。

(三) 移位运算实验一、实验目的验证移位运算控制的组合功能。

二、实验原理移位运算实验原理图如图5所示, 74LS299功能表如表1所示图4表1 74LS299功能表三、实验步骤1、移位操作:(1)置数,具体步骤如图6所示。

2、移位,参照功能表改变S0 S1 T4 299-B 的状态,按动微动开关KK2,观察移位的结果。

实验二 存储器实验一、实验目的掌握静态随机存储器的工作特性及数据的读写方法。

二、实验原理图5 移位运算实验原理图图6实验所用的静态存储器电路原理图如图7所示。

三、实验步骤1、写操作。

给存储器的00、01、02、03、04地址单元中分别写入数据11、12、13、14、15,具体操作步骤图8所示(以向0号单元写入数据11为例)。

算术逻辑单元实验-1参考

算术逻辑单元实验-1参考

武汉工商学院实验报告系别:计算机科学与技术专业:班级:学号:姓名:分数:指导教师:林孝平朱剑玫课程名:计算机组成原理实验名称:算术逻辑运算单元实验(1)实验目的1、掌握简单运算器的数据传输方式2、掌握74LS181的功能和应用(2)实验要求完成算术、逻辑运算实验。

按照实验步骤完成实验项目,了解算术逻辑运算单元的运行过程。

(3) ALU单元实验硬件构成1、运算器由2片(?逻辑的)74LS181构成8位字长的ALU单元。

2、2片74LS374(8个上升沿D-E触发器)作为2个数据锁存器(DR1、DR2),8芯插座ALU-IN作为数据输入端。

把ALU-IN(8芯的盒型插座)与CPT-B 板上的二进制开关单元中J01插座相连(对应二进制开关H16~H23)3、运算器的数据输出由一片74LS244(输出缓冲器,由8个单向3态门组成)来控制,8芯插座ALU-OUT作为数据输出端,可通过短8芯扁平电缆与数据总线上的DJ2相连,把数据输出端连接到数据总线上。

(4) ALU单元的工作原理数据输入锁存器DR1的EDR1为低电平,并且D1CK有上升沿时,把来自数据总线的数据打入锁存器DR1。

同样使EDR2为低电平、D2CK有上升沿时把数据总线上的数据打入数据锁存器DR2。

算术逻辑运算单元的核心是由2片74LS181组成,它可以进行2个8位二进制数的算术逻辑运算,74LS181的各种工作方式可通过设置其控制信号来实现(S0、S1、S2、S3、M、CN)。

当实验者正确设置了74LS181的各个控制信号,74LS181会运算数据锁存器DR1、DR2内的数据。

由于DR1、DR2已经把数据锁存,只要74LS181的控制信号不变,那么74LS181的输出数据也不会发生改变。

输出缓冲器采用74LS244(8个单向3态门组成)。

控制信号ALU-O=0时,74LS244导通,74LS181的运算结果输出到数据总线;ALU-O=1时,74LS244为高阻。

计算机组成原理实验exp_1(运算器──算术逻辑运算器实验)

计算机组成原理实验exp_1(运算器──算术逻辑运算器实验)

实验一运算器──算术逻辑运算器实验一实验目的(1) 掌握算术逻辑运算单元(ALU)的工作原理;(2) 熟悉简单运算器的数据传送通路;(3) 验证4位运算功能发生器功能(74181)的组合功能。

二实验设备TDN-CM++计算机组成原理教学实验系统一台,排线若干。

三实验原理图1运算器数据通路实验中所用到的运算器数据通路如图1所示。

其中运算器由两片74181以并/串形式构成8位字长的ALU。

运算器的输出经过一个三态门(74245)和数据总线相连,运算器的两个数据输入端分别由两个锁存器(74373)锁存,锁存器的输入连接至数据总线,数据开关INPUT DEVICE用来给出参与运算的数据,并经过一个三态门(74245)和数据总线相连,数据显示灯“BUS UNIT”已和数据总线相连,用来显示数据总线内容。

图中已将用户需要连接的控制信号用圆圈标明(其他实验相同,不再说明),其中除T4为脉冲信号,其它均为电平信号。

由于实验电路中的时序信号均已连至W/R UNIT的相应时序信号引出端,因此,在进行实验时,只需将W/R UNIT的T4接至STA TE UNIT的微动开关KK2的输出端,按动微动开关,即可获得实验所需的单脉冲,而S3,S2,S1,S0,C n,LDDR1,LDDR2,ALU-B,SW-B各电平控制信号用SWITCH UNIT中的二进制数据开关来模拟,其中C n,ALU-B,SW-B为低电平控制有效,LDDR1,LDDR2为高电平有效。

四实验步骤(1)按图2连接实验线路,仔细查线无误后,接通电源。

(2)用二进制数码开关向DR1和DR2寄存器置数。

具体操作步骤如::校验DR1和DR2中存放的数据是否正确,具体操作为:关闭数据输入三态门(SW-B=1),打开ALU输出三态门(ALU-B=0),当置S3,S2,S1,S0,M为11111时,总线指示灯显示DR1中的数,而置成10101时,总线指示灯显示DR2中的数。

算术逻辑运算器实验

算术逻辑运算器实验

一、算术逻辑运算器1.实验目的与要求:(1)掌握算术逻辑运算单元ALU(74LS181)的工作原理。

(2)掌握简单运算器的数据传送通道。

(3)验算有74LS1818等组合逻辑电路组成的运算功能发生器运输功能。

(4)能够按给定的数据,完成试验指定的算术运算/逻辑运算。

2.实验方案:(1)理解本次试验的原理:8位数据开关D7-00用来输入数据,数据在SW-B输入三态门控制和LDDR1和LDDR2控制下,通过总线存储到DR1和DR2,SW-B是低电平时有效,LDDR1和LDDR2高电平时有效;S1、S2、S3、S4、M、CN、为ALU运算选择控制端,具体决定ALU做哪种运算(参照书中表格);ALU-B为输出三态门控制端,控制运算器的数据是否输送到总线上,低电平时有效。

(2)试验方法和步骤:按照算术逻辑运算实验连线图在仪器上接好线,注意应先接好线在打开电源开关。

根据书本完成试验的测试,并熟悉ALU的特性、SW-B、LDDR1和LDDR2在输入端的控制作用,ALU-B在输出端的控制作用,会设置S1、S2、S3、S4、M、CN控制状态完成书中给出的练习练习一:将不同的数据存到不同的寄存器中练习二:验证表格中给出的结果的正误练习三:验证不同的算术运算操作的正误练习四:设计求补指令3.实验结果和数据处理:4.结论(1)S1、S2、S3、S4、M、CN控制了ALU实现的运算功能/逻辑功能。

00001任意时实现了对DR1逻辑非的功能,而01011时则实现了对DR2的逻辑非的功能。

(2)当M为高电位时实现逻辑运算,M为低电位时实现算术运算。

(3)通过不同电路的配合,ALU能实现原来没有的功能。

比如求原码的补码等。

5.问题与讨论及实验总结问题:ALU(74LS181)的算术操作都是无符号的运算,对于带符号的操作,应该怎样实现通过做本次试验,我了解到ALU有了的工作原理及其基本操作,会用ALU实现一些不同的功能,并且了解了一些数据传送通道的知识,基本达到了本次试验目的。

1:算术逻辑运算实验

1:算术逻辑运算实验

班级:学号:姓名:实验项目一:算术逻辑运算实验一、实验目的:1.掌握简单运算器的组成以及数据传送通路。

2.验证运算功能发生器(74LS181)的组合功能。

3.按给定的数据完成几种指定的算术逻辑运算。

二、实验重点:1.数据的传送2.运算功能发生器(74LS181)的引脚功能的应用三、实验难点:1.工作过程的理解四、实验任务:1.计算74(加)262.计算74(减)263.计算-74(加)264.计算74(减)-265.计算74(与)266.计算74(或)26*7.完成《实验指导书》P7表1-2中指定的运算(选做)五、实验原理:实验中所用的运算器数据通路如上图所示。

其中运算器由两片74LS181以并/串形式构成8位字长的ALU。

运算器的两个数据输入端分别由两个锁存器(74LS273)锁存,锁存器的输入连至数据总线,数据输入开关用来给出参与运算的数据,并经过一三态门(74LS245)和数据总线相连。

运算器的输出经过一个三态门(74LS245)和数据总线相连。

数据显示灯已和数据总线相连,用来显示数据总线内容。

表1-1 74LS181功能表任务1:①连线:②开关复位:③打开电源,启动:待连线与开关复位都做好后,打开电源,启动④初始化:SW_G=1,CLR=1,ALU_G=1,S0=S1=S2=S3=M=CN=1,LDDR1=LDDR2=0⑤输入数据A:在输入单元输入01001010,将SW_G置为0,观察总线指示灯是否显示为01001010,然后将LDDR1置为1,并按下控制台单元的START按键,接着把LDDR1还原为0,SW_G还原为1⑥输入数据B:在输入单元输入00011010,将SW_G置为0,观察总线指示灯是否显示为00011010,然后将LDDR2置为1,并按下控制台单元的START按键,接着把LDDR2还原为0,SW_G还原为1⑦计算:将S0、S1、S2、S3、M、CN分别置为1、0、0、1、0、1,再将ALU_G置为0,观察总线指示灯的显示结果⑧输出结果:总线指示灯的显示结果为01100100,与实际结果相符任务2:①②③④同上⑤输入数据A:在输入单元输入01001010,将SW_G置为0,观察总线指示灯是否显示为01001010,然后将LDDR1置为1,并按下控制台单元的START按键,接着把LDDR1还原为0,SW_G还原为1⑥输入数据B:在输入单元输入11100110,将SW_G置为0,观察总线指示灯是否显示为11100110,然后将LDDR2置为1,并按下控制台单元的START按键,接着把LDDR2还原为0,SW_G还原为1⑦计算:将S0、S1、S2、S3、M、CN分别置为1、0、0、1、0、1,再将ALU_G置为0,观察总线指示灯的显示结果⑧输出结果:总线指示灯的显示结果为00110000,与实际结果相符任务3:①②③④同上⑤输入数据A:在输入单元输入10110110,将SW_G置为0,观察总线指示灯是否显示为10110110,然后将LDDR1置为1,并按下控制台单元的START按键,接着把LDDR1还原为0,SW_G还原为1⑥输入数据B:在输入单元输入00011010,将SW_G置为0,观察总线指示灯是否显示为00011010,然后将LDDR2置为1,并按下控制台单元的START按键,接着把LDDR2还原为0,SW_G还原为1⑦计算:将S0、S1、S2、S3、M、CN分别置为1、0、0、1、0、1,再将ALU_G置为0,观察总线指示灯的显示结果⑧输出结果:总线指示灯的显示结果为11010000,与实际结果相符任务4:①②③④同上⑤输入数据A:在输入单元输入01001010,将SW_G置为0,观察总线指示灯是否显示为01001010,然后将LDDR1置为1,并按下控制台单元的START按键,接着把LDDR1还原为0,SW_G还原为1⑥输入数据B:在输入单元输入00011010,将SW_G置为0,观察总线指示灯是否显示为00011010,然后将LDDR2置为1,并按下控制台单元的START按键,接着把LDDR2还原为0,SW_G还原为1⑦计算:将S0、S1、S2、S3、M、CN分别置为1、0、0、1、0、1,再将ALU_G置为0,观察总线指示灯的显示结果⑧输出结果:总线指示灯的显示结果为01100100,与实际结果相符任务5:①②③④同上⑤输入数据A:在输入单元输入01001010,将SW_G置为0,观察总线指示灯是否显示为01001010,然后将LDDR1置为1,并按下控制台单元的START按键,接着把LDDR1还原为0,SW_G还原为1⑥输入数据B:在输入单元输入00011010,将SW_G置为0,观察总线指示灯是否显示为00011010,然后将LDDR2置为1,并按下控制台单元的START按键,接着把LDDR2还原为0,SW_G还原为1⑦计算:将S0、S1、S2、S3、M分别置为1、1、0、1、1,再将ALU_G置为0,观察总线指示灯的显示结果⑧输出结果:总线指示灯的显示结果为00001010,与实际结果相符任务6:①②③④同上⑤输入数据A:在输入单元输入01001010,将SW_G置为0,观察总线指示灯是否显示为01001010,然后将LDDR1置为1,并按下控制台单元的START按键,接着把LDDR1还原为0,SW_G还原为1⑥输入数据B:在输入单元输入00011010,将SW_G置为0,观察总线指示灯是否显示为00011010,然后将LDDR2置为1,并按下控制台单元的START按键,接着把LDDR2还原为0,SW_G还原为1⑦计算:将S0、S1、S2、S3、M分别置为0、1、1、1、1,再将ALU_G置为0,观察总线指示灯的显示结果⑧输出结果:总线指示灯的显示结果为01011010,与实际结果相符七、实验总结:—开始实验的时候,对设备不熟练,不了解各控制端的作用,在听了老师的讲解,初步了解设备各部分的功能,再结合PPT上的实验操作步骤,才成功连接好了线路。

计算机组成原理带进位算术逻辑运算单元alu设计实验

计算机组成原理带进位算术逻辑运算单元alu设计实验

《计算机组成原理》课程实验报告实验名称带进位算术逻辑运算单元ALU设计实验实验序号 2姓名系院专业班级学号实验日期指导教师成绩一、实验目的1、验证带进位控制的算术运算功能发生器的功能;2、按指定数据完成几种指定的算术运算。

二、实验内容与要求在实验4-1的基础上增加进位控制电路,将运算器ALU181的进位位送入D锁存器,由T4和CN控制其写入,在此,T4是由键5产生的脉冲信号,这时,CN的功能是电平控制信号(高电平时,CN有效),控制是否允许将进位信号co加入下一加法周期的最低进位位,从而可实现带进位控制运算。

三、实验设备地点:实验实训中心硬件环境:windows软件环境:quartus四、实验步骤1、根据电路图图4-51和波形图图4-52,首先使键5(控制T4)和键7(控制CN)=0;键8(控制M)和键3(控制A0_B1)=1;连续按键6,使产生9个脉冲,这时数码管8显示9(作加法运算);再用键2,键1输入加数9DH(数码管4/3显示9D);2、按键3=0,再用键2,键1输入被加数E5H(数码管4、3、2、1分别显示加数和被加数);再将键8(M)置0,使ALU作算术运算,这时可以从数码管6,5上看到9DH+E5H=82H(低8位和);③先将键7(CN)置为1(允许锁存ALU的进位),再用键5(T4)产生一个正脉冲,就能将进位锁入D触发器中:数码管7将显示1,表示加法有进位,并被锁;同时可以看到此进位被累加,使数码管6,5=83H。

④置键8=1,在实验系统上作逻辑运算方面的实验,给出相应的仿真波形图;⑤利用带进位控制,控制T4,分别由低到高输入3个8位加数和被加数,计算24位加法:7AC5E9 H+ BD5AF8H = ?最后按照表4-6完成实验,记录实验数据,给出对应仿真波形图。

实验原理图:五、实验结果与分析1.测试数据及结果带进位的控制的ALU 的仿真波形:带进位ALU 实验数据表:选择端 高电平作用数据S3 S2 S1 S0 M=H M=L 算术操作逻辑功能Cn=L (无进位)Cn=H (有进位)0 0 0 0 A F =A F = 1加A F =0 0 0 1 B A F +=B A F += )(B A F +=加10 0 1 0 B A F = B A F +=B A F +=+10 0 1 1 0=F=F 减1(2的补码)0=F0 1 0 0 AB F =B A A F 加=B A A F 加=加10 1 0 1 B F = )(B A F +=加B A)(B A F +=加B A +10 1 1 0 B A F ⊕= B A F 减=1减减B A F =0 1 1 1 B A F = B A F +=1)(减B A F +=1 0 0 0 B A F +=AB A F 加= AB A F 加=加1 1 0 0 1B A F ⊕=B A F 加=B A F 加=加11 0 1 0 B F = AB B A F )加(+=AB B A F 加)(+=加11 0 1 1 AB F = AB F =1减AB F =1 1 0 0 1=F A A F 加=*1加加A A F = 1 1 0 1 B A F += A B A F )加(+= A B A F )加(+=加1 1 1 1 0 B A F += A B A F )加(+=A B A F )加(+=加11 1 1 1A F =A F = 1减A F =移位逻辑运算实验原理图:2.实验中遇到的问题及解决办法 无3.实验中尚未解决的问题,不足之处以及改进设想等 无六、实验成绩。

计算机组成原理实验报告一 算术逻辑运算器

计算机组成原理实验报告一  算术逻辑运算器

算术逻辑运算器一.实验目的与要求试验目的:1、掌握算术运算器单元ALU(74LS181)的工作原理。

2、掌握简单运算器的数据传送通道。

3、验算由74LS181等组合逻辑电路组成的运算功能发生器运算功能。

4、能够按给定数据,完成实验指定的算术/逻辑运算。

试验要求:按练习的要求输入数据和完成相应的操作,将实验结果填入表格二.实验方案1、按实验连线图接好线,仔细检查正确与否,无误后才接通电源。

2、用二进制数据开关分别向DR1寄存器和DR2寄存器置数。

3、通过总线输出DR1寄存器和DR2寄存器的内容。

4、比较实验结果和理论值是否一致,如果不一致,就分析原因,然后重做。

三.实验结果练习一表1.1.2练习二表1.1.31.实验结果分析●实验结果和理论值一致,讲明实验操作过程正确,实验结果准确无误。

2.结论●要有理论基础才可以做好实验的每一步,所以,平时一定要学好理论知识。

3.问题与讨论我们这个小组,在做第二个实验时就遇到了很多问题,就是我们我无论输入什么显示灯都不变,然后我们就互相讨论,但是还是没办法解决,后来问了老师才知道我们插错线。

4.实验总结(1)以前没有做过这种实验,所以实验前我做了充分的预习。

但预习毕竟不是实际操作,经常会在想实际情况会是什么样,在实际操作过程中我遇到了不少的困难,例如我做第二个实验时就插错线,幸好在老师的帮助下还加上自己的思考,终于把问题解决掉了。

我觉得,实验前老师应该做些示范给我们看,这样我们会学得更快。

(2)在做表1.1.4的实验时,不知道怎样查出S3、S2、S1、S0、M、Cn的值,问周围的同学,他们也不知道。

因为这个很重要,直接影响到后面的实验,所以请教了老师。

经过老师的解释后,我顺利地完成了后面的实验。

5.思考题1)写出本实验中的各控制端的作用。

答:S0 S1 S2 S3(它们共同决定运算器执行哪一种运算)M(决定是算术运算还是逻辑运算). CN(表示有无进位) SW-B(输入三态门控制“INPUT DEVICE”中的八位数据开关D7-D0的数据是否送到数据总线BUS上) ALU-B(输出三态门,控制运算器的运算结果是否送到数据总线BUS)LDDR1 LDDR2 (寄存器,寄存数据)2)在实验中哪些控制端高电平有效,哪些低电平有效?答:高电平有效(LDDR1 LDDR2)低电平有效(CN ALU-B SW-B)3)在实验正常的输入和输出操作中,SW-B和ALU-B为什么不能同时为0的状态?答:ALU-B SW-B都是低电平有效,如果同时为低电平,这将导致数据一边输入一边输出。

计算机组成原理实验指导书-8位算术逻辑运算实验

计算机组成原理实验指导书-8位算术逻辑运算实验

从本页开始至最后一页,要求每人必须打印从本页开始至最后一页,要求每人必须打印从本页开始至最后一页,要求每人必须打印从本页开始至最后一页,要求每人必须打印8位算术逻辑运算实验一、实验目的1、掌握算术逻辑运算器单元ALU(74LS181)的工作原理。

2、掌握简单运算器的数据传送通路组成原理。

3、验证算术逻辑运算功能发生器74LSl8l的组合功能。

4、按给定数据,完成实验指导书中的算术/逻辑运算。

二、实验内容1、实验原理实验中所用的运算器数据通路如图1.1所示。

其中运算器由两片74LS181以并/串形成8位字长的ALU构成。

运算器的输出经过一个三态门74LS245 (U33)到ALUO1插座,实验时用8芯排线和内部数据总线BUSD0~D7插座BUSl~6中的任一个相连,内部数据总线通过LZDO~LZD7显示灯显示;运算器的两个数据输入端分别由二个锁存器74LS273(U29、U30)锁存,两个锁存器的输入并联后连至插座ALUBUS,实验时通过8芯排线连至外部数据总线EXD0~D7插座EXJl~EXJ3中的任一个;参与运算的数据来自于8位数据开并KD0~KD7,并经过一三态门74LS245(U51)直接连至外部数据总线EXD0~EXD7,通过数据开关输入的数据由LD0~LD7显示。

图1.1中算术逻辑运算功能发生器74LS18l(U3l、U32)的功能控制信号S3、S2、Sl、S0、CN、M并行相连后连至SJ2插座,实验时通过6芯排线连至6位功能开关插座UJ2,以手动方式用二进制开关S3、S2、S1、S0、CN、M来模拟74LSl8l(U31、U32)的功能控制信号S3、S2、S1、S0、CN、M;其它电平控制信号LDDRl、LDDR2、ALUB’、SWB’以手动方式用二进制开关LDDRl、LDDR2、ALUB、SWB 来模拟,这几个信号有自动和手动两种方式产生,通过跳线器切换,其中ALUB’、SWB’为低电平有效,LDDRl、LDDR2为高电平有效。

ALU实验报告

ALU实验报告

算术逻辑单元实验报告一、实验目的1、掌握运算器的工作原理。

2、验证运算器的功能。

二、实验原理算术逻辑单元的主要功能是对二进制数据进行定点算术运算、逻辑运算和各种移位操作。

算术运算包括定点加减乘除运算;逻辑运算主要有逻辑与、逻辑或、逻辑异或和逻辑非操作。

ALU通常有两个数据输入端A和B,一个数据输出端Y 以及标志位等。

三、实验要求1、实验设计目标设计一个16位算术逻辑单元,满足以下要求。

(1)16位算术逻辑单元能够进行下列运算:加法、减法、加1、减1、与、或、非和传送。

用3位运算操作码OP[2..0]进行运算,控制方式如下表所示。

(2)设立两个标志寄存器Z和C。

当复位信号reset为低电平时,将这两个标志寄存器清零。

当运算结束后,在时钟clk的上升沿改变标志寄存器Z和C的值。

运算结果改变标志寄存器C、Z的情况如下:加法、减法、加1、减1运算改变Z、C;与、或、非运算改变Z,C保不变;传送操作保持Z、C不变。

因此在运算结束Z、C需要两个D触发器保存。

(3)为了保存操作数A和B,设计两个16位寄存器A和B。

当寄存器选择信号sel=0时,如果允许写信号write=1.,则在诗中clk的上升沿将数据输入dinput送入A 寄存器;当寄存器选择信号sel=1时,如果允许写信号write=1.,则在诗中clk的上升沿将数据输入dinput送入B寄存器。

(4)算术逻辑单元用一个设计实体完成。

2.顶层设计实体的引脚要求(1)clk对应试验台上的时钟(单脉冲)。

(2)reset对应实验台上的CPU复位信号CPU-RST。

(3)数据输入dinput对应试验台开关SD15~SD0。

(4)允许写信号write对应试验台开关SA5.(5)OP[2..0]对应试验台开关SA2~SA0.(6)寄存器选择信号sel对应试验台开关SA4.(7)16为运算结果result对应实验台上的指示灯A15~A0.(8)Z、C标志位对应试验台上的Z、C指示灯。

湘潭大学计算机原理 实验一 算术逻辑单元ALU实验报告

湘潭大学计算机原理 实验一 算术逻辑单元ALU实验报告

计算机原理与设计实验报告实验一算术逻辑单元ALU姓名: XXX学号: 2013551728班级: 13级软件工程2班实验日期: 2014年 10 月22 日一.实验目的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-1 ALU的运算功能注1、* 表示每一位都移至下一更高有效位, “+”是逻辑或,“加”是算术加三.实验步骤(1)设计ALU元件ALU元件设计代码:module 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)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=b<<a[4:0];4'b0111: cal=b>>a[4:0];4'b1111: cal=$signed(b)>>>a[4:0];endcaseendfunctionendmodule(2)以原理图方式建立顶层文件工程原理图如下:(3)查看波形图波形图如下:(4)分配引脚结构图如下:引脚分配表如下:四.实验任务(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、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

计算机原理与设计
实验报告
实验一算术逻辑单元ALU
姓名: XXX
学号: 20XX551728
班级: 13级软件工程2班
实验日期: 20XX年 10 月22 日
一.实验目的
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-1 ALU的运算功能
注1、* 表示每一位都移至下一更高有效位, “+”是逻辑或,“加”是算术加
三.实验步骤
(1)设计ALU元件
ALU元件设计代码:
module 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)
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=b<<a[4:0];
4'b0111: cal=b>>a[4:0];
4'b1111: cal=$signed(b)>>>a[4:0];
endcase
endfunction
endmodule
(2)以原理图方式建立顶层文件工程
原理图如下:
(3)查看波形图波形图如下:
(4)分配引脚结构图如下:
引脚分配表如下:
四.实验任务
(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元件,了解其Verilog HDL描述。

(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设置=1(复位)时,数码管7/6/5=100(Z=1);
键KEY6控制时钟SCLK,设置aluc[3..0]=0~F,KEY7设置clr=0或clr=1,验证ALU 的逻辑运算功能,并记录实验数据。

表1-2 DA[7..0],DB[7..0]设置值检查
表1-3给定了寄存器DRl=DA[7..0]和DR2=DB[7..0]的数据(十六进制),要求根据此数据对照逻辑功能表所得的理论值(要求课前完成)与实验结果值进行比较(均采用正逻辑0)。

表1-3
四.实验心得
这次实验总体难度并不大,较难的地方是由于第一次接触Quartus这个软件,所以刚开始在应用上出现了很多问题,比如不知道该如何封装元件、如何测试波形、如何设置引脚等等。

为了解决这样的问题我上网搜索了很多资料,也请教了老师和同学,最终学会了这些,让我受益很大。

相关文档
最新文档