多功能算术逻辑运算单元的EDA设计

多功能算术逻辑运算单元的EDA设计
多功能算术逻辑运算单元的EDA设计

6.9 多功能算术逻辑运算单元的EDA设计

6.9.1设计要求

利用74181设计一个带进位控制的8位算术逻辑运算单元ALU_8,该算术逻辑运算单元具有16个数据通路,实现表6-12所示基本算术运算功能和逻辑运算功能。

表6-12 ALU_8的运算功能表

注:“+”是逻辑或,“加”是算术加,输入为A和B,输出为F。

6.9.2 原理描述

计算机的一个最主要功能就是处理各种算术和逻辑运算,该功能要由CPU中的运算器来完成。运算器也称算术逻辑运算单元(ALU)。其主要功能包括:

1 执行数值数据的算术加减乘除等运算,执行逻辑数据的与或非等逻辑运算,

2 暂时存放参加运算的数据和中间结果,由多个通用寄存器来承担。

3 运算器通常也是数据传输的通路。

根据设计要求,可得带进位控制的8位算术逻辑运算单元的结构框图和数据通路如图6-81所示。其中8位ALU运算器模块,是利用2片4位ALU芯片74181级联构成的8位字长ALU。为进行双操作数运算,运算器模块的两个8位数据由数据输入(总线)分别通过两个电平锁存器74373锁入。16路通道计数将根据计数脉冲选择表6-12所示的16种运

算模式。在8位ALU运算器模块设置两个控制输入信号,一个为进位控制信号,一个为算术运算和逻辑运算的功能选择信号。

图6-81 8位算术逻辑运算单元的结构框图

为实现进位控制,可将运算器74181的进位位cout送入D锁存器,由进位脉冲T4和使能信号CN控制其写入,这时,CN的功能是电平控制信号(高电平时,CN有效),控制是否允许将进位信号coout加入下一运算周期的最低进位位,从而可实现带进位控制运算。通过进位控制可实现多个8位数据的算术运算。

6.9.3多功能算术逻辑运算单元层次化设计方案

1 ALU运算器模块ALU_8的设计

该模块是多功能算术逻辑运算单元的主体模块,其原理图如图6-85所示,其中进位控制触发信号CP和输出CO信号的逻辑表达式为:

CP=NOT(CN)?T4,CO=NCN?QD (6-8)在QuartusII中打开一个新的原理图编辑窗,从QuartusII的基本逻辑元件库“primitives”中调出两片74181,1片DFF,1片二输入与门AND2,1片二输入与非门NAND2并加入相应的输入输出引脚,按照图6-82用鼠标完成电路的内部连线及与输入和输出引脚的连接。图6-85中,参加运算的两个8位数据分别为A[7..0]和B[7..0];运算模式由S[3..0]的组合决定;此外,M=0,选择算术运算,M=1选择逻辑运算;CN为进位控制信号;F[7..0]为输出结果;CO为运算后的输出进位位;T4为进位脉冲信号。

图6-82 运算器模块ALU_8原理图

将所设计的图形文件ALU_8.bdf保存到已建立的文件夹中,并设置成工程文件,以后的操作就都是对当前工程文件进行的。执行QuartusII主窗口的“Processing”菜单的“Star Compilation”选项,启动全程编译,对该程序编译仿真后可得其仿真输出波形如图6-83(a)所示,生成的元件符号图如图6-83(b)所示。

分析图6-83(a)仿真输出波形,当T4=0,CN=0,M=0(选择算术运算功能)时;S[3..0]=9表示加法运算;输入加数A[7..0]为12或9DH ,B[7..0]=E5H;CN置为1(允许锁存ALU的进位);当进位脉冲信号为0时,执行无进位输入的加法,即12H+E5H=F7H,9DH+E5H=82H

(低8位的和);当进位脉冲信号为0时,表示加法有进位,并被锁;同时可以看到此进位被累加,82H+1H=83H,输出F=182H,结果正确。

(a) (b)

图6-83运算器模块ALU_8电路

(a)仿真输出波形;(b)元件符号图

2 16路通道计数模块CNT_16的设计

CNT_16实际上为一模16的二进制计数器, 可利用QuartusII的兆功能设计向导“MegaWizard Plug-In Manager…”定制模16的二进制计数器,其定制的界面如图6-87所示,clock为计数输入脉冲,q[3..0]为计数的二进制数输出,供ALU_8选择不同的运算模式。

图6-84定制模16的二进制计数器CNT_16

3 数据寄存器模块REG_A_B

数据寄存器模块REG_A_B的原理图如图6-85所示。为进行双操作数运算,运算器模块的两个8位数据由数据输入总线分别通过数据寄存器模块REG_A_B两个电平锁存器74373锁入。该模块的输入全部连在数据总线Data_bus[7..0]中,通过数据选择开关A0_B0,依次选择输出数据A[7..0]、B[7..0]给运算器模块ALU_8。其正确编译后仿真输出波形和元件符号如图6-86所示。A0_B0=0时,存储数据A[7..0](9D),A0_B0=1时,存储数据B[7..0](E5)。

图6-85数据寄存器模块REG_A_B原理图

(a) (b)

图6-86数据寄存器模块REG_A_B

(a) 仿真输出波形;(b)元件符号图

6.9.3多功能算术逻辑运算单元的顶层设计和仿真

根据6.9.2节的原理描述,可得到图6-87所示的多功能算术逻辑运算单元顶层电路的原理图。在QuartusII的图型编辑方式下,从e:\chap6\ALU中调出前面所设计的底层模块,即1片ALU运算器模块ALU_8,1片16路通道计数模块CNT_16,1片数据寄存器模块REG_A_B及相应的输入输出引脚,根据图6-87完成多功能算术逻辑运算单元顶层电路的原理图输入,电路连好线后,编译正确无误后,可得其仿真输出波形和元件符号如图6-88所示。

图6-87多功能算术逻辑运算单元顶层电路原理图

图6-88中,CY为进位控制信号(CY=1表示禁止进位,CY=0表示允许进位);T进位脉冲信号(高电平有效);IN[7..0]为总线数据输入,可通过数据选通开关KAB经电平锁存器74373依次选择输出数据A[7..0](E5H)、B[7..0](9DH),M为多功能算术逻辑运算单元的算术/逻辑运算的选择信号(M=0,选择算术运算;M=1,选择逻辑运算),SCLK为计数输入脉冲,供ALU_8_TOP选择16种(从0000到1111)运算模式,S[3..0]显示当前的运算模式为1001(9:加法运算模式),F[7..0]为运算结果输出,COUT为进位输出(低电平有效),结合起来即可得到9DH+E5H=182H的正确输出结果。

(a) (b)

图6-88多功能算术逻辑运算单元顶层电路ALU_8_TOP

(a)仿真输出波形;(b)元件符号图

6.9.4 硬件测试

为了能对所设计的多功能算术逻辑运算单元进行硬件测试,应将其输入输出信号锁定在开发系统的目标芯片引脚上,并重新编译,然后对目标芯片进行编程下载,完成的多功能算术逻辑运算单元最终开发。其硬件测试示意图如图6-89,不失一般性,本设计选用的EDA 开发平台为GW48,电路模式为NO.0,目标器件为EP1C6Q240C8芯片。

图6-89多功能算术逻辑运算单元硬件测试示意图

多功能算术逻辑运算单元的算术/逻辑运算的选择信号M与实验系统板上的键8(K8对应EPIC6芯片的第240引脚)相连;进位脉冲信号T与键5(K5对应EPIC6芯片的第237引脚)相连;进位控制信号CY接键7(K7对应EPIC6芯片的第239引脚);计数输入脉冲SCLK接键6(K6对应EPIC6芯片的第238引脚);数据选通开关KAB接键3(K3对应EPIC6芯片的第235引脚);总线输入数据IN[7..4] 接键2(K2对应EPIC6芯片的12、8、7、6引脚),IN[3..0] 接键1(K1对应EPIC6芯片的4、3、2、1引脚)

数码管8(PIO47-PIO44)、数码管7(PIO43-PIO40)显示数据A[7..0];数码管6(PIO39-PIO436)、数码管5(PIO35-PIO32)显示数据B[7..0];数码管4(PIO26)显示进位输出(最高位);数码管3(PIO27-PIO24) 显示运算结果F[7..4]、数码管2(PIO23-PIO20) 显示运算结果F[3..0];数码管1(PIO19-PIO16)显示运算模式S[3..0]。

完成引脚锁定后,再编译一次,将引脚锁定信息编译进下载文件ALU_8_TOP.sof中。

选择编程模式和配置。为了将编译产生的下载文件配置进EPIC6芯片中进行测试,首先将系统连接好上电,按模式开关选择No.0,然后在菜单Tool中,选择Programmer,在弹出编程窗Mode栏中选JTAG,点击左侧打开文件标符,选择配置文件step_moto.sof,最后点击下载标符。当“Progress”显示出100%,以及在底部的处理栏中出现“Configuration Succeeded”时,表示编程成功。

操作实验板上的输入按钮“键8,键7,键6,键5,键4,键2,键1”得到不同的输入值,即可测试多功能算术逻辑运算单元的工作情况。

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

实验报告 、实验名称 运算器实验—算术逻辑运算实验 、实验目的 1、了解运算器的组成原理。 2、掌握运算器的工作原理。 3、掌握简单运算器的数据传送通路。 4、验证运算功能发生器( 74LS181)的组合功能 三、实验设备 TDN-CM++ 计算机组成原理教学实验系统一套,导线若干四、实验原理 实验中所用的运算器数据通路如图1-1 所示。其中两片74LSl81以串行方式构成8 位字长的ALU,ALU 的输出经过一个三态门(74LS245)和数据总线相连。三态门由ALU-R 控制,控制运算器运算的结果能否送往总线,低电平有效。为实现双操作数的运算,ALU 的两个数据输入端分别由二个锁存器DR1、DR2 (由74LS273实现)锁存数据。要将数据总线上的数据锁存到DRl、DR2 中,锁存器的控制端LDDR1 和DDR2必须为高电平,同时由T4 脉冲到来。 数据开关“( INPUT DEVICE")用来给出参与运算的数据,经过三态 (74LS245) 后送入数据总线,三态门由SW—B控制,低电平有效。数据显示灯“( BUS UNIT") 已和数据总线相连,用来显示数据总线上的内容。 图中已将用户需要连接的控制信号用圆圈标明(其他实验相同,不再说明),其中除T4 为脉冲信号外,其它均为电平信号。由于实验电路中的时序信号均已连至“W/R UNIT ”的相应时序信号引出端,因此,在进行实验时,只需将“W /R UNIT"的T4接至“ STATE UNIT ”的微动开关KK2 的输入端,按动微动开关,即可获得实验所需的单脉冲。 ALU 运算所需的电平控制信号S3、S2、S1、S0 、Cn、M、LDDRl、 LDDR2 、ALU-B 、SW-B均由“ SWITCH UNIT ”中的二进制数据开关来模拟,其中Cn、ALU —B、SW 一 B 为低电平有效LDDR1 、LDDR2 为高电平有效。 对单总线数据通路,需要分时共享总线,每一时刻只能由一组数据送往总线。

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

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)结构图:

图像算术运算及逻辑运算

图像算术运算 代数运算函数: Imabsdiff 两幅图像的绝对差值 Imadd 两幅图像的加法 Imcomplement 补足一幅图像(反像-余数) Imdivide 两幅图像的除法 Imlincomb 两幅图像的线性组合 Immultiply 两幅图像的乘法 Imsubtract 两幅图像的减法 Z = IMLINCOMB(K1,A1,K2,A2, ..., Kn,An) 即:计算Z=K1*A1 + K2*A2 + ... +Kn*An 例子: %%f3.2(线性点运算) rice=imread('rice.png'); I=double(rice); J=I*0.43+60; rice2=uint8(J); subplot(1,2,1),imshow(rice); subplot(1,2,2),imshow(rice2); %%f3.7_8(加法运算:两图像相加) i=imread('rice.png'); j=imread('cameraman.tif'); k=imadd(i,j); subplot(1,3,1),imshow(i); subplot(1,3,2),imshow(j); subplot(1,3,3),imshow(k); %%imshow(k); %%f3.9(加法运算:增加亮度值) RGB=imread('cameraman.tif'); RGB2=imadd(RGB,50); RGB3=imadd(RGB,100); subplot(1,3,1),imshow(RGB); subplot(1,3,2),imshow(RGB2); subplot(1,3,3),imshow(RGB3);

算术逻辑运算单元ALU剖析

燕山大学 EDA课程设计报告书题目:算术逻辑逻辑单元ALU 姓名: 班级: 学号: 成绩:

一、设计题目及要求 题目名称:算术运算单元ALU 要求: 1.进行两个四位二进制数的运算; 2.算术运算:A+B, A-B, A×B; 3.逻辑运算:A and B, A or B, A not, A xor B; 4. 用数码管显示算术运算结果,以LED指示灯显示逻辑运算结果。 二、设计过程及内容 1.整体设计思路 (1)根据设计要求将题目划分为五个模块。包括两个逻辑运算模块,两个算术运算模块,和一个控制模块。其中逻辑运算模块为A and B和A or B,A not和A xor B;算术模块为A±B,A×B。 (2)因为需要进行四位二进制数的运算,因此用A3,A2,A1,A0表示四位二进制数A,用B3,B2,B1,B0表示四位二进制数B,用C4,C3,C2,C1表示四位二进制数C。其中A,B为输入,C为输出。

2.分模块设计 (1)A+B和A-B模块(李佳乐负责) A+B可以直接通过74283 两个四位二进制数加法器实现。A-B可以看作A+(-B),即A加B的补码来实现。同时再设计一个转换控制端M。M=0时实现A+B,M=1时实现A-B。最后再设计一个总的控制端K1,K1=1时模块正常工作,K1=0时不工作。做加法时,C0为进位输出,C0输出1表示有进位,做减法时,C0为借位输出,C0输出1表示有借位。通过74283五位输出,进入译码器将五位变成八位输出,在通过数码管显示。 A+B,A-B总原理图如下:

A+B,A-B分原理图如下:

译码器原理图如下: 扫描电路原理图如下:

16位算术逻辑运算实验

16 位算术逻辑运算实验 一、实验内容 1、实验原理 实验中所用16位运算器数据通路如图3-3所示。其中运算器由四片74LS181以并/串形成16位字长的ALU构成。低8位运算器的输出经过一个三态门74LS245(U33)到ALUO1插座,实验时用8芯排线和内部数据总线BUSD0~D7插座BUS1~6中的任一个相连,低8位数据总线通过LZD0~LZD7显示灯显示;高8位运算器的输出经过一个三态门74LS245(U33`)到ALUO1`插座,实验时用8芯排线和高8位数据总线BUSD8~D15插座KBUS1或KBUS2相连,高8位数据总线通过LZD8~LZD15显示灯显示;参与运算的四个数据输入端分别由四个锁存器74LS273(U29、U30、U29`、U30、)锁存,实验时四个锁存器的输入并联后用8芯排线连至外部数据总线EXD0~D7插座EXJ1~EXJ3中的任一个;参与运算的数据源来自于8位数据开并KD0~KD7,并经过一三态门74LS245(U51)直接连至外部数据总线EXD0~EXD7,输入的数据通过LD0~LD7显示。

本实验用到6个主要模块:⑴低8位运算器模块,⑵数据输入并显示模块,⑶数据总线显示模块,⑷功能开关模块(借用微地址输入模块),⑸高8位运算器模块,⑹高8位(扩展)数据总线显示模块。根据实验原理详细接线如下(接线⑴~⑸同实验一): ⑴ALUBUS连EXJ3; ⑵ALUO1连BUS1; ⑶SJ2连UJ2; ⑷跳线器J23上T4连SD; ⑸LDDR1、LDDR2、ALUB、SWB四个跳线器拨在左边(手动方式); ⑹AR跳线器拨在左边,同时开关AR拨在"1"电平; ⑺ALUBUS`连EXJ2;

计算机组成原理实验报告材料

福建农林大学计算机与信息学院信息工程类实验报告系:计算机科学与技术专业:计算机科学与技术年级: 09级 姓名:张文绮学号: 091150022 实验课程:计算机组成原理 实验室号:___田405 实验设备号: 43 实验时间:2010.12.19 指导教师签字:成绩: 实验一算术逻辑运算实验 1.实验目的和要求 1. 熟悉简单运算器的数据传送通路; 2. 验证4位运算功能发生器功能(74LS181)的组合功能。 2.实验原理 实验中所用到的运算器数据通路如图1-1所示。其中运算器由两片74181

以并/串形式构成8位字长的ALU。运算器的输出经过一个三态门(74245)和数据总线相连,运算器的两个数据输入端分别由两个锁存器(74373)锁存,锁存器的输入连接至数据总线,数据开关INPUT DEVICE用来给出参与运算的数据,并经过一个三态门(74245)和数据总线相连,数据显示灯“BUS UNIT”已和数据总线相连,用来显示数据总线内容。 图1-2中已将用户需要连接的控制信号用圆圈标明(其他实验相同,不再说明),其中除T4为脉冲信号,其它均为电平信号。由于实验电路中的时序信号均已连至W/R UNIT的相应时序信号引出端,因此,在进行实验时,只需将W/R UNIT 的T4接至STATE UNIT的微动开关KK2的输出端,按动微动开关,即可获得实验所需的单脉冲,而S3,S2,S1,S0,Cn,LDDR1,LDDR2,ALU-B,SW-B各电平控制信号用SWITCH UNIT中的二进制数据开关来模拟,其中Cn,ALU-B,SW-B为低电平控制有效,LDDR1,LDDR2为高电平有效。 3.主要仪器设备(实验用的软硬件环境) ZYE1603B计算机组成原理教学实验系统一台,排线若干。 4.操作方法与实验步骤

《计算机组成原理》实验报告---8位算术逻辑运算实验

. '. 计算机专业类课程 实验报告 课程名称:计算机组成原理 学 院:信息与软件工程学院 专 业:软件工程 学生姓名: 学 号: 指导教师: 日 期: 2012 年 12 月 15 日

电子科技大学 实验报告 一、实验名称:8位算术逻辑运算实验 二、实验学时:2 三、实验内容、目的和实验原理: 实验目的: 1.掌握算术逻辑运算器单元ALU(74LS181)的工作原理。 2.掌握模型机运算器的数据传送通路组成原理。 3.验证74LS181的组合功能。 4.按给定数据,完成实验指导书中的算术/逻辑运算。 实验内容: 使用模型机运算器,置入两个数据DR1=35,DR2=48,改变运算器的功能设定,观察运算器的输出,记录到实验表格中,将实验结果对比分析,得出结论。 实验原理: 1.运算器由两片74LS181以并/串形式构成8位字长的ALU。

. '. 2.运算器的输出经过一个三态门(74LS245)和数据总线相连。 3.运算器的两个数据输入端分别由两个锁存器(74LS273)锁存。 4.锁存器的输入连至数据总线,数据开关(INPUT DEVICE)用来给 出参与运算的数据,并经过一三态门(74LS245)和数据总线相连。 5.数据显示灯(BUS UNIT)已和数据总线相连,用来显示数据总线内 容。 实验器材(设备、元器件):模型机运算器 四、实验步骤: 1. 仔细查看试验箱,按以下步骤连线 1)ALUBUS连EXJ3 2) ALU01连BUS1 3) SJ2连UJ2 4) 跳线器J23上T4连SD 5) LDDR1,LDDR2,ALUB,SWB四个跳线器拨在左边 6) AR跳线器拨在左边,同时开关AR拨在“1”电平 2. 核对线路,核对正确后接通电源 3. 用二进制数据开关KD0-KD7向DR1和DR2寄存器置入8位运算数据。

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

算术逻辑运算器 一.实验目的与要求 试验目的:1、掌握算术运算器单元ALU(74LS181)的工作原理。 2、掌握简单运算器的数据传送通道。 3、验算由74LS181等组合逻辑电路组成的运算功能发生器运算功能。 4、能够按给定数据,完成实验指定的算术/逻辑运算。 试验要求:按练习的要求输入数据和完成相应的操作,将实验结果填入表格二.实验方案 1、按实验连线图接好线,仔细检查正确与否,无误后才接通电源。 2、用二进制数据开关分别向DR1寄存器和DR2寄存器置数。 3、通过总线输出DR1寄存器和DR2寄存器的内容。 4、比较实验结果和理论值是否一致,如果不一致,就分析原因,然后重做。 三.实验结果 练习一表1.1.2 练习二表1.1.3

1.实验结果分析 ●实验结果和理论值一致,讲明实验操作过程正确,实验结果准确无误。 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都是低电平有效,如果同时为低电平,这将导致数据一边输入一边输出。 4)DR1置数完成后,为什么要关闭控制端LDDR1? 答:不关闭的话将导致第二次输入的数据存入DR1中,覆盖之前的数据 DR2置数完成后,为什么要关闭控制端LDDR2? 答:不关闭的话,下此操作后的数据将会存入DR2中,覆盖之前的数据 5)在练习三的表1.1.4中,要求每一次的运算结果都要存入DR2寄存器,解释该存入操作 中为什么不用SW-B置“0”和ALU-B置“1” 答:因为这时候的数据已经是存在控制器中,不必要再输入,所以不必那样做。 6)“A+B”和”A加B”这两种运算有什么不同,查找表1.1.1,分别写出这两种运算中S3、 S2、S1、S0、M、CN各控制端的状态。 答:A+B表示逻辑加11101* A加B表示算术加100101 7)CN是进位控制端,在逻辑运算和算术运算中,它与哪种运算有关? 答:算术运算 8)做减法操作DR1减DR2时,与进位CN是否有关?如有关CN是0还是1? 答:有关,因为这是算术减。与0有关 进位控制运算器 1.实验目的与要求 试验目的: 1)、验证带进位控制的算术运算发生器的功能。 2)、按给定的数据完成几种指定的算术运算。 二、实验要求: 按练习一和练习二的要求输入数据和完成相应的操作,将实验结果填入表1.2.2和1.2.3. 三. 实验方案

ALU(算术逻辑运算单元)的设计,南京理工大学紫金学院vhdl实验报告,eda

EDA技术与应用 实验报告 实验名称:ALU(算术逻辑运算单元)的设计 姓名: 学号: 班级:通信 时间:2013 南京理工大学紫金学院电光系

一、实验目的 1、学习包集和元件例化语句的使用。 2、学习ALU电路的设计。 二、实验原理 1、ALU原理 ALU的电路原理图如图1 所示,主要由算术运算单元、逻辑单元、选择单元构成。 图1 ALU功能表如表1 所示。 表1 2、元件、包集 在结构体的层次化设计中,采用结构描述方法就是通过调用库中的元件或者已经设计好的模块来完成相应的设计。在这种结构体中,功能描述就像网表一样来表示模块和模块之间的互联。如ALU 是由算术单元、逻辑单元、多路复用器互相连接而构成。而以上三个模块是由相应的VHDL 代码产生的,在VHDL 输入方式下,如果要将三个模块连接起来,就要用到元件例化语句。

元件例化语句分为元件声明和元件例化。 (1)元件声明 在VHDL 代码中要引入设计好的模块,首先要在结构体的说明部分对要引入的模块进行说明。然后使用元件例化语句引入模块。 元件声明语句格式: component 引入的元件(或模块)名 port( 端口说明); end component; 注意:元件说明语句要放在“architecture”和“begin”之间。 (2)元件例化语句 为将引入的元件正确地嵌入到高一层的结构体描述中,就必须将被引用的元件端口信号与结构体相应端口信号正确地连接起来,元件例化语句可以实现该功能。 元件例化语句格式: 标号名:元件名(模块名) port map(端口映射); 标号名是元件例化语句的唯一标识,且结构体中的标识必须是唯一的;端口映射分为:位置映射、名称映射。 位置映射指 port map 中实际信号的书写顺序与component 中端口说明中的信号书写顺序一致,位置映射对书写顺序要求很严格,不能颠倒;名称映射指port map 中将引用的元件的端口信号名称赋予结构体中要使用元件的各个信号,名称映射的书写顺序要求不严格,顺序可以颠倒。 (3)包集 在实体及结构体中定义的对象、数据类型,对另外代码的实体是不能使用的。但是在同一工程的不同VHDL 文件中,有些对象、数据类型、子程序等常常被重复使用。为方便VHDL 代码的编写,简化电路设计,故引入包集。包集也称为程序包。 包集主要由两部分组成:程序包说明和程序包体。其中,程序包体是可选的,一般程序包说明列出所有项的名称,而程序包体给出各项的细节。 程序包说明中包含的内容很多,只要是通用的全局量,都可以在程序包中加以说明。主要内容如下: 对象(常量、变量、信号)的数据类型说明。 对象(常量、变量、信号)子类型的数值范围说明。 函数与过程说明。 元件语句说明。 程序包说明的书写格式如下: package 程序包名 is 说明语句; end 程序包名; 程序包名:设计者自定义便于记忆的标识符。说明语句:包括各种类型的说明语句。

计算机组成原理实验报告(运算器组成、存储器)

计算机组成原理实验报告 一、实验1 Quartus Ⅱ的使用 一.实验目的 掌握Quartus Ⅱ的基本使用方法。 了解74138(3:8)译码器、74244、74273的功能。 利用Quartus Ⅱ验证74138(3:8)译码器、74244、74273的功能。 二.实验任务 熟悉Quartus Ⅱ中的管理项目、输入原理图以及仿真的设计方法与流程。 新建项目,利用原理编辑方式输入74138、74244、74273的功能特性,依照其功能表分别进行仿真,验证这三种期间的功能。 三.74138、74244、74273的原理图与仿真图 1.74138的原理图与仿真图 74244的原理图与仿真图

1. 4.74273的原理图与仿真图、

实验2 运算器组成实验 一、实验目的 1.掌握算术逻辑运算单元(ALU)的工作原理。 2.熟悉简单运算器的数据传送通路。 3.验证4位运算器(74181)的组合功能。 4.按给定数据,完成几种指定的算术和逻辑运算。 二、实验电路 附录中的图示出了本实验所用的运算器数据通路图。8位字长的ALU由2片74181构成。2片74273构成两个操作数寄存器DR1和DR2,用来保存参与运算的数据。DR1接ALU的A数据输入端口,DR2接ALU的B数据输入端口,ALU的数据输出通过三态门74244发送到数据总线BUS7-BUS0上。参与运算的数据可通过一个三态门74244输入到数据总线上,并可送到DR1或DR2暂存。 图中尾巴上带粗短线标记的信号都是控制信号。除了T4是脉冲信号外,其他均为电位信号。nC0,nALU-BUS,nSW-BUS均为低电平有效。 三、实验任务 按所示实验电路,输入原理图,建立.bdf文件。 四.实验原理图及仿真图 给DR1存入01010101,给DR2存入10101010,然后利用ALU的直通功能,检查DR1、

计算机组成原理实验报告 算术逻辑运算单元实验

西华大学数学与计算机学院实验报告 课程名称:计算机组成原理年级:2011级实验成绩: 指导教师:祝昌宇姓名:蒋俊 实验名称:算术逻辑运算单元实验学号:312011*********实验日期:2013-12-15 一、目的 1. 掌握简单运算器的数据传输方式 2. 掌握74LS181的功能和应用 二、实验原理 (1)ALU单元实验构成 1、结构试验箱上的算术逻辑运算单元上的运算器是由运算器由2片74LS181构成8字长的ALU 单元。 2、2片74LS373作为2个数据锁存器(DR1、DR2),8芯插座ALU-OUT作为数据输入端,可通过短8芯扁平电缆,把数据输入端连接到数据总线上。 3、运算器的数据输出由一片74LS244(输出缓冲器)来控制,8芯插座ALU-OUT作为数据输出端,可通过短8芯扁平电缆把数据输出端连接到数据总线上。 (2)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,当控制信号ALU-O为低电平时,74LS244导通,把74LS181的运算结果输出到数据总线;ALU-O为高电平时,74LS244的输出为高阻。

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

实验二算术逻辑运算实验 一、实验目的 (1)了解运算器芯片(74LS181)的逻辑功能。 (2)掌握运算器数据的载入、读取方法,掌握运算器工作模式的设置。 (3)观察在不同工作模式下数据运算的规则。 二、实验原理 1.运算器芯片(74LS181)的逻辑功能 74LS181是一种数据宽度为4个二进制位的多功能运算器芯片,封装在壳中,封装形式如图2-3所示。 5V A1 B1 A2 B2 A3 B3 Cn4 F3 BO A0 S3 S2 S1 S0 Cn M F0 F1 F2 GND 图 2-3 74LS181封装图 主要引脚有: (1)A0—A3:第一组操作数据输入端。 (2)B0—B3:第二组操作数据输入端。 (3)F0—F3:操作结果数据输入端。 (4)F0—F3:操作功能控制端。 (5):低端进位接收端。

(6):高端进位输出端。 (7)M:算数/逻辑功能控制端。 芯片的逻辑功能见表2-1.从表中可以看到当控制端S0—S3为1001、M为0、 为1时,操作结果数据输出端F0—F3上的数据等于第一组操作数据输入端A0—A3上的数据加第二组操作数据输入端B0—B3上的数据。当S0—S3、M、 上控制信号电平不同时,74LS181芯片完成不同功能的逻辑运算操作或算数运算操作。在加法运算操作时,、进位信号低电平有效;减法运算操作时,、 借位信号高电平有效;而逻辑运算操作时,、进位信号无意义。 2.运算器实验逻辑电路 试验台运算器实验逻辑电路中,两片74LS181芯片构成一个长度为8位的运算器,两片74LS181分别作为第一操作数据寄存器和第二操作数据寄存器,一片74LS254作为操作结果数据输出缓冲器,逻辑结构如图2-4所示。途中算术运算操作时的进位Cy判别进位指示电路;判零Zi和零标志电路指示电路,将在实验三中使用。 第一操作数据由B-DA1(BUS TO DATA1)负脉冲控制信号送入名为DA1的第一操作数据寄存器,第二操作数据由B-DA2(BUS TO DATA2)负脉冲控制信号送入名为DA2的第二操作数据寄存器。74LS181的运算结果数据由(ALU TO BUS)低电平控制信号送总线。S0—S3、M芯片模式控制信号同时与两片74LS181的S0—S3、M端相连,保证二者以同一工作模式工作。实验电路的低端进位接收端Ci与低4位74LS181的相连,用于接收外部进位信号。低4为74LS181的与高4位74LS181的上相连,实现高、低4位之间进位信号的传递。高4位之间进位信号的传递。高4位74LS181的送进位Cy判别和进位指示电路。 表2-1 74LS181 芯片逻辑功能表

算术逻辑运算实验

实验报告 实验项目:算术逻辑运算实验(试验一) 课程名称:计算机组成原理 姓名:学号同组姓名:学号:实验位置(机号): 实验日期 实验1.掌握简单运算器的数据传送通路 目的2.验证运算器功能发生器(74LS181)的组合功能 3.验证带进为控制的算术运算器功能发生器(74LS181)的功能 4.按指定的数据完成几种制定的算术运算 5.验证移位控制的组合功能 实验YY-Z02计算机组成原理教学实验系统一台,排线若干。设备 实验 内容1.实验原理 (算 运算器实验原理图 法、 程 T4______ ALU-B 序、

_____ _____ 进位CyCn 步骤 299-B 判零_____ M 74LS2 电路CyNCn 和方 S0 99 ALU S1 法) (74LS181) S2 S3 _____I/O-RINPUT Ai =“0”B-DA1DA1 (74LS273)DA2

(74LS273)B-DA2 实验中所用的运算器数据通路图如图1-1所示,算术逻辑实验接线图如图1-2所示。图中所示的是由两片段74LS181芯片以并/串形式构成的8位字长的运算器。右方为低压4位运算芯片,左方为高4位运算芯片。低位芯片的进位输出端C(n+4)与高芯片的进位输入端CN相连,高位芯片的进位输出引至外部。两个芯片的控制端S0~S3和M各自相连。 2.实验步骤 1)算数逻辑运算 i.输入单元置数一 ii.设置I/O-R# = 0 iii.ALU-B# =1 iv.B-DA1 _| ̄|_将输入单元的输入数据存入DA1中 v.输入单元置数据二 vi.B-DA2 _| ̄|_将数据存入DA2中 vii.设置S 3 -------S 0、M、Cn根据要求按照定义操作设置完成运算viii. ix. x.I/O-R# = 1 ALU-B = 0运算结果送总线 IO-W ̄|_| ̄总线数据送显示单元显示 数据1.算数逻辑运算

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

大连理工大学城市学院 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;

湘潭大学计算机原理 实验一 算术逻辑单元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'b1111: cal=$signed(b)>>>a[4:0]; endcase endfunction endmodule (2)以原理图方式建立顶层文件工程 原理图如下:

实验二带进位控制8位算术逻辑运算实验

实验二带进位控制8位算术逻辑运算实验 一、实验目的 1、验证带进位控制的算术逻辑运算发生器的功能。 2、按指定数据完成几种指定的算术运算。 二、实验内容 1、实验原理 带进位控制运算器的实验原理如图所示,在实验(1)的基础上增加进位控制部分,其中高位74LS181(U31)的进位CN4通过门UN4E、UN2C、UN3B 进入UN5B的输入端D,其写入脉冲由T4和AR信号控制,T4是脉冲信号,在手动方式下进行实验时,只需将跳线器J23上T4与手动脉冲发生开关的输出端SD相连,按动手动脉冲开关,即可获得实验所需的单脉冲。AR是电平控制信号(低电平有效),可用于实现带进位控制实验。从图中可以看出,AR必须为“0’’电平,D型触发器74LS74(UN5B)的时钟端CLK才有脉冲信号输入。才可以将本次运算的进位结果CY锁存到进位锁存器74LS74(UN5B)中。 2、实验接线 实验连线(1)~(5)同实验~,洋细如下: (1)ALUBUS~连ExJ3; (2)ALUO1连BUSl; (3)SJ2连UJ2; (4)跳线器J23上T4连SD; (5)LDDRl、LDDR2、ALUB、SWB四个跳线器拨在左边(手动方式);(6)AR、299B跳线器拨在左边,同时开关AR拨在“0’’电平,开关299B拨在“1”电平; (7)J25跳线器拨在右边。 3、实验步骤 (1)仔细查线无误后,接通电源。 (2)用二进制数码开关KDO~KD7向DRl和DR2 寄存器置数,方法:关闭ALU输出三态门ALUB=1,开启输入三态门SWB=0,输入脉冲T4按手动脉冲

发生按钮产生。如果选择参与操作的两个数据分别为55H 、AAH ,将这两个数存入DR1和DR2的具体操作步骤如下: (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 , 并且不产生进位。

多功能算术逻辑单元(ALU)设计

多功能算术逻辑单元(ALU)设计 安徽理工大学 计算机组成原理课程设计说明书 题目: 多功能算术逻辑单元设计 院系:计算机科学与工程学院专业班级:信息08-1班学号:20XX303007 学生姓名:指导教师: 20XX年 12 月 8 日 安徽理工大学课程设计任务书 计算机科学与工程学院计算机硬件教研室 学号 20XX303007 学生姓名专业信08-1 设计题目多功能运算逻辑单元设计设计技术参数系统平台:Windows xp 开发工具: QuartusII 设计要求工作量 1)实现5条及以上的指令系统的硬连线的控制器的设计; 2)需要增加的指令自己加入,完成设计、测试过程,并给出测试结果。课程设计报告要求不少于3000字。源程序要求不少于300行 11月16日- 11月22日查找相关资料 11月23日- 11月29日构建框架 11月30日-12月6日设计算法 12月6日-12月12日检查改错 12月12日-12月16日撰写课程设计报告工作计划参考资料 [1] 白中英.计算机组成原理.科学出版社.20XX [2] 姜

咏江.基于QuartusII的计算机核心设计.清华大学出版社.20XX [3] 林涛.数字电子技术基础.清华大学出版社.20XX 指导教师签字教研室主任签字 20XX 年 12月8日 安徽理工大学课程设计成绩评定表 学生姓名:学号:20XX303007 专业班级:信08-1 课程设计题目:多功能算术逻辑单元设计指导教师评语:成绩:指导教师: 年月日 目录 1、简要介绍 ................................................ ............. 1 2、详细设计 ................................................ ............. 1 使用QuartusII 设计逻辑电路................... 1 3、总结 ................................................ .. (7) 图1 c.验证4位ALU是否正确,先进行编译,编译成功后进行仿真验证。可在主菜单中选择processing,然后选择Simulator Tool,单击OPEN按钮建立仿真文件。在仿真波

实验一 运算器实验(1)

级班学号姓名 实验报告 实验一运算器实验 一、实验目的: 1、掌握简单运算器的数据传送通路; 2、验证运算功能发生器(74LS181)的组合功能; 3、验证带进位控制的算术运算功能发生器的功能; 4、按指定数据完成几种指定的算术运算。 二、实验设备 DVCC-C5JH计算机组成原理教学实验系统一台,排线若干。 三、实验原理 1、实验中所用的运算器数据通路图如附A图1-3所示。其中运算器由两片74LS181以并/串形式构成8位字长的ALU。运算器的输出经过一个三态门(74LS245)和数据总线相连,运算器的两个数据输入端分别由二个锁存器(74LS373)锁存,锁存器的输入连至数据总线,数据开关(“INPUT DEVICE”)用来给出参与运算的数据,并经过一三态门(74LS245)和数据总线相连,数据显示灯(“BUS UNIT”)已和数据总线相连,用来显示数据总线内容。 2、控制信号说明: T4:脉冲信号;实验时,将W/R UNIT的T4接至STATE UNIT的微动开关KK2的输出端,按动微动开关,即可获得实验所需的单脉冲。 S3~S0、M:运算器的功能控制信号;可参见74181芯片的功能表P64。 Cn:进位控制信号,低电平有效。 LDDR1、LDDR2:数据寄存器DR1和DR2的数据装载控制信号,高电平有效。ALU-B:该控制信号控制是否将ALU的结果送到总线上,低电平有效。

SW-B :三态门开关信号,控制是否打开三态门,低电平有效。 四、实验内容 1、算术逻辑运算实验: 实验步骤: ①按图1-2连接路线,仔细检查无误后,接通电源; ②用二进制数码开关向DR1和DR2寄存器置数。 A )数据开关置01100101; B )设置switch unit :ALU-B=1 SW-B=0 LDDR1=1 LDDR2=0 C )按动KK2给出一个单脉冲信号,即T4=┎┒ D )数据开关置10100111; E )设置switch unit :LDDR1=0 LDDR2=1 F )按动KK2给出一个单脉冲信号。 ③检验DR1和DR2中存的数是否正确: A )设置switch unit :SW-B=1 ALU-B=0 B )设置switch unit :当S 3S 2S 1S 0M=00000,总线显示灯显示DR1中的数,而 置为S 3S 2S 1S 0M=01010,总线显示灯显示DR2中的数。 ④验证74LS181的算术运算和逻辑运算功能:[给定A=(DR1)=65 H ,B=(DR2)=A7 H] A )改变运算器的功能设置,观察运算器的输出,填入下表: DR1 DR2 S 3S 2S 1S 0 M=1(算术运算) M=0(逻辑运算) Cn=1 (无进位) Cn=0 (有进位) 65 A7 0000 01100101 01100110 10011010 65 A7 0001 11100111 11101000 00011000 65 A7 0010 01111101 01111110 10000010 65 A7 0011 11111111 00000000 00000000 65 A7 0100 10100101 10100110 11011010 65 A7 0101 00100111 00101000 01011000

实验一算术逻辑运算实验

信息工程学院实验报告 课程名称:计算机组成基础Array 实验项目名称:算术逻辑运算实验实验时间: 班级:141 姓名:王炳地学号:201411401121 一、实验目的 (1) 了解运算器的组成结构。 (2) 掌握运算器的工作原理。 二、实验设备 PC机一台,TD-CMA实验系统一套。 三、实验原理 本实验的原理如图1-1-1所示。 运算器内部含有三个独立运算部件,分别为算术、逻辑和移位运算部件,要处理的数据存于暂存器A 和暂存器B,三个部件同时接受来自A和B的数据(有些处理器体系结构把移位运算器放于算术和逻辑运算部件之前,如ARM),各部件对操作数进行何种运算由控制信号S3…S0和CN来决定,任何时候,多路选择开关只选择三部件中一个部件的结果作为ALU的输出。如果是影响进位的运算,还将置进位标志FC,在运算结果输出前,置ALU零标志。ALU中所有模块集成在一片CPLD中。 逻辑运算部件由逻辑门构成,较为简单,而后面又有专门的算术运算部件设计实验,在此对这两个部件不再赘述。移位运算采用的是桶形移位器,一般采用交叉开关矩阵来实现,交叉开关的原理如图1-1-2所示。图中显示的是一个4X4的矩阵(系统中是一个8X8的矩阵)。每一个输入都通过开关与一个输出相连,把沿对角线的开关导通,就可实现移位功能,即: (1) 对于逻辑左移或逻辑右移功能,将一条对角线的开关导通,这将所有的输入位与所使用的输出分别相连,而没有同任何输入相连的则输出连接0。 (2) 对于循环右移功能,右移对角线同互补的左移对角线一起激活。例如,在4位矩阵中使用‘右1’和‘左3’对角线来实现右循环1位。 (3) 对于未连接的输出位,移位时使用符号扩展或是0填充,具体由相应的指令控制。使用另外的逻辑进行移位总量译码和符号判别。

相关文档
最新文档