《8位算术逻辑运算实验》

合集下载

实验一运算器实验

实验一运算器实验

实验一运算器实验简介:运算器是数据的加工处理部件,是CPU的重要组成部分,各类计算机的运算器结构可能有所不同,但是他们的最基本的结构中必须有算术/逻辑运算单元、数据缓冲寄存器、通用寄存器、多路转换器的数据总线的逻辑构件。

一、实验目的1、了解算术逻辑运算器(74LS181)的组成和功能。

2、掌握基本算术和逻辑运算的实现方法。

二、实验内容运用算术逻辑运算器74LS181 进行有符号数/无符号数的算术运算和逻辑运算。

三、实验元器件1、算术逻辑运算器(74LS181)。

2、三态门(74LS244、74LS245)及寄存器(74LS273、74LS373)。

3、二进制拨码开关SW-SPDT四、实验原理图1.1运算器电路原理图本实验的算术逻辑运算器电路如图 1.1所示:输入和输出单元跟上述实验相同:缓冲输入区八位拨码开关用来给出参与运算的数据,并经过三态门74LS245 和数据总线BUS相连,在控制开关SW_BUS处于高电平时允许输出到数据总线。

运算器则由两个74LS181以串行进位形式构成8位字长的算术/逻辑运算单元(ALU):ALU_L4B的进位输出端CN+4与ALU_H4B的进位输入端CN相连,使低4位运算产生的进位送进高4位运算中。

其中ALU_L4B为低4位运算芯片,参与低四位数据运算,ALU_H4B为高4位运算芯片,参与高四位数据运算。

ALU_L4B的进位输入端CN通过三态门连接到二进制开关CN,控制运算器仅为,ALU_H4B的进位输出端CN+4经过反相器74LS04,通过三态门接到溢出标志位CF指示灯(CF=1,即ALU运算结果溢出)。

ALU 除了溢出标志位CF外,还有两个标志位:零标志位ZF(ZF=1,即ALU运算结果为0,ZF对应发光二极管点亮)和符号标志位SF(SF=1,即运算结果为负数;SF=0 即运算结果为正数或0对应发光二极管点亮)。

图 1.2 运算器通路图ALU 的工作方式可通过设置两个74181芯片的控制信号(S0、S1、S2、S3、M、CN)来实现, 其74LS181逻辑功能表由表1-1给出,运算器ALU 的输出经过三态门(两片74LS244或一片74LS245)和数据总线BUS 相连。

计算机组成原理--实验二算术逻辑运算实验

计算机组成原理--实验二算术逻辑运算实验

计算机组成原理--实验⼆算术逻辑运算实验实验⼆算术逻辑运算实验⼀、实验⽬的(1)了解运算器芯⽚(74LS181)的逻辑功能。

(2)掌握运算器数据的载⼊、读取⽅法,掌握运算器⼯作模式的设置。

(3)观察在不同⼯作模式下数据运算的规则。

⼆、实验原理1.运算器芯⽚(74LS181)的逻辑功能74LS181是⼀种数据宽度为4个⼆进制位的多功能运算器芯⽚,封装在壳中,封装形式如图2-3所⽰。

5V A1 B1 A2 B2 A3 B3 Cn4 F3BO A0 S3 S2 S1 S0 Cn M F0 F1 F2 GND图2-374LS181封装图主要引脚有:(1)A0—A3:第⼀组操作数据输⼊端。

(2)B0—B3:第⼆组操作数据输⼊端。

(3)F0—F3:操作结果数据输⼊端。

(4)F0—F3:操作功能控制端。

(5)Cn:低端进位接收端。

(6)(7)M:算数/逻辑功能控制端。

芯⽚的逻辑功能见表2-1.从表中可以看到当控制端S0—S3为1001、M为0、Cn为1时,操作结果数据输出端F0—F3上的数据等于第⼀组操作数据输⼊端A0—A3上的数据加第⼆组操作数据输⼊端B0—B3上的数据。

当S0—S3、M、Cn上控制信号电平不同时,74LS181芯⽚完成不同功能的逻辑运算操作或算数运算操作。

在加法运算操作时,Cn、Cn4进位信号低电平有效;减法运算操作时,Cn、Cn4借位信号⾼电平有效;⽽逻辑运算操作时,Cn、进位信号⽆意义。

2.运算器实验逻辑电路试验台运算器实验逻辑电路中,两⽚74LS181芯⽚构成⼀个长度为8位的运算器,两⽚74LS181分别作为第⼀操作数据寄存器和第⼆操作数据寄存器,⼀⽚74LS254作为操作结果数据输出缓冲器,逻辑结构如图2-4所⽰。

途中算术运算操作时的进位Cy 判别进位指⽰电路;判零Zi和零标志电路指⽰电路,将在实验三中使⽤。

第⼀操作数据由B-DA1(BUS TO DATA1)负脉冲控制信号送⼊名为DA1的第⼀操作数据寄存器,第⼆操作数据由B-DA2(BUS TO DATA2)负脉冲控制信号送⼊名为DA2的第⼆操作数据寄存器。

运算器组成实验

运算器组成实验

第二节运算器组成实验一、实验目的(1)掌握算术逻辑运算加、减、乘、与的工作原理。

(2)熟悉简单运算器的数据传送通路。

(3)验证实验台运算器的8位加、减、与、直通功能。

(4)验证实验台的4位乘4位功能。

(5)按给定数据,完成几种指定的算术和逻辑运算。

二、实验电路图6示出了本实验所用的运算器数据通路图。

ALU由1片ispLSI1024构成。

四片4位的二选一输入寄存器74HC298构成两个操作数寄存器DR1和DR2,保存参与运算的数据。

DR1接ALU的B 数据输入端口,DR2接ALU的A数据输入端口,ALU的输出在ispLSI1024内通过三态门发送到数据总线DBUS7—DBUS0上,进位信号C保存在ispLSI1024内的一个D寄存器中。

当实验台下部的IR/DBUS 开关拨到DBUS位置时,8个红色发光二极管指示灯接在数据总线DBUS上,可显示运算结果或输入数据。

另有一个指示灯C显示运算器进位信号状态。

由ispLSI1024构成的8位运算器的运算类型由选择端S2、S1、S0选择,功能如表3所示:进位C只在加法运算和减法运算时产生,与、乘、直通操作不影响进位C的状态,即进位C保持不变。

减法运算采用加减数的反码再加以1实现。

在加法运算中,C代表进位;在减法运算中,C 代表借位。

运算产生的进位在T4的上升沿送入ispLSI1024内的C寄存器保存。

在SW_BUS#信号为0时,参与运算的数据通过一个三态门74HC244(SW_BUS)送到DBUS总线上,进而送至DR1或DR2操作数寄存器。

输入数据可由实验台上的8个二进制数据开关SW0—SW7来设置,其中SW0是最低位,SW7是最高位。

开关向上时为1,开关向下时为0。

图中尾巴上带粗短线标记的信号都是控制信号,控制信号均为电位信号。

T3、T4是脉冲信号,印制板上已连接到实验台的时序电路产生的T3、T4信号上。

S2、S1、S0、ALU_BUS、LD_DR2、LDDR1、M1、M2、SW_BUS#各电位控制信号用电平开关K0—K15来模拟。

华中科技大学 组成原理实验报告 运算器组成实验

华中科技大学 组成原理实验报告 运算器组成实验

课程实验报告课程名称:计算机组成原理专业班级:信息安全1003班学号:U**********名:***同组成员:张源信报告日期:2012年5月计算机科学与技术学院目录一、实验名称 (3)二、实验目的 (3)三、实验设备 (3)四、实验任务 (3)五、预备知识 (4)1、运算器的相关知识 (4)2、注意事项: (4)六、设计思路、电路实现与电路分析说明 (4)1、任务分析 (4)2、设计思路 (6)3、电路实现与详细分析说明 (7)七、实验结果的记录与分析 (9)八、实验中碰到的问题及解决办法 (10)九、收获与体会 (10)十、参考书目 (11)一、实验名称实验名称:运算器组成实验二、实验目的1、掌握带累加器的运算器实验2、掌握溢出检测的原理及实现方法3、理解有符号数和无符号数运算的区别4、理解基于补码的加\减运算实现原理5、熟悉运算器的数据传输通路6、利用74181和74182以及适当的门电路和多路选择器设计一个运算,要求支持有符号数和无符号数的运算支持补码加减法运算,支持有符号数溢出检测等功能三、实验设备JZYL—Ⅱ型计算机组成原理实验仪一台芯片:74LS181运算器芯片2片74LS373 8D锁存器3片四、实验任务自己设计一个电路和利用实验参考电路进行实验,实验要求先将多个运算数据事先存入存储器中,再由地址选中,选择不同的运算指令,进行运算,并将结果显示,还可以进行连续运算和移位,最后将最终结果写入到存储器中。

五、预备知识 1、运算器的相关知识运算器是对数据进行加工处理的部件,它具体实现数据的算术运算和逻辑运算,所以又称算术逻辑运算部件,简称ALU ,它是中央处理器的重要组成部分。

计算机中的运算器结构一般都包含如下几个部分:加法器、一组通用寄存器、输入数据选择电路和输出数据控制电路等。

74LS181能执行16种算术运算和16种逻辑运算,当工作方式控制端(M )为低电平时执行算术运算,当工作方式控制端(M )为高电平时执行逻辑运算,运算功能由功能选择端(S0-S3)决定。

计算机组成原理实验报告

计算机组成原理实验报告

计算机组成原理实验报告实验报告运算器实验⼀、实验⽬的掌握⼋位运算器的数据传输格式,验证运算功能发⽣器及进位控制的组合功能。

⼆、实验要求完成算术、逻辑、移位运算实验,熟悉ALU运算控制位的运⽤。

三、实验原理实验中所⽤的运算器数据通路如图2-3-1所⽰。

ALU运算器由CPLD描述。

运算器的输出FUN经过74LS245三态门与数据总线相连,运算源寄存器A和暂存器B的数据输⼊端分别由2个74LS574锁存器锁存,锁存器的输⼊端与数据总线相连,准双向I/O 输⼊输出端⼝⽤来给出参与运算的数据,经2⽚74LS245三态门与数据总线相连。

图2-3-1运算器数据通路图中A WR、BWR在“搭接态”由实验连接对应的⼆进制开关控制,“0”有效,通过【单拍】按钮产⽣的脉冲把总线上的数据打⼊,实现运算源寄存器A、暂存器B的写⼊操作。

四、运算器功能编码算术运算逻辑运算K23~K0置“1”,灭M23~M0控位显⽰灯。

然后按下表要求“搭接”部件控制路。

表2.3.2 运算实验电路搭接表算术运算1.运算源寄存器写流程通过I/O单元“S7~S0”开关向累加器A和暂存器B置数,具体操作步骤如下:2.运算源寄存器读流程关闭A、B写使能,令K18=K17=“1”,按下流程分别读A、B。

3.加法与减法运算令M S2 S1 S0(K15 K13~K11=0100),为算术加,FUN及总线单元显⽰A+B的结果令M S2 S1 S0(K15 K13~K11=0101),为算术减,FUN及总线单元显⽰A-B的结果。

逻辑运算1.运算源寄存器写流程通过“I/O输⼊输出单元”开关向寄存器A和B置数,具体操作步骤如下:2.运算源寄存器读流程关闭A、B写使能,令K17= K18=1,按下流程分别读A、B。

①若运算控制位设为(M S2 S1 S0=1111)则F=A,即A内容送到数据总线。

②若运算控制位设为(M S2 S1 S0=1000)则F=B,即B内容送到数据总线。

《计算机组成原理》学生实验报告

《计算机组成原理》学生实验报告

《计算机组成原理》学生实验报告(2011~2012学年第二学期)专业:信息管理与信息系统班级: A0922学号:10914030230姓名:李斌目录实验准备------------------------------------------------------------------------3 实验一运算器实验-----------------------------------------------------------7 实验二数据通路实验-------------------------------------------------------13 实验三微控制器实验--------------------------------------------------------18 实验四基本模型机的设计与实现------------------------------------------22实验准备一、DVCC实验机系统硬件设备1、运算器模块运算器由两片74LS181构成8位字长的ALU。

它是运算器的核心。

可以实现两个8位的二进制数进行多种算术或逻辑运算,具体由74181的功能控制条件M、CN、S3、S2、S1、S0来决定,见下表。

两个参与运算的数分别来自于暂存器U29和U30(采用8位锁存器),运算结果直接输出到输出缓冲器U33(采用74LS245,由ALUB信号控制,ALUB=0,表示U33开通,ALUB=1,表示U33不通,其输出呈高阻),由输出缓冲器发送到系统的数据总线上,以便进行移位操作或参加下一次运算。

进位输入信号来自于两个方面:其一对运算器74LS181的进位输出/CN+4进位倒相所得CN4;其二由移位寄存器74LS299的选择参数S0、S1、AQ0、AQ7决定所得。

触发器的输出QCY就是ALU结果的进位标志位。

QCY为“0”,表示ALU结果没有进位,相应的指示灯CY灭;QCY为“1”,表示ALU结果有进位,相应的指示灯CY点亮。

8位运算器课程设计

8位运算器课程设计

8位运算器课程设计一、课程目标知识目标:1. 学生能理解8位运算器的原理与功能,掌握二进制与十进制的转换方法。

2. 学生能运用8位运算器进行基本的算术运算,如加、减、乘、除,并理解运算过程中的溢出与进位现象。

3. 学生了解8位运算器在计算机硬件中的作用,及其在信息技术中的应用。

技能目标:1. 学生能够独立完成8位运算器的模拟操作,解决实际问题。

2. 学生通过8位运算器的操作,提高逻辑思维和问题解决能力。

3. 学生能够运用所学知识,对简单的计算机程序进行初步的分析与设计。

情感态度价值观目标:1. 学生培养对计算机硬件及编程的兴趣,激发学习信息技术的热情。

2. 学生通过学习8位运算器,认识到科技发展对生活的影响,增强创新意识。

3. 学生在团队协作中培养沟通与合作的意识,提高团队荣誉感。

课程性质:本课程为信息技术学科的教学内容,旨在帮助学生掌握计算机硬件基础知识,提高编程技能。

学生特点:考虑到学生所在年级,已具备一定的逻辑思维和问题解决能力,对信息技术有较高的兴趣。

教学要求:结合学生特点,通过实例教学,使学生在实践中掌握8位运算器的相关知识,提高学生的动手操作能力和团队协作能力。

将课程目标分解为具体的学习成果,以便于教学设计和评估。

二、教学内容1. 引言:介绍8位运算器的基本概念,引出二进制与十进制的转换,让学生初步了解8位运算器的原理。

- 教材章节:第一章 计算机硬件基础,第1节 计算机硬件概述2. 二进制与十进制的转换方法:- 教材章节:第一章 计算机硬件基础,第2节 数字逻辑基础3. 8位运算器的算术运算:- 加法、减法、乘法、除法的运算规则及运算过程- 溢出与进位现象的分析- 教材章节:第一章 计算机硬件基础,第3节 算术逻辑单元4. 8位运算器在实际应用中的案例分析:- 简单计算机程序的初步分析与设计- 教材章节:第二章 计算机指令与编程,第1节 计算机指令概述5. 8位运算器在计算机硬件中的作用:- 介绍CPU中的算术逻辑单元(ALU)- 教材章节:第一章 计算机硬件基础,第4节 中央处理器6. 实践操作:- 使用模拟软件进行8位运算器的操作- 解决实际问题,提高逻辑思维和问题解决能力- 教材章节:第三章 计算机操作实践,第1节 计算机操作基础教学进度安排:本章节内容共需6个课时,其中理论教学4课时,实践操作2课时。

8位减法器设计课程设计

8位减法器设计课程设计

8位减法器设计课程设计一、课程目标知识目标:1. 学生理解8位减法器的基本原理和组成结构,掌握其工作流程。

2. 学生掌握二进制数的减法运算规则,能够正确进行8位二进制数的减法运算。

3. 学生了解并掌握逻辑门电路在8位减法器中的应用,如与门、非门、异或门等。

技能目标:1. 学生能够设计并搭建简单的8位减法器电路,运用逻辑门实现减法运算。

2. 学生能够分析8位减法器的性能,对其进行简单的优化和改进。

3. 学生掌握使用相关软件工具(如Multisim、Proteus等)进行8位减法器电路仿真和调试。

情感态度价值观目标:1. 培养学生动手实践、解决问题的能力,增强对电子技术和计算机硬件的兴趣。

2. 培养学生团队协作意识,学会与他人共同分析问题、探讨解决方案。

3. 培养学生严谨的科学态度,养成良好的学习习惯,注重学习过程中的思考与总结。

本课程针对高中年级学生,课程性质为电子技术实践课程。

在教学过程中,充分考虑学生的知识水平和实际操作能力,注重理论联系实际,引导学生通过实践探索,掌握8位减法器的设计与应用。

课程目标明确具体,可衡量,有助于指导后续的教学设计和评估工作。

二、教学内容1. 二进制减法运算原理:讲解二进制减法的运算规则,以及与十进制的区别和联系。

- 教材章节:第三章第二节《二进制加减法运算》2. 8位减法器的组成结构:介绍8位减法器的基本组成,包括全加器、与门、非门、异或门等。

- 教材章节:第四章第三节《组合逻辑电路设计》3. 逻辑门电路原理:阐述逻辑门电路的工作原理,及其在8位减法器中的应用。

- 教材章节:第三章第四节《逻辑门电路》4. 8位减法器设计方法:讲解如何设计8位减法器电路,包括全加器的级联方式、时序控制等。

- 教材章节:第四章第五节《算术逻辑单元设计》5. 8位减法器电路仿真与调试:指导学生使用Multisim、Proteus等软件进行电路仿真和调试。

- 教材章节:第五章第三节《电子电路仿真与调试》教学内容安排与进度:第一课时:二进制减法运算原理,逻辑门电路原理。

计算机组成原理实验报告

计算机组成原理实验报告

(3)开关ALUB=0,开启输出三态门,开关SWB=1,关闭输入三态门,同时让 LDDR1=0,LDDR2=0。

(4)如果原来有进位,CY=1,进位灯亮,但需要清零进位标志时,具体操作方法如下:
◆S3、S2、S1、S0、M的状态置为0 0 0 0 0,AR信号置为“0”电平(清
零操作时DRl寄存器中的数应不等于FF)。

◆按动手动脉冲发生开关,CY=0,即清进位标志。

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

(5)验证带进位运算及进位锁存功能
这里有两种情况:
●进位标志已清零,即CY=0,进位灯灭。

✧使开关CN=0,再来进行带进位算术运算。

例如步骤(2)参与运算的两个数
为55H和AAH,当S3、S2、S1、S0状态为10010,此时输出数据总线显示灯上显示的数据为DRl加DR2再加初始进位位“1”(因CN=0),相加的结果应为ALU=00,并且产生进位,此时按动手动脉冲开关,则进位标志灯亮,表示有进位。

✧使开关CN=1,当S3、S2、S1、S0状态为10010,则相加的结累ALU=FF,并
且不产生进位。

●原来有进位,即CY=1,进位灯亮。

此时不考虑CN的状态,再来进行带进位
算术运算。

同样步骤(2)参与运算的两个数为55H和AAH,当S3、S2、S1、S0、M状态为10010,此时输出数据总线显示灯上显示的数据为DRl加DR2再加当前进位标志CY,相加的结果同样为ALU=00,并且产生进位,此时按动手。

总线微控制实验

总线微控制实验

一、实验目的•理解总线的概念和作用。

•连接运算器与存储器,熟悉计算机的数据通路。

•理解微命令与微操作的概念。

二、实验内容•运行虚拟实验系统,组建实验电路。

•进行电路预设置。

•实施存储器的读写操作。

•进行8位算术逻辑运算。

•设计微命令并完成表格。

•记录和分析实验结果。

三、实验原理实验涉及的主要元器件包括:4位算术逻辑运算单元74LS181,8位数据锁存器74LS373,三态输出的总线收发器74LS245,2K×8静态随机存储器6116,时序发生器,开关、指示灯等。

通过这些元器件的组合,实现数据在总线上的传输和运算器、存储器之间的交互操作。

芯片介绍1.74LS245:8位双向缓冲传输门,用于总线和数据总线的连接。

2.74LS373:8位锁存器,用于数据的输入和控制信号处理。

3.M6116:2K×8位静态随机存储器,用于数据存储和读取。

四、实验步骤及结果(附数据和图表等)基本实验1. 运行虚拟实验系统从左边的实验设备列表选取所需组件拖到工作区中,按照图4.4所示组建实验电路。

2. 电路预设置1.将74LS373(U2,U3)的控制端LE置为0。

2.将74LS373(U7)的控制端LE置为0,OE置为1。

3.将74LS245(U9)的控制端CE置为1。

3. 打开电源开关4. 存储器写操作向01H,02H,03H存储单元分别写入十六进制数据37H、22H、66H。

具体操作步骤如下(以向01号单元写入37H为例):1.将SW7~SW0置为00000001,CE(——)=0,打开三态门74LS245(U1),将地址送入BUS。

2.将74LS373(U7)的LE置1,OE(——)置0,将BUS上的地址存入AR(U7),可通过观察AR所连接的地址灯来查看地址。

3.将74LS373(U7)的LE置0,将地址锁存至M6116地址输入端;将CE(——)=1,关闭三态门74LS245(U1)。

4.将CE(——)=0,WE(——)=0,OE(——)=1,M6116写操作准备。

计算机组成原理课程教案

计算机组成原理课程教案

计算机组成原理课程教案二00九年九月上海建桥学院计算机组成原理课程教案周次 1 第 1 次课学时 2 教案设计人丁纪凯、范新上海建桥学院计算机组成原理课程教案周次 1 第 2 次课学时 2 教案设计人丁纪凯、范新计算机组成原理课程教案周次 2 第 3 次课学时 2 教案设计人丁纪凯、范新上海建桥学院计算机组成原理课程教案周次 2 第 4 次课学时2 教案设计人丁纪凯、范新上海建桥学院计算机组成原理课程教案计算机组成原理课程教案周次 3 第 6 次课学时 2 教案设计人丁纪凯、范新民计算机组成原理课程教案周次4 第7 次课学时 2 教案设计人丁纪凯、范新计算机组成原理课程教案周次4 第8 次课学时 2 教案设计人丁纪凯、范新上海建桥学院计算机组成原理课程教案周次5 第9 次课学时 2 教案设计人丁纪凯、范新计算机组成原理课程教案周次 5 第10 次课学时 2 教案设计人丁纪凯、范新上 海 建 桥 学 院计算机组成原理课程教案周次 6 第 11 次课 学时 2 教案设计人 丁纪凯、范新上海 建 桥 学 院计算机组成原理 课程教案周次 6 第 12 次课 学时 2 教案设计人 丁纪凯、范新计算机组成原理课程教案周次7 第13 次课学时 2 教案设计人丁纪凯、范新计算机组成原理课程教案周次7 第14 次课学时 2 教案设计人丁纪凯、范新计算机组成原理课程教案周次8 第15 次课学时 2 教案设计人丁纪凯、范新民上海建桥学院计算机组成原理课程教案周次8 第16 次课学时 2 教案设计人丁纪凯、范新上海建桥学院计算机组成原理课程教案周次9 第17 次课学时 2 教案设计人丁纪凯、范新计算机组成原理课程教案周次9 第18 次课学时 2 教案设计人丁纪凯、范新计算机组成原理课程教案周次10 第19 次课学时 2 教案设计人丁纪凯、范新上海建桥学院计算机组成原理课程教案周次10 第20 次课学时 2 教案设计人丁纪凯、范新上海建桥学院计算机组成原理课程教案周次11 第21 次课学时 2 教案设计人丁纪凯、范新计算机组成原理课程教案周次11 第22 次课学时 2 教案设计人丁纪凯、范新上海建桥学院计算机组成原理课程教案周次12 第23 次课学时 2 教案设计人丁纪凯、范新民计算机组成原理课程教案周次12 第24 次课学时 2 教案设计人丁纪凯、范新上海建桥学院计算机组成原理课程教案周次13 第25 次课学时 2 教案设计人丁纪凯、范新上海建桥学院计算机组成原理课程教案周次13 第26 次课学时 2 教案设计人丁纪凯、范新上 海 建 桥 学院计算机组成原理 课程教案周次 14 第 27 次课 学时 2 教案设计人 丁纪凯、范新上海建桥学院计算机组成原理课程教案计算机组成原理课程教案周次15 第29 次课学时 2 教案设计人丁纪凯、范新计算机组成原理课程教案周次15 第30 次课学时 2 教案设计人丁纪凯、范新民计算机组成原理课程教案周次16 第31 次课学时 2 教案设计人丁纪凯、范新计算机组成原理课程教案周次16 第32 次课学时 2 教案设计人丁纪凯、范新。

实验一 8位算术逻辑运算实验

实验一   8位算术逻辑运算实验

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

2、验证算术逻辑运算功能发生器74L S181的组合功能。

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

其中运算器由两片74L S181以并/串形成8位字长的A L U构成。

运算器的输出经过一个三态门74L S245(U33)到内部数据总线B U S D0~D7插座B U S1~2中的任一个(跳线器J A3为高阻时为不接通),内部数据总线通过L Z D0~L Z D7显示灯显示;运算器的两个数据输入端分别由二个锁存器74L S273(U29、U30)锁存,两个锁存器的输入并联后连至内部总线B U S,实验时通过8芯排线连至外部数据总线E X D0~D7插座E X J1~E X J3中的任一个;参与运算的数据来自于8位数据开并K D0~K D7,并经过一三态门74L S245(U51)直接连至外部数据总线E X D0~E X D7,通过数据开关输入的数据由L D0~L D7显示。

图中算术逻辑运算功能发生器74L S181(U31、U32)的功能控制信号S3、S2、S1、S0、C N、M并行相连后连至6位功能开关,以手动方式用二进制开关S3、S2、S1、S0、C N、M来模拟74L S181(U31、U32)的功能控制信号S3、S2、S1、S0、C N、M;其它电平控制信号L D D R1、L D D R2、A L U B`、S W B`以手动方式用二进制开关L D D R1、L D D R2、A L U B、S W B来模拟,这几个信号有自动和手动两种方式产生,通过跳线器切换,其中A L U B`、S W B`为低电平有效,L D D R1、L D D R2为高电平有效。

另有信号T4为脉冲信号,在手动方式下进行实验时,只需将跳线器J23上T4与手动脉冲发生开关的输出端S D相连,按动手动脉冲开关,即可获得实验所需的单脉冲。

计算机组成原理实验(接线、实验步骤)方案

计算机组成原理实验(接线、实验步骤)方案

实验一运算器[实验目的]1.掌握算术逻辑运算加、减、乘、与的工作原理;2.熟悉简单运算器的数据传送通路;3.验证实验台运算器的8位加、减、与、直通功能;4.验证实验台4位乘4位功能。

[接线]功能开关:DB=0 DZ=0 DP=1 IR/DBUS=DBUS接线:LRW:GND(接地)IAR-BUS# 、M1、M2、RS-BUS#:接+5V控制开关:K0:SW-BUS# K1:ALU-BUSK2:S0 K3:S1 K4:S2K5:LDDR1 K6:LDDR2[实验步骤]一、(81)H与(82)H运算1.K0=0:SW开关与数据总线接通K1=0:ALU输出与数据总线断开2.开电源,按CLR#复位3.置数(81)H:在SW7—SW0输入10000001→LDDR2=1,LDDR1=0→按QD:数据送DR2置数(82)H:在SW7—SW0输入10000010→LDDR2=0,LDDR1=1→按QD:数据送DR1 4.K0=1:SW开关与数据总线断开K1=1:ALU输出与数据总线接通5. S2S1S0=010:运算器做加法(观察结果在显示灯的显示与进位结果C的显示)6.改变S2S1S0的值,对同一组数做不同的运算,观察显示灯的结果。

二、乘法、减法、直通等运算1.K0K1=002.按CLR#复位3.分别给DR1和DR2置数4.K0K1=115. S2S1S0取不同的值,执行不同的运算[思考]M1、M2控制信号的作用是什么?运算器运算类型选择表选择操作S2 S1 S00 0 0 A&B0 0 1 A&A(直通)0 1 0 A+B0 1 1 A-B1 0 0 A(低位)ΧB(低位)完成以下表格ALU-BUS SW-BUS# 存储器内容S2S1S0 DBUS C输入时:计算时:DR1:01100011DR2:10110100(与)DR1:10110100DR2:01100011(直通)DR1:01100011DR2:01100011(加)DR1:01001100DR2:10110011(减)DR1:11111111DR2:11111111(乘)实验二双端口存储器[实验目的]1.了解双端口存储器的读写;2.了解双端口存储器的读写并行读写及产生冲突的情况。

8位算术逻辑运算实验

8位算术逻辑运算实验

25/25
设置功能选择开关M=1 S3S2S1S0=1010 S3S2S1S0=1111,验证DR1 DR2置入数据
24/25
步骤4、5.验证74LS181的算术和逻辑运算功能
① 在给定DR1=35H、DR2=48H的情况下,改变算术 逻辑运算功能发生器的功能设置,观察运算器 的输出。 ② 将输出结果填入实验报告表中,并和理论分析 进行比较、验证。
21/25
按下“复位”键 发出总清信号 打入脉冲信号T4
步骤3.检验DR1和DR2置入的数据
22/25
① 数据输出三态缓冲器门控信号ALUB=0(打开); ② 数据输入三态缓冲器门控信号SWB=1(关闭);
③ 数据锁存DRi控制信号LDDR1、LDDR2=0(关闭)
④ 设置开关M 、开关S3、S2、S1、S0 相应值
运算器数据通路图(图3-1)
运算器的输入 由两个锁存器 74LS273锁存 并送入运算器
运算器的数据来 源由8位数据开关 KD0-KD7输入
8/25
内部数据线通过 LZD0-D7显示灯显示
DR1
运算器的输出经过三态门 74LS245到BUSD0-D7
运算器的输入经过三态 门74LS245到外部数据 总线并送入锁存器锁存
16/25
LDDR2 LDDR1 跳线拨左边 ALUB SWB跳线拨左边 跳线拨左边
AR跳线器拨在左边,同时开关AR拨在“1”电平
AR开关拨“1”
17/25
AR跳线拨左边
四、实验连线-连线及跳线完毕
18/25
五、实验步骤
1. 连接线路,仔细检查核对后接通电源。
19/25
2. 用二进制数据开关KD7-KD0向DR1和DR2寄存 器置入8位运算数据。 3. 检验DR1和DR2置入的数据是否正确。

8位ALU(算术逻辑单元)verilog语言

8位ALU(算术逻辑单元)verilog语言

大连理工大学城市学院FPGA实验报告实验内容:8位ALU系别班级:电子1004班学号:姓名:日期:2013.4.14一.设计概述:一种基于可编程逻辑器件FPGA和硬件描述语言的8位的ALU的设计方法。

该ALU采用层次设计方法,有寄存器模块、控制模块和显示模块组成,能实现8位无符号数的取值、加减和4种逻辑运算(与、或、异或、同或)。

该ALU在QuartusII软件环境下进行功能仿真,通过DE2验证。

二.设计功能:1、该处理器的数据宽度为8bit,可以实现算术加法、减法、逻辑与、逻辑或、逻辑非、逻辑与非、逻辑或非和逻辑异或等8种运算。

2、用选择端opcode [2:0] 选择8种运算,2个操作数分别是a_r [7:0]和b_r[7:0],运算结果是alu_out[7:0];并定义选择如下。

3、使用DE2板上的3个拨码开关设置当前ALU的运算功能,再由8个拨码开关给定数据A 和数据B,由一个按键key手动提供脉冲。

三.设计方案:本设计共有5个模块。

1)脉冲输出器(key手动脉冲),计数依次产生4个脉冲到各个部件,第一个脉冲启动信号。

2)寄存器A,第二个脉冲来时锁存数据A,并在数码管上显示。

3)寄存器B,第三个脉冲来时锁存数据B,并在数码管上显示。

4)8位ALU,第四个脉冲来时进行运算,并锁存结果alu_out。

5)结果显示器,将结果显示通过DE2上的数码管显示。

四.程序分析:主程序模块:module alu8(clk,clk_r,rst,a,b,alu_out,opcode,sw_ab,HEX1, HEX0, HEX7, HEX6, HEX5, HEX4);input clk,rst,clk_r;input [7:0] sw_ab;input [2:0] opcode;output [6:0] HEX1, HEX0, HEX7, HEX6, HEX5, HEX4;output [7:0] a;output [7:0] b;output [7:0] alu_out;rega U1(.clk(clk),.rst(rst),.sw_ab(sw_ab),.a_r(a),.clk_r(clk_r),.HEX7(HEX7),. HEX6(HEX6));regb U2(.clk(clk),.rst(rst),.sw_ab(sw_ab),.b_r(b),.clk_r(clk_r),.HEX5(HEX5),. HEX4(HEX4));alur U3(.clk(clk),.rst(rst),.a_r(a),.b_r(b),.alu_out(alu_out),.opcode(opcode)); digital U4(.clk_r(clk_r),.rst(rst),.alu_out(alu_out),.HEX1(HEX1),. HEX0(HEX0)); endmodule第一位数A模块:module rega (clk,clk_r,rst,sw_ab,a_r,HEX7,HEX6);input [7:0] sw_ab;input clk,clk_r,rst;output [7:0] a_r;reg [7:0] a_r;output reg[6:0] HEX7,HEX6;reg [3:0] cnt;always @(posedge clk or negedge rst)if(!rst) cnt<=1'd0;else if(cnt==5) cnt<=1'd0;else cnt<=cnt+1'd1;always @(posedge clk or negedge rst)if(!rst) a_r=0;else if(cnt==1) a_r=sw_ab;else a_r=a_r;parameter seg0=7'b1000000,seg1=7'b1111001,seg2=7'b0100100,seg3=7'b0110000,seg4=7'b0011001,seg5=7'b0010010 ,seg6=7'b0000010,seg7=7'b1111000,seg8=7'b0000000,seg9=7'b0010000,sega=7'b0001000,segb=7'b0000011 ,segc=7'b1000110,segd=7'b0100001,sege=7'b0000110,segf=7'b0001110;always @(posedge clk_r)case(a_r[3:0])4'h0: HEX6[6:0]=seg0;4'h1: HEX6[6:0]=seg1;4'h2: HEX6[6:0]=seg2;4'h3: HEX6[6:0]=seg3;4'h4: HEX6[6:0]=seg4;4'h5: HEX6[6:0]=seg5;4'h6: HEX6[6:0]=seg6;4'h7: HEX6[6:0]=seg7;4'h8: HEX6[6:0]=seg8;4'h9: HEX6[6:0]=seg9;4'ha: HEX6[6:0]=sega;4'hb: HEX6[6:0]=segb;4'hc: HEX6[6:0]=segc;4'hd: HEX6[6:0]=segd;4'he: HEX6[6:0]=sege;4'hf: HEX6[6:0]=segf;default:HEX6[6:0]=seg0;endcasealways @(posedge clk_r)case(a_r[7:4])4'h0: HEX7[6:0]=seg0;4'h1: HEX7[6:0]=seg1;4'h2: HEX7[6:0]=seg2;4'h3: HEX7[6:0]=seg3;4'h4: HEX7[6:0]=seg4;4'h5: HEX7[6:0]=seg5;4'h6: HEX7[6:0]=seg6;4'h7: HEX7[6:0]=seg7;4'h8: HEX7[6:0]=seg8;4'h9: HEX7[6:0]=seg9;4'ha: HEX7[6:0]=sega;4'hb: HEX7[6:0]=segb;4'hc: HEX7[6:0]=segc;4'hd: HEX7[6:0]=segd;4'he: HEX7[6:0]=sege;4'hf: HEX7[6:0]=segf;default:HEX7[6:0]=seg0;endcaseendmodule第二位数B模块:module regb (clk,clk_r,rst,sw_ab,b_r,HEX5,HEX4); input [7:0] sw_ab;input clk,clk_r,rst;output [7:0] b_r;reg [7:0] b_r;output reg[6:0] HEX5,HEX4;reg [3:0] cnt;always @(posedge clk or negedge rst)if(!rst) cnt<=1'd0;else if(cnt==5) cnt<=1'd0;else cnt<=cnt+1'd1;always @(posedge clk or negedge rst)if(!rst) b_r=0;else if(cnt==2) b_r=sw_ab;else b_r=b_r;parameter seg0=7'b1000000,seg1=7'b1111001,seg2=7'b0100100,seg3=7'b0110000,seg4=7'b0011001,seg5=7'b0010010,seg6=7'b0000010 ,seg7=7'b1111000,seg8=7'b0000000,seg9=7'b0010000,sega=7'b0001000,segb=7'b0000011 ,segc=7'b1000110,segd=7'b0100001,sege=7'b0000110,segf=7'b0001110;always @(posedge clk_r)case(b_r[3:0])4'h0: HEX4[6:0]=seg0;4'h1: HEX4[6:0]=seg1;4'h2: HEX4[6:0]=seg2;4'h3: HEX4[6:0]=seg3;4'h4: HEX4[6:0]=seg4;4'h5: HEX4[6:0]=seg5;4'h6: HEX4[6:0]=seg6;4'h7: HEX4[6:0]=seg7;4'h8: HEX4[6:0]=seg8;4'h9: HEX4[6:0]=seg9;4'ha: HEX4[6:0]=sega;4'hb: HEX4[6:0]=segb;4'hc: HEX4[6:0]=segc;4'hd: HEX4[6:0]=segd;4'he: HEX4[6:0]=sege;4'hf: HEX4[6:0]=segf;default:HEX4[6:0]=seg0;endcasealways @(posedge clk_r)case(b_r[7:4])4'h0: HEX5[6:0]=seg0;4'h1: HEX5[6:0]=seg1;4'h2: HEX5[6:0]=seg2;4'h3: HEX5[6:0]=seg3;4'h4: HEX5[6:0]=seg4;4'h5: HEX5[6:0]=seg5;4'h6: HEX5[6:0]=seg6;4'h7: HEX5[6:0]=seg7;4'h8: HEX5[6:0]=seg8;4'h9: HEX5[6:0]=seg9;4'ha: HEX5[6:0]=sega;4'hb: HEX5[6:0]=segb;4'hc: HEX5[6:0]=segc;4'hd: HEX5[6:0]=segd;4'he: HEX5[6:0]=sege;4'hf: HEX5[6:0]=segf;default:HEX5[6:0]=seg0;endcaseendmodule运算模块:module alur(clk,rst,alu_out,a_r,b_r,opcode,zero);output [7:0] alu_out;output zero;input [7:0] a_r,b_r;input [2:0] opcode;input clk,rst;reg [7:0] alu_out;reg [3:0] cnt;parameterquA=3'b000,quB=3'b001,ADD=3'b010,DEC=3'b011,ANDD=3'b100,XORR=3'b101,XOR=3'b110, NXOP=3'b111;assign zero=!a_r;always @(posedge clk or negedge rst)if(!rst) cnt<=1'd0;else if(cnt==5) cnt<=1'd0;else cnt<=cnt+1'd1;always @(posedge clk or negedge rst)if(!rst) alu_out=0;else if(cnt==3) begincasex(opcode)quA: alu_out<=a_r;quB: alu_out<=b_r;ADD: alu_out<=a_r+b_r;DEC: alu_out<=a_r-b_r;ANDD: alu_out<=a_r&b_r;XORR: alu_out<=a_r|b_r;XOR: alu_out<=a_r^b_r;NXOP: alu_out<=a_r^~b_r;default: alu_out<=8'bxxxx_xxxx;endcaseendelse alu_out=0;endmodule结果显示模块:module digital(clk_r,rst,alu_out,HEX1,HEX0);input [7:0] alu_out;input clk_r,rst;output reg[6:0] HEX1,HEX0;parameter seg0=7'b1000000,seg1=7'b1111001,seg2=7'b0100100,seg3=7'b0110000,seg4=7'b0011001,seg5=7'b0010010,seg6=7'b0000010 ,seg7=7'b1111000,seg8=7'b0000000,seg9=7'b0010000,sega=7'b0001000,segb=7'b0000011 ,segc=7'b1000110,segd=7'b0100001,sege=7'b0000110,segf=7'b0001110;always @(posedge clk_r)case(alu_out[3:0])4'h0: HEX0[6:0]=seg0;4'h1: HEX0[6:0]=seg1;4'h2: HEX0[6:0]=seg2;4'h3: HEX0[6:0]=seg3;4'h4: HEX0[6:0]=seg4;4'h5: HEX0[6:0]=seg5;4'h6: HEX0[6:0]=seg6;4'h7: HEX0[6:0]=seg7;4'h8: HEX0[6:0]=seg8;4'h9: HEX0[6:0]=seg9;4'ha: HEX0[6:0]=sega;4'hb: HEX0[6:0]=segb;4'hc: HEX0[6:0]=segc;4'hd: HEX0[6:0]=segd;4'he: HEX0[6:0]=sege;4'hf: HEX0[6:0]=segf;default: HEX0[6:0]=seg0;endcasealways @(posedge clk_r)case(alu_out[7:4])4'h0: HEX1[6:0]=seg0;4'h1: HEX1[6:0]=seg1;4'h2: HEX1[6:0]=seg2;4'h3: HEX1[6:0]=seg3;4'h4: HEX1[6:0]=seg4;4'h5: HEX1[6:0]=seg5;4'h6: HEX1[6:0]=seg6;4'h7: HEX1[6:0]=seg7;4'h8: HEX1[6:0]=seg8;4'h9: HEX1[6:0]=seg9;4'ha: HEX1[6:0]=sega;4'hb: HEX1[6:0]=segb;4'hc: HEX1[6:0]=segc;4'hd: HEX1[6:0]=segd;4'he: HEX1[6:0]=sege;4'hf: HEX1[6:0]=segf; default: HEX1[6:0]=seg0; endcaseendmodule五.仿真实现:整体图:波形图:六.硬件实现:1.引脚图:2.分析结果说明:开关0~2是算法选择,具体算法类型见设计功能第2项开关10~17数字输入,用8位二进制数表示两个十六进制数,每四位表示一位按键0是锁存及运算,当开关10~17输入一个数A时,按下按键0,数据就是锁存,再输入数就是数B,而当数据B也锁存后,再次按下按键0,就会显示运算结果按键1是复位键七.总结:通过这次FPGA实验课让我明白了真正的编程不像是那些C语言小程序那么简单,为了这次实验算是绞尽脑汁,最后为了读懂程序,还去专门找了Verilog语言辅导书,不管过程再怎么复杂曲折,总算是顺利的完成了实验任务,到了现在回顾为期6周的学习过程,也有一些时候是因为上课不认真,为后来的程序设计增加了难度,也有一些原因是因为自己本身能力不足导致设计接连失败,不得不说,也有一部分原因是因为学习实验室的器件不足,限制了实验设计的范围,也使实验难度增加。

8位ALU算术逻辑单元verilog语言

8位ALU算术逻辑单元verilog语言

理工大学城市学院FPGA实验报告实验容:8位ALU系别班级:电子1004班学号::日期:2013.4.14一.设计概述:一种基于可编程逻辑器件FPGA和硬件描述语言的8位的ALU的设计方法。

该ALU 采用层次设计方法,有寄存器模块、控制模块和显示模块组成,能实现8位无符号数的取值、加减和4种逻辑运算(与、或、异或、同或)。

该ALU在QuartusII软件环境下进行功能仿真,通过DE2验证。

二.设计功能:1、该处理器的数据宽度为8bit,可以实现算术加法、减法、逻辑与、逻辑或、逻辑非、逻辑与非、逻辑或非和逻辑异或等8种运算。

2、用选择端opcode [2:0] 选择8种运算,2个操作数分别是a_r [7:0]和b_r[7:0],运算结果是alu_out[7:0];并定义选择如下。

3、使用DE2板上的3个拨码开关设置当前ALU的运算功能,再由8个拨码开关给定数据A和数据B,由一个按键key手动提供脉冲。

三.设计方案:本设计共有5个模块。

1)脉冲输出器(key手动脉冲),计数依次产生4个脉冲到各个部件,第一个脉冲启动信号。

2)寄存器A,第二个脉冲来时锁存数据A,并在数码管上显示。

3)寄存器B,第三个脉冲来时锁存数据B,并在数码管上显示。

4)8位ALU,第四个脉冲来时进行运算,并锁存结果alu_out。

5)结果显示器,将结果显示通过DE2上的数码管显示。

四.程序分析:主程序模块:module alu8(clk,clk_r,rst,a,b,alu_out,opcode,sw_ab,HEX1, HEX0, HEX7, HEX6, HEX5, HEX4);input clk,rst,clk_r;input [7:0] sw_ab;input [2:0] opcode;output [6:0] HEX1, HEX0, HEX7, HEX6, HEX5, HEX4;output [7:0] a;output [7:0] b;output [7:0] alu_out;rega U1(.clk(clk),.rst(rst),.sw_ab(sw_ab),.a_r(a),.clk_r(clk_r),.HEX7(HEX7),. HEX6(HEX6)); regb U2(.clk(clk),.rst(rst),.sw_ab(sw_ab),.b_r(b),.clk_r(clk_r),.HEX5(HEX5),. HEX4(HEX4)); alur U3(.clk(clk),.rst(rst),.a_r(a),.b_r(b),.alu_out(alu_out),.opcode(opcode));digital U4(.clk_r(clk_r),.rst(rst),.alu_out(alu_out),.HEX1(HEX1),. HEX0(HEX0)); endmodule第一位数A模块:module rega (clk,clk_r,rst,sw_ab,a_r,HEX7,HEX6);input [7:0] sw_ab;input clk,clk_r,rst;output [7:0] a_r;reg [7:0] a_r;output reg[6:0] HEX7,HEX6;reg [3:0]t;always (posedge clk or negedge rst)if(!rst)t<=1'd0;else if(cnt==5)t<=1'd0;elset<=cnt+1'd1;always (posedge clk or negedge rst)if(!rst) a_r=0;else if(cnt==1) a_r=sw_ab;else a_r=a_r;parameter seg0=7'b1000000,seg1=7'b1111001,seg2=7'b0100100,seg3=7'b0110000,seg4=7'b0011001,seg5=7'b0010010, seg6=7'b0000010,seg7=7'b1111000,seg8=7'b0000000,seg9=7'b0010000,sega=7'b0001000,segb=7'b00000 11,segc=7'b1000110,segd=7'b0100001,sege=7'b0000110,segf=7'b0001110;always (posedge clk_r)case(a_r[3:0])4'h0: HEX6[6:0]=seg0;4'h1: HEX6[6:0]=seg1;4'h2: HEX6[6:0]=seg2;4'h3: HEX6[6:0]=seg3;4'h4: HEX6[6:0]=seg4;4'h5: HEX6[6:0]=seg5;4'h6: HEX6[6:0]=seg6;4'h7: HEX6[6:0]=seg7;4'h8: HEX6[6:0]=seg8;4'h9: HEX6[6:0]=seg9;4'ha: HEX6[6:0]=sega;4'hb: HEX6[6:0]=segb;4'hc: HEX6[6:0]=segc;4'hd: HEX6[6:0]=segd;4'he: HEX6[6:0]=sege;4'hf: HEX6[6:0]=segf;default:HEX6[6:0]=seg0;endcasealways (posedge clk_r)case(a_r[7:4])4'h0: HEX7[6:0]=seg0;4'h1: HEX7[6:0]=seg1;4'h2: HEX7[6:0]=seg2;4'h3: HEX7[6:0]=seg3;4'h4: HEX7[6:0]=seg4;4'h5: HEX7[6:0]=seg5;4'h6: HEX7[6:0]=seg6;4'h7: HEX7[6:0]=seg7;4'h8: HEX7[6:0]=seg8;4'h9: HEX7[6:0]=seg9;4'ha: HEX7[6:0]=sega;4'hb: HEX7[6:0]=segb;4'hc: HEX7[6:0]=segc;4'hd: HEX7[6:0]=segd;4'he: HEX7[6:0]=sege;4'hf: HEX7[6:0]=segf;default:HEX7[6:0]=seg0;endcaseendmodule第二位数B模块:module regb (clk,clk_r,rst,sw_ab,b_r,HEX5,HEX4); input [7:0] sw_ab;input clk,clk_r,rst;output [7:0] b_r;reg [7:0] b_r;output reg[6:0] HEX5,HEX4;reg [3:0]t;always (posedge clk or negedge rst)if(!rst)t<=1'd0;else if(cnt==5)t<=1'd0;elset<=cnt+1'd1;always (posedge clk or negedge rst)if(!rst) b_r=0;else if(cnt==2) b_r=sw_ab;else b_r=b_r;parameter seg0=7'b1000000,seg1=7'b1111001,seg2=7'b0100100,seg3=7'b0110000,seg4=7'b0011001,seg5=7'b0010010,seg6=7'b000001 0,seg7=7'b1111000,seg8=7'b0000000,seg9=7'b0010000,sega=7'b0001000,segb=7'b00000 11,segc=7'b1000110,segd=7'b0100001,sege=7'b0000110,segf=7'b0001110;always (posedge clk_r)case(b_r[3:0])4'h0: HEX4[6:0]=seg0;4'h1: HEX4[6:0]=seg1;4'h2: HEX4[6:0]=seg2;4'h3: HEX4[6:0]=seg3;4'h4: HEX4[6:0]=seg4;4'h5: HEX4[6:0]=seg5;4'h6: HEX4[6:0]=seg6;4'h7: HEX4[6:0]=seg7;4'h8: HEX4[6:0]=seg8;4'h9: HEX4[6:0]=seg9;4'ha: HEX4[6:0]=sega;4'hb: HEX4[6:0]=segb;4'hc: HEX4[6:0]=segc;4'hd: HEX4[6:0]=segd;4'he: HEX4[6:0]=sege;4'hf: HEX4[6:0]=segf;default:HEX4[6:0]=seg0;endcasealways (posedge clk_r)case(b_r[7:4])4'h0: HEX5[6:0]=seg0;4'h1: HEX5[6:0]=seg1;4'h2: HEX5[6:0]=seg2;4'h3: HEX5[6:0]=seg3;4'h4: HEX5[6:0]=seg4;4'h5: HEX5[6:0]=seg5;4'h6: HEX5[6:0]=seg6;4'h7: HEX5[6:0]=seg7;4'h8: HEX5[6:0]=seg8;4'h9: HEX5[6:0]=seg9;4'ha: HEX5[6:0]=sega;4'hb: HEX5[6:0]=segb;4'hc: HEX5[6:0]=segc;4'hd: HEX5[6:0]=segd;4'he: HEX5[6:0]=sege;4'hf: HEX5[6:0]=segf;default:HEX5[6:0]=seg0;endcaseendmodule运算模块:module alur(clk,rst,alu_out,a_r,b_r,opcode,zero);output [7:0] alu_out;output zero;input [7:0] a_r,b_r;input [2:0] opcode;input clk,rst;reg [7:0] alu_out;reg [3:0]t;parameterquA=3'b000,quB=3'b001,ADD=3'b010,DEC=3'b011,ANDD=3'b100,XORR=3'b101,XOR =3'b110,NXOP=3'b111;assign zero=!a_r;always (posedge clk or negedge rst)if(!rst)t<=1'd0;else if(cnt==5)t<=1'd0;elset<=cnt+1'd1;always (posedge clk or negedge rst)if(!rst) alu_out=0;else if(cnt==3) begincasex(opcode)quA: alu_out<=a_r;quB: alu_out<=b_r;ADD: alu_out<=a_r+b_r;DEC: alu_out<=a_r-b_r;ANDD: alu_out<=a_r&b_r;XORR: alu_out<=a_r|b_r;XOR: alu_out<=a_r^b_r;NXOP: alu_out<=a_r^~b_r;default: alu_out<=8'bxxxx_xxxx;endcaseendelse alu_out=0;endmodule结果显示模块:module digital(clk_r,rst,alu_out,HEX1,HEX0);input [7:0] alu_out;input clk_r,rst;output reg[6:0] HEX1,HEX0;parameter seg0=7'b1000000,seg1=7'b1111001,seg2=7'b0100100,seg3=7'b0110000,seg4=7'b0011001,seg5=7'b0010010,seg6=7'b000001 0,seg7=7'b1111000,seg8=7'b0000000,seg9=7'b0010000,sega=7'b0001000,segb=7'b00000 11,segc=7'b1000110,segd=7'b0100001,sege=7'b0000110,segf=7'b0001110;always (posedge clk_r)case(alu_out[3:0])4'h0: HEX0[6:0]=seg0;4'h1: HEX0[6:0]=seg1;4'h2: HEX0[6:0]=seg2;4'h3: HEX0[6:0]=seg3;4'h4: HEX0[6:0]=seg4;4'h5: HEX0[6:0]=seg5;4'h6: HEX0[6:0]=seg6;4'h7: HEX0[6:0]=seg7;4'h8: HEX0[6:0]=seg8;4'h9: HEX0[6:0]=seg9;4'ha: HEX0[6:0]=sega;4'hb: HEX0[6:0]=segb;4'hc: HEX0[6:0]=segc;4'hd: HEX0[6:0]=segd;4'he: HEX0[6:0]=sege;4'hf: HEX0[6:0]=segf;default: HEX0[6:0]=seg0;endcasealways (posedge clk_r)case(alu_out[7:4])4'h0: HEX1[6:0]=seg0;4'h1: HEX1[6:0]=seg1;4'h2: HEX1[6:0]=seg2;4'h3: HEX1[6:0]=seg3;4'h4: HEX1[6:0]=seg4;4'h5: HEX1[6:0]=seg5;4'h6: HEX1[6:0]=seg6;4'h7: HEX1[6:0]=seg7;4'h8: HEX1[6:0]=seg8;4'h9: HEX1[6:0]=seg9;4'ha: HEX1[6:0]=sega;4'hb: HEX1[6:0]=segb;4'hc: HEX1[6:0]=segc;4'hd: HEX1[6:0]=segd;4'he: HEX1[6:0]=sege;4'hf: HEX1[6:0]=segf; default: HEX1[6:0]=seg0; endcaseendmodule五.仿真实现:整体图:波形图:六.硬件实现:1.引脚图:2.分析结果说明:开关0~2是算法选择,具体算法类型见设计功能第2项开关10~17数字输入,用8位二进制数表示两个十六进制数,每四位表示一位按键0是锁存及运算,当开关10~17输入一个数A时,按下按键0,数据就是锁存,再输入数就是数B,而当数据B也锁存后,再次按下按键0,就会显示运算结果按键1是复位键七.总结:通过这次FPGA实验课让我明白了真正的编程不像是那些C语言小程序那么简单,为了这次实验算是绞尽脑汁,最后为了读懂程序,还去专门找了Verilog语言辅导书,不管过程再怎么复杂曲折,总算是顺利的完成了实验任务,到了现在回顾为期6周的学习过程,也有一些时候是因为上课不认真,为后来的程序设计增加了难度,也有一些原因是因为自己本身能力不足导致设计接连失败,不得不说,也有一部分原因是因为学习实验室的器件不足,限制了实验设计的围,也使实验难度增加。

计算机组成原理实验指导书

计算机组成原理实验指导书

实验一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为高电平有效。

另有信号T4为脉冲信号,在手动方式下进行实验时,只需将跳线器J23上T4与手动脉冲发生开关的输出端SD相连,按动手动脉冲开关,即可获得实验所需的单脉冲.2、实验接线本实验用到4个主要模块: (1)低8位运算器模块 (2)数据输入并显示模块 (3)数据总线显示模块(4)功能开关模块(借用微地址输入模块)。

DVCC-C8JH计算机组成原理实验指导书print

DVCC-C8JH计算机组成原理实验指导书print

计算机组成原理实验指导书李翠玉主编沈阳工业大学2010年8月前言计算机组成原理是计算机科学与技术及相关专业的一门专业基础课,是工程性、技术性和实践性都非常强的一门课程,不仅在开展理论教学中讲授计算机的基本组成与工作原理的基础知识的同时,还要重视实践教学环节以训练学生一定的硬件实践动手能力。

计算机组成原理实验是利用中大规模集成电路等器件,对组成计算机的各相关部件进行逻辑设计、连线及测试。

在实验过程中,通过对各部件的实现原理进行逻辑设计,经过对器件的选择及连线、编译、仿真等工作后,对于设计出的各个部件进行正确性测试。

本实验实践环节在课程教学内容基础上提出基础实验和深度更广、综合性更强的设计性实验,要求学生通过基本实验验证运算器的算术逻辑运算、存储器的读写操作和寄存器、存储器、外设之间的数据传送通路等内容。

在设计性实验中给出设计要求和设计思路,由学生自行设计和调试,独立完成,加深学生对计算机的组成原理和指令在计算机中运行过程的理解,学生可体验设计一个简单计算机模型的方案、通过微指令、微程序的设计实现计算机的基本功能、不断调试最终达到设计要求的全过程。

课程实验环节的目的是帮助学生系统地掌握计算机中的运算器、寄存器、译码电路、存储器、和存储微指令的控制存储器等硬件组成的相关知识,实现知识融会贯通的目的。

通过实验使学生在实际操作中加深对计算机硬件组成与设计、指令的调试和运行维护等多方面的技能,同时训练一定的实验动手能力。

也使学生系统科学地受到分析问题和解决问题的训练,制定了一些实验项目。

本书由李翠玉主编,由于作者水平有限,加之时间紧迫,书中难免有疏漏之处,请广大读者批评指正。

作者2010年8月目录DVCC系列计算机组成原理系统概述 (1)第二章调试软件简介 (5)实验一 8位算术逻辑运算实验 (8)实验二带进位控制8位算术逻辑运算实验 (14)实验三 16位算术逻辑运算实验 (20)实验四移位运算器实验 (26)实验五存储器实验 (30)实验六数据通路实验 (35)实验七微控制器实验 (38)第一章DVCC系列计算机组成原理系统概述一、DVCC系列计算机组成原理系统简介DVCC系列计算机组成原理系统是江苏启动计算机公司研制的。

实验2运算器ALU实验

实验2运算器ALU实验

实验2 运算器ALU实验运算器ALU是CPU的主要部件,数据处理的中心。

ALU可以实现算术加减运算和逻辑“与”、“或”、“非”运算,本实验设计8位ALU,为完成8为ALU,我们从1位全加器设计开始,经1位加法器,4位加法器,4位加减法器,到4位算术逻辑运算器ALU;再由4位ALU到8位ALU。

2.1 1位加法器设计1位加法器是构成多位加法器的基础,通过1位加法器可以组成4位加法器,4位减法器。

因此,本实验首先从1位全加器开始。

2.1.1 实验题目1位全加器。

2.1.2 实验内容设计1位全加器,并通过输入波形图验证。

2.1.3 实验目的与要求通过本实验使学生进一步掌握电子电路的设计方法,熟悉CAD软件QuartusII的使用,掌握使用QuartusII仿真来验证电路设计正确性的方法。

2.1.4 实验步骤设置本实验的项目所在路径,命名项目的名称为1ALU,顶层文件的名称也自动命名为1ALU。

如在文件夹C:\eda\ALU下新建工程1ALU,如图2-1 新建工程1ALU所示。

图2-1 新建工程1ALU直接点击next,直到器件选择对话框,如图2-2所示。

这里根据最终使用的FPGA器件选择一种器件,如Cyclone下的EP1C3T144C8,如果不下载到FPGA上进行实验,选择哪一种器件都无所谓。

图2-2 实现器件选择指定设计、仿真和时序验证工具,如图2-3所示,点击next,完成工程建立。

图2-3 工具选择设计1位全加器FA1位全加器是指可以实现两个1位二进制数和低位进位的加法运算逻辑电路(半加器不包括低位进位C i-1)。

它依据的逻辑表达式是:进位C i=A i B i+A i C i-1+B i C i-1,和S i=A i⊕B i⊕C i-1(本算式推导过程可以在教材中找到)。

其中A i和B i是两个1位二进制数,C i代表向高位的进位,C i-1代表低位来的进位,S i代表本位和。

依据上述逻辑表达式,设计实现1位全加的电路图。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

3.2 算术逻辑运算部件
1位全加器
n 位并行加法器 ALU 单元 乘、除 法器 运算器
3.2.1 加法单元
若:+1101,+1111
两数相加,且分别放入A 、B 两个寄存器。

0 0 1 1 0 1 (补码、双符号位表示) +) 0 0 1 1 1 1 0 1 1 1 0 0
第3位:输入量: Ai(1),Bi(1), C i-1(1) 本位进位 C i ∑i
C i-1 A i B i 低位进位 本位操作数
输入、输出量之间的关系式:
Σi =(A B i C i-1 (1) C i = A i B i A B i )C i-1 (2)
根据上式,得出一位全加器的逻辑电路图:
根据(1)式得:
如果三个输人中1的个数为奇数,则本位和为1,否则为0。

根据(2)式得:
当本位的两个输入A i 、B i 均为1时,不管低位有无进位C i-1传来,都必然产生进位C i ;若C i-1为1,只要A i 、B i 中有一个为1,也必然产生进位。

i-1 i-1 i
i
i i (a ) (b ) 进位链 选择逻 辑控制 移位器
寄存器组
选择器
3.3.1 2并行加法器与进位逻辑结构 一、串行加法器
1.定义:如果每步只求一位和,将n 位加分成n 步实现,这样的加法器称为串行
加法器。

2.组成: 1
个一位全加器
1个移位寄存器:从低到高串行提供操作数相加;
1个寄存器 1个触发器
3.特点:结构简单,速度极慢。

二、并行加法器
1.定义:如果用n 位全加器一步实现n 位相加,即n 位同步相加,这样的加法器称为并行加法器。

2.组成: n 位加法器
并行加法器 串行进位链 进位链
并行进位链
根据(指C i-1 )输入量提供时间的不同,将进位链分为带串行进位链的并行加法器,带并行进位链的并行加法器。

加法器的运算速度不仅与全加器的运算速度有关,更主要的因素是取决于进位传递速度。

3.进位信号的基本逻辑:
C i = A i B i +(A i )C i-1
令Gi= A i B i 进位产生函数 Pi = A i ,进位传递函数 4.串行进位链
(1)定义:各级进位信号直接依赖于低一级的进位信号 (2)关系式:
C 1 = G 1 + P 1C 0
C 2 = G 2 + P 2C 1
C 3 = G 3 + P 3C 2 。

C n = G n + P n C n-1
(3)结构图:
C
A n
B n A 2 B 2 A 1 B 1
(4)特点:结构比较简单,运算速度比较慢。

5.并行进位链
(1)定义:各级进位信号是并行(同时)形成的。

(2)关系式:
C 1 = G 1 + P 1C 0
C 2 = G 2 + P 2G 1 + P 2P 1C 0
C 3 = G 3 + P 3G 2 + P 3P 2G 1 + P 3P 2P 1C 0 。

C n = G n + P n G n-1+ … + P n …P 1C 0
注:Pi = A B i Gi= A i B i (Ai ,Bi ,C0 ) (Gi ,Pi ,C 0) Ci (3)结构图:
(4)
特点:结构复杂,运算速度快。

6.组内并行,组间并行(实际为串行)的进位链
例如:加法器字长16位,没4位为一组,则将进位链分为两级。

(1)第一级:小组内并行进位链
C 1
C
2
C 3 C 4 C 5 C 6 C 7 C 8
P
1
P 2 P 3 P 4
G 1 G
2
G 3 G 4
ⅠG ñ
第一小组:C 1=G 1+P 1 C 0
稳 定
1 n n 2
C2=G2+P2G1+P2P1 C0
C3=G3+P3G2+P3P2G1+P3P2P1 C0
C4=G4+P4G3++P4P3P2G1 + C0
第二小组:C5 = G5 + P5CⅠ
C6 = G6 + P6G5 + P6P5CⅠ
C7 = G7 + P7G6 + P7P6G5 + P7P6P5CⅠ
C8 = C8 + P8G7 + P8P7G6 + P8P7P6G5 + P8P7P6P5CⅠ
第三小组:
第四小组:
(2)第二级:小组间并行进位链
a. CⅠ= C4 = G4 + P4G3 + P4P3G2 + P4P3P2G1 + P4P3P2P1C0
b.
c.
d.
3.3.3 ALU单元与多位ALU部件
ALU定义:若干位全加器,并行进位链,输入选择门集成在一块芯片上。

一、一位ALU逻辑:
1.组成全加器
并行进位链
输入选择逻辑
2.逻辑关系式:
二、四位ALU芯片举例
1.四位ALU
2.组内并行进位链
略。

相关文档
最新文档