吉林建工

更新时间:2024-06-02 20:19:01 阅读量: 综合文库 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

吉林建筑工程学院

电气与电子信息工程学院

微机原理技术课程设计报告

设计题目: 算术逻辑运算 专业班级: 电子信息科学与技术081 学生姓名: 颜晓永 学 号: 10308132 指导教师: 王蓉晖 设计时间: 2011.07.27-2011.07.08

教师评语: 成绩 评阅教师 0 日期

目录

第1章 绪论·············································4

1.1 1.2 1.3

实验目的·····································4 算术逻辑单元的作用···························4 算术逻辑单元的发展状况·······················4

第2章 算术逻辑运算系统设计·····························6 2.1 算术逻辑运算硬件设计 ··························6 2.2 算术逻辑运算软件设计 ··························9 第3章实验验证···········································12 3.1不带进位位逻辑或运算实验·························12 3.2 不带进位位加法运算实验·························13 实验总结 ················································16 参考文献 ···········································16

1

摘要:

算术逻辑单元是进行整数运算的结构。现阶段是用电路来实现,应用在电脑芯片中。

在计算机中,算术逻辑单元(ALU)是专门执行算术和逻辑运算的数字电路。ALU是计算机中央处理器的最重要组成部分,甚至连最小的微处理器也包含ALU作计数功能。在现代CPU和GPU处理器中已含有功能强大和复杂的ALU;一个单一元件也可能含有ALU。

ALU的输入是要进行操作的数据(称为操作数)以及来自控制单元的指令代码,用来指示进行哪种运算。它的输出即为运算结果。 在许多设计中ALU也接收或发出输入或输出条件代码到(或来自)状态寄存器。这些代码用来指示一些情况,比如进位或借位、溢出、除数为零等。

ALU必须使用与数字电路其他部分使用同样的格式进行数字处理.对现代处理器而言,几乎全都使用二进制补码表示方式。早期的计算机曾使用过很多种数字系统,包括反码、符号数值码,甚至是十进制码,每一位用十个管子。 以上这每一种数字系统所对应的ALU都有不同的设计,而这也影响了当前对二进制补码的优先选择,因为二进制补码能简化ALU加法和减法的运算。 一个简单的能进行与或非和加运算的2位ALU。

关键字:算术逻辑单元、处理器、数字系统、运算

2

Abstract:

The arithmetic logic unit is an integer structure. At present is to realize with circuit, and is applied to the computer chip.

In computers, the arithmetic logic unit (ALU) is specially perform arithmetic and logical operations digital circuits. The ALU is computer of the CPU is the most important part, even the smallest microprocessors also contains the ALU be count function. In the modern CPU and GPU processors already contains powerful and complex ALU; A single components may also contain the ALU.

The ALU must use and digital circuit other parts used the same format digital processing of modern processor. Concerned, almost all use binary complement way said. Early computer ever use very DuoZhong digital systems, including FanMa, numerical code, even symbols decimal code, every one of the ten a tube. Above this every digital system of the corresponding ALU has a different design, and this also influence the complement of binary choice of priority, because the binary complement can simplify the ALU addition and subtraction computation. A simple can and or not and add operation two ALU.

Key words: the arithmetic logic unit, processor, digital system, operation

3

第1章:绪论

1.1实验目的:了解算术逻辑单元的构成、功能及其发展。掌握简单运算器的数据传输方式,掌握74LS181的功能和应用。

1.2算术逻辑单元单元的作用: :在计算机中,算术逻辑单元(ALU)是专门执行算术和逻辑运算的数字电路。ALU是计算机中央处理器的最重要组成部分,甚至连最小的微处理器也包含ALU作计数功能。在现代CPU和GPU处理器中已含有功能强大和复杂的ALU;一个单一元件也可能含有ALU。

绝大部分计算机指令都是由ALU执行的。ALU从寄存器中取出数据,数据经过处理将运算结果存入ALU输出寄存器中。其他部件负责在寄存器与内存间传送数据。 控制单元控制着ALU,通过控制电路来告诉ALU该执行什么操作。 算术逻辑单元可以完成以下运算∶ 整数算术运算、位逻辑运算、移位运算。

图1-1 CPU内部结构图

1.3算术逻辑单元的发展现状:

1945年数学家冯诺伊曼在一篇介绍被称为EDVAC的一种新型电脑的基础构成的报告中提出ALU的概念。 早期发展

1946年,冯诺伊曼与同事合作为普林斯顿高等学习学院(IAS)设计计算机。随后IAS计算机成为后来计算机的原形。在论文中,冯诺伊曼提出他相信计算机中所需的部件,其中包括ALU。 冯诺伊曼写到,ALU是计算机的必备组成部分,因为已确定计算机一定要完成基本的数学运算,包括加减乘除。于是他相信「(计算机)应该含有专门完成此类运算的部件。

4

1992年美国DEC公司推出的ALPHA21064处理器中,率先采用了单周期延迟的算术逻辑单元。该部件为64位结构,采用0.75um的COMS工艺实现,用于时钟频率为200MHz的处理器。

香港中文大学电子工程系曾研究出16位流水线结构的算术逻辑部件,该部件采用一种新颖的异步流水线技术。采用0.6um的CMOS工艺制造,可应用在370MHz的处理器中。

1993年日本日立公司研究采用双传输管逻辑实现32位算术逻辑单元,采用0.25um的COMS工艺,2.5V电压。该部件延时为1.5ns。

2001年Intel公司研制的算术逻辑单元部件,在0.18um的CMOS工艺下延迟紧为482ps。由于采用了先进的结构和绝缘体硅技术,使得性能有很大的提升的同时又降低功耗。

2004年,Renesas公司和IBM公司研究出一种双阱双电压的64位算术逻辑单元,由于采用双阱双电压的技术,延迟和功耗大大降低。该部件可达到1.16GHz的频率。

2005年,Intel公司推出的Pentium和Xeon处理器的算术逻辑单元,采用90nm工艺,在进行64位运算时频率可达4GHz。同时,它还可以进行32位运算,频率可到7GHz。由于采用先进的90nm工艺,双电源电压技术,独特的逻辑和电路结构等,该部件达到了非常高的性能。

5

第2章: 系统设计

2.1硬件设计:运算器由两片74LS181构成8位字长的ALU单元。2片74LS374作为2个数据锁存器(DR1、DR2),8芯插座ALU-IN作为数据输入端,可通过短8芯扁平电缆把数据输入端连接到数据总线上。运算器的数据输入端由一片74LS244来控制,8芯插座ALU-OUT作为数据输出端,可通过短8芯扁平电缆把数据输出端连接到数据总线上。

ALU单元的控制原理:数据输入锁存器的DR1的EDR1为低电平,并且D1CK有上升沿时,把来自数据 总线的数据打入锁存器DR1。同样使EDR2为低电平、D2CK有上升沿时把数据总线上的数据打入数据锁存器DR2。. 算术逻辑单元的核心是由两片74LS181组成,它可以进行两个8位二进制数的算术逻辑运算。74 LS181的各种作方式可通过设置其控制信号来实现(S0、S1、S2、S3、M、CN)。当实验者正确设置了74LS181的各个控制信号,74LS181会运算数据锁存器DR1、DR2内的数据。由于DR1、DR2已经把数据锁存,只要74LS181的控制信号不变,那么74LS181输出数据不会发生改变。

输出缓冲器采用74LS244,当控制信号ALU-O为低电平时,74LS244导通,把74LS181的运算结果输出到数据总线;当ALU-O为高电平时,74LS181的输出为高阻。

表2-1控制信号说明:

信号名称 EDR1 EDR2 DR1CK DR2CK S0~S3 M CN CCK ALU-O

作用 选通DR1寄存器 选通DR2寄存器 DR1寄存器工作脉冲 DR2寄存器工作脉冲 74LS181工作方式选择 选择逻辑单元或算术运算 有无进位输入 进位寄存器的工作脉冲 74LS181计算结果输出至总线 有效电平 低电平有效 低电平有效 上升沿有效 上升沿有效 上升沿有效 低电平有效 6

图2-1 74LS374引脚图

图2-2 74LS244引脚图

7

图2-3 74LS181应引脚图

表2-2 74LS181的逻辑

方式 0000 0001 0010 0011 0100 0101 0110 0111 1000 1001 1010 1011 M=1的逻辑运算 F=/A F=/(A+B) F=/AB F=0 F=/(AB) F=/B F=A⊕B F=A/B F=/A+B F=/(A⊕B) F=B F=AB M=0的算术运算 CN=1(无进位) F=A F=A+B F=A+/B F=减1 F=A加A/B F=(A+B)加A/B F=A减B减1 F=A/B减1 F=A加AB F=A加B F=(A+/B)加AB F=AB减1 8

S3 S2 S1 S0 逻辑运算 CN=0(有进位) F=A加1 F=(A+B)加1 F=(A+/B)加1 F=0 F=A加A/B加1 F=(A+B)加A/B加1 F=A减B F=A/B F=A加AB加1 F=A加B加1 F=(A+/B)加AB加1 F=AB

1100 1101 1110 1111 F=1 F=A+/B F=A+B F=A F=A加A F=(A+B)加A F=(A+/B)加A F=A减1 F=A加A加1 F=(A+B)加A加1 F=(A+/B)加A加1 F=A

2.2软件设计:

不带进位位加法运算程序 MOV DR1, 33H MOV DR2, 55H ADD DR1, DR2 MOV IDE, DR1

开始 将33H中的内容送DR1 将55H的内容送DR2 将DR2中的内容累加到DR1 将DR1的内容送到IDE显示 结束 图2-4逻辑图

9

不带进位位逻辑或运算程序: MOV DR1, 33H MOV DR2, 55H OR DR1, DR2 MOV DR1, IDE

10

图2-5 逻辑图

开始 将33H中的内容送DR1 将55H的内容送DR2 将DR1与DR2中的内容进行或运算,结果送DR1 将DR1的内容送到IDE显示 结束 比较内存数据段DATA开始的两个单元 中存放的两个8位无符号数,并将大 程序:

LEA BX, DATA MOV AL, [BX] INC BX 开始 的数送MAX。

DATA偏移地址送BX CMP JNC MOV DONE:MOV HLT

AL, [BX] DONE AL, [BX] 第一个无符号数送AL BX加1指向第二个数 两个无符号数进行比较 CF=0 若CF不为0 第二个无符号数送AL 将较大的数送MAX 停止 图2-6逻辑图

11

MAX,AL

第3章:实验验证

3.1不带进位位逻辑或运算实验 实验步骤

把ALU-IN(8芯的盒型插座)与CPT-B板上的二进制开关单元中J1插座相连(对应二进制开关H16~H23),把ALU-OUT(8芯的盒型插座)与数据线上的DJ2相连。

把DICK和D2CK用连线连接到脉冲单元的PLS1上,把EDR1、EDR2、ALU-O、S0、S1、S2、S3、CN、M接入二进制开关。 表3-1 对应接入口 信号定义 D1CK D2CK EDR1 EDR2 ALU-O CN M S3 S2 S1 S0

按启动单元中的运行按钮,使实验机处于运行状态。 二进制开关H16~H23作为数据输入,置H33。 表3-2数据输入表 H23 D7 0

各控制信号如下:

表3-3控制信号表 H8 EDR1

接入开关位号 PLS1 孔 PLS1 孔 H8 孔 H7 孔 H6 孔 H5 孔 H4 孔 H3 孔 H2 孔 H1 孔 H0 孔 H22 D6 0 H21 D5 1 H20 D4 1 H19 D3 0 H18 D2 0 H17 D1 1 H16 D0 1 数据总线值 8位数据 33H H7 EDR2 H6 ALU-O H5 CN H4 M 12

H3 S3 H2 S2 H1 S1 H0 S0 0

1 0 1 1 1 1 1 0 按脉冲单元的PLS1脉冲按键,在D1CK上产生一个上升沿,把H33打入DR1数据锁存器,通过逻辑笔或示波器来测量确定DR1的输出端,检验数据是否进入DR1中。

二进制开关H16~H23作为数据输入,置H55

表3-4数据输入表

H23 D7 0

H22 D6 1 H21 D5 0 H20 D4 1 H19 D3 0 H18 D2 1 H17 D1 0 16 D0 1 数据总线值 8位数据 55H 置各控制信号如下:

表3-5控制信号表 H8 EDR1 1

按脉冲单元中的PLS1脉冲按键,在D2CK上产生一个上升沿的脉冲,把55H打入DR2数据锁存器。

经过74LS181的计算,把运算结果(F=A或B)输出到数据总线上,经过总线上的LED显示灯IDB0~IDB7应该显示为77H。 3.2不带进位位加法运算实验 实验步骤

把ALU-IN与CPT-B板上的二进制开关单元中J1插座相连(对应二进制开

关H16~H23),把ALU-OUT(8芯的盒插座)与数据总线上的DJ2相连。 把D1CK和D2CK用连线连接到脉冲单元的PLS1上,把 EDR1、EDR2、ALU-O、S0、S1、S2、S3、CN、M接入二进制开关。

表3-6接口对应表 信号定义 D1CK D2CK EDR1 EDR2

H7 EDR2 0 H6 ALU-O 0 H5 CN 1 H4 M 1 H3 S3 1 H2 S2 1 H1 S1 1 H0 S0 0 接入开关位号 PLS1 孔 PLS1 孔 H8 孔 H7 孔 13

ALU-O CN M S3 S2 S1 S0

H6 孔 H5 孔 H4 孔 H3 孔 H2 孔 H1 孔 H0 孔 按启停单元中的运行按扭,使实验机处于运行状态。 二进制开关 H23 D7 0

置各控制信号如下:

表3-8控制信号表 H8 EDR1 0

按脉从单元中的PLS1脉冲按键,在D1CK上产生一个上升沿,把33H打入DR1数据锁存器,通过逻辑笔或示波器来测量确定DR1的输出端,检验数据是否进入DR1中。

二进制开关H16~H23作为数据输入,置55H。 表3-9 数据输入表 H23 D7 0

置各控制信号如下: 表3-10控制信号表 H8 EDR1

H16~H23作为数据输入,置H33如下 H21 D5 1 H20 D4 1 H19 D3 0 H18 D2 0 H17 D1 1 H16 D0 1 数据总线值 8位数据 33H 表3-7数据输入表

H22 D6 0 H7 EDR2 1 H6 ALU-O 0 H5 CN 1 H4 M 0 H3 S3 1 H2 S2 0 H1 S1 1 H0 S0 0 H22 D6 1 H21 D5 0 H20 D4 1 H19 D3 0 H18 D2 1 H17 D1 0 H16 D0 1 数据总线值 8位数据 33H H7 EDR2 H6 ALU-O H5 CN H4 M 14

H3 S3 H2 S2 H1 S1 H0 S0

1

0 0 1 0 1 0 0 1 按脉从单元中的PLS1脉冲按键,在D1CK上产生一个上升沿,把55H打入DR2数据锁存器。

经过74LS181的计算,把运算结果(F=A或B)输出到数据总线上,数据总线上的 LED显示灯应显示为88H。

验证74LS181的算术运算和逻辑运算,在保持DR1=65H、DR2=A7H时,改变运算器的功能设置,观察运算器的输出,填写以下表格来进行分析和比较。

表3-11运算对应结果表 DR1 DR2 S3 65 65 65 65 65 65 65 65 65 65 65 65 65 65 65 65

15

S2 0 0 0 0 1 1 1 1 0 0 0 0 1 1 1 1 S1 0 0 1 1 0 0 1 1 0 0 1 1 0 0 1 1 S0 M=0算术运算 M=0逻辑运CN=1 CN=0 算 A7 A7 A7 A7 A7 A7 A7 A7 A7 A7 A7 A7 A7 A7 A7 A7 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 0 F=65H F=66H F=9AH 1 F=E7H F=28H F=18H 0 F=79H F=7EH F=82H 1 F=FFH F=00H F=00H 0 F=AAH F=ABH F=DAH 1 F=27H F=28H F=58H 0 F=BDH F=BEH F=C2H 1 F=3FH F=40H F=40H 0 F=8AH F=8BH F=BFH 1 F=0CH F=0DH F=3DH 0 F=A2H F=A3H F=A7H 1 F=24H F=25H F=25H 0 F=CAH F=CBH F=FFH 1 F=4CH F=4DH F=7DH 0 F=E2H F=E3H F=E7H 1 F=64H F=65H F=65H

实验总结

经过一个学期对微机原理的课本知识学习,我们对微机及逻辑运算单元都有了一定的认知。但对实际的应用还未能实践。在实验过程中对于有些问题及状况的解决的能力有了增强。本次设计给我最大的收获就是动手能力的重要性,实践和理论

上是有差距的,理论与实际相结合是很重要的。只有理论知识是远远不够的,只有把所学的理论知识与实践相结合起来,从理论中得出结论,才能真正为社会服务,从而提高自己的实际动手能力和独立思考的能力。同时在设计的过程中发现了自己的不足之处,对以前所学过的知识理解的不够深刻,掌握的不够牢固。动手试验也让自己对书本知识有了更深刻的认识,把书本知识真正的转化为自己所掌握的东西,能加以利用。总之,这次课程设计对于我有很大的帮助,通过课程设计,我更加深入地理解了微机原理课程上讲到的各种芯片的功能,以及引脚的作用,同时加深了对于主要芯片的应用的认识,同时在实验室的环境里熟悉了汇编程序的编写过程和运行过程,最后还提高了自己的动手能力

参考文献:冯博琴版《微型计算机原理及接口技术》

16

本文来源:https://www.bwwdw.com/article/a8q6.html

Top