开放式CPU 运算器部件实验 移位器

开放式CPU 运算器部件实验  移位器
开放式CPU 运算器部件实验  移位器

运算器部件实验 移位器

一、实验目的

1、理解寄存器、移位器的原理。

2、掌握5种移位器及其用途。

二、实验原理

1、算术左移SAL (shift arithmetical left )、算术右移SAR(shift arithmetical right) 把操作数看成带符号数,对寄存器操作数进行移位,左移时空出的位补0,右移时空出的位补与最高位相同的1或0,如下图

2、逻辑左移SLL (shift logical left )、逻辑右移SLR (shift logical right ) 把操作数看成无符号数,对寄存器操作数进行移位。左移时空出的位补0,右移时空出的位补0,如下图

3、循环左移ROF (rotation left )、循环右移ROR (rotation right )

循环左右移其实是一样的,比如说8位的操作数,左移n (0≤n ≤8)位和右移n-8位结果是一样的。左移时,移出的最高位移回到最低位;右移时,移出的最低位移回到最高位,如下图

三、实验步骤

循环右移

循环左移

算术右移

‘0

0’

逻辑左移

0’

1、打开QuartusⅡ,安装ByteBlaster Ⅱ。

2、将子板上的JTAG端口和PC机的并行口用下载电缆连接。打开试验台电源。

3、执行Tools—Programmer 命令,将shifter.sof下载到FPGA中。

4、在实验台上通过模式开关选择FPGA-CPU独立调试模式010。

四、输入输出规则

1、将开关CLKSEL拨到1,将短路子DZ3短接且短路子DZ4断开,使FPGA-CPU 所需要的时钟使用正单脉冲时钟。

2、输入的8位操作数D7~D0对应开关SD15~SD8。

3、移动的位数n(3位数)对应开关SD7~SD5。

4、方向dir(左移还是右移)对应开关SD4,0代表左移,1代表右移。

5、移位类型kind(2位)对应开关SD3~SD2,00代表算数移,01代表逻辑移,10代表循环移。

6、在按下实验台上的单脉冲按钮后,对操作数移位的结果在灯A7~A0上体现。

五、实验结果

1.对8位数10110100进行移位操作,结果如下表1。

表1 第一组数据:10110110

2.对8位数01001101进行移位操作,结果如下表2。

表2 第二组数据:01001101

3.对8位数01010101进行移位操作,结果如下表3。

表3 第三组数据:01010101

六、心得体会

通过这次实验初步对实验台布局有了大致了解。又重新使用VHDL,在很多细节但很重要的方面摔倒、爬起,比如说信号量赋值是在进程结束后完成,但编程时却忘记这一规则,在进程内就使用了未完成赋值的信号量,结果出错。另外,移位器编写时由于分类较多,只关注了case 的各种情况,而忽略了时钟信号的使用,以至于调试时测试了很久都是在开关拨动时移位就开始了,而不等时钟信号的控制,这些都是粗心大意惹的祸,浪费了很多时间,以后倍加注意。

library ieee;

use ieee.std_logic_1164.all;

entity move is

port

(

clk : in std_logic;

D:in std_logic_vector(7 downto 0);

N:in std_logic_vector(2 downto 0);

dir:in std_logic;

kind:in std_logic_vector(1 downto 0);

light:out std_logic_vector(7 downto 0) );

end entity;

architecture rtl of move is

begin

process (clk)

begin

if(clk'event and clk='1')then

if(dir='0')then

if(kind="10")then

case N is

when "001"=>

light(7 downto 1)<=D(6 downto 0);

light(0)<=D(7);

when "010"=>

light(7 downto 2)<=D(5 downto 0);

light(1)<=D(7);

light(0)<=D(6);

when "011"=>

light(7 downto 3)<=D(4 downto 0);

light(2 downto 0)<=D(7 downto 5);

when "100"=>

light(7 downto 4)<=D(3 downto 0);

light(3 downto 0)<=D(7 downto 4);

when "101"=>

for i in 7 downto 5 loop

light(i)<=D(i-5);

end loop;

light(4 downto 0)<=D(7 downto 3);

when "110"=>

light(7)<=D(1);

light(6)<=D(0);

light(5 downto 0)<=D(7 downto 2);

when "111"=>

light(7)<=D(0);

light(6 downto 0)<=D(7 downto 1);

when others=>light<=D;

end case;

elsif(kind="00"or kind="01")then

case N is

when "001"=>

for i in 7 downto 1 loop

light(i)<=D(i-1);

end loop;

light(0)<='0';

when "010"=>

for i in 7 downto 2 loop

light(i)<=D(i-2);

end loop;

light(1)<='0';

light(0)<='0';

when "011"=>

for i in 7 downto 3 loop

light(i)<=D(i-3);

end loop;

light(2 downto 0)<="000";

when "100"=>

for i in 7 downto 4 loop

light(i)<=D(i-4);

end loop;

light(3 downto 0)<="0000";

when "101"=>

for i in 7 downto 5 loop

light(i)<=D(i-5);

end loop;

for i in 4 downto 0 loop

light(i)<='0';

end loop;

when "110"=>

light(7)<=D(1);

light(6)<=D(0);

for i in 5 downto 0 loop

end loop;

when "111"=>

light(7)<=D(0);

for i in 6 downto 0 loop

light(i)<='0';

end loop;

when others=>light<=D; end case;

end if;

elsif(dir='1')then

if(kind="10")then

case N is

when "001"=>

for i in 0 to 6 loop

light(i)<=D(i+1);

end loop;

light(7)<=D(0);

when "010"=>

for i in 0 to 5 loop

light(i)<=D(i+2);

end loop;

light(6)<=D(0);

light(7)<=D(1);

when "011"=>

for i in 0 to 4 loop

light(i)<=D(i+3);

end loop;

light(6)<=D(1);

light(7)<=D(2);

when "100"=>

for i in 0 to 3 loop

light(i)<=D(i+4);

end loop;

light(7 downto 4)<=D(3 downto 0);

when "101"=>

for i in 0 to 2 loop

light(i)<=D(i+5);

end loop;

light(7 downto 3)<=D(4 downto 0);

when "110"=>

light(0)<=D(6);

light(1)<=D(7);

light(7 downto 2)<=D(5 downto 0);

when "111"=>

light(0)<=D(7);

light(7 downto 1)<=D(6 downto 0);

when others=>light<=D;

end case;

elsif(kind="00")then

case N is

when "001"=>

for i in 0 to 6 loop

light(i)<=D(i+1);

light(7)<=D(7); when "010"=>

for i in 0 to 5 loop

light(i)<=D(i+2); end loop;

light(6)<=D(7); light(7)<=D(7); when "011"=>

for i in 0 to 4 loop

light(i)<=D(i+3); end loop;

light(5)<=D(7); light(6)<=D(7); light(7)<=D(7); when "100"=>

for i in 0 to 3 loop

light(i)<=D(i+4); end loop;

light(4)<=D(7);

light(5)<=D(7);

light(6)<=D(7); light(7)<=D(7); when "101"=>

for i in 0 to 2 loop

light(i)<=D(i+5); end loop;

for i in 3 to 7 loop

light(i)<=D(7); end loop;

light(0)<=D(6);

light(1)<=D(7);

for i in 2 to 7 loop

light(i)<=D(7);

end loop;

when "111"=>

light(0)<=D(7);

for i in 1 to 7 loop

light(i)<=D(7);

end loop;

when others=>light<="XXXXXXXX"; end case;

elsif(kind="01")then

case N is

when "001"=>

for i in 0 to 6 loop

light(i)<=D(i+1);

end loop;

light(7)<='0';

when "010"=>

for i in 0 to 5 loop

light(i)<=D(i+2);

end loop;

light(6)<='0';

light(7)<='0';

when "011"=>

for i in 0 to 4 loop

light(i)<=D(i+3);

end loop;

light(5)<='0';

light(6)<='0';

light(7)<='0';

when "100"=>

for i in 0 to 3 loop

light(i)<=D(i+4);

end loop;

light(4)<='0';

light(5)<='0';

light(6)<='0';

light(7)<='0';

when "101"=>

for i in 0 to 2 loop

light(i)<=D(i+5);

end loop;

for i in 3 to 7 loop

light(i)<='0';

end loop;

when "110"=>

light(0)<=D(6);

light(1)<=D(7);

for i in 2 to 7 loop

light(i)<='0';

end loop;

when "111"=>

light(0)<=D(7);

for i in 1 to 7 loop

light(i)<='0';

end loop;

when others=>light<=D;

end case;

end if;

end if;

end if;

end process;

end rtl;

寄存器实验报告

寄存器实验报告

一、实验目的 1. 了解寄存器的分类方法,掌握各种寄存器的工作原理; 2. 学习使用V erilog HDL 语言设计两种类型的寄存器。 二、实验设备 PC 微机一台,TD-EDA 实验箱一台,SOPC 开发板一块。 三、实验内容 寄存器中二进制数的位可以用两种方式移入或移出寄存器。第一种方法是以串行的方式将数据每次移动一位,这种方法称之为串行移位(Serial Shifting),线路较少,但耗费时间较多。第二种方法是以并行的方式将数据同时移动,这种方法称之为并行移位(Parallel Shifting),线路较为复杂,但是数据传送的速度较快。因此,按照数据进出移位寄存器的方式,可以将移位寄存器分为四种类型:串行输入串行输出移位寄存器(Serial In- Serial Out)、串行输入并行输出移位寄存器(Serial In- Parallel Out)、并行输入串行输出移位寄存器(Parallel In- Serial Out)、并行输入并行输出移位寄存器(Parallel In-Parallel Out)。 本实验使用V erilog HDL 语言设计一个八位并行输入串行输出右移移位寄存器(Parallel In- Serial Out)和一个八位串行输入并行输出寄存器(Serial In- Parallel Out),分别进行仿真、引脚分配并下载到电路板进行功能验证。 四、实验步骤 1.并行输入串行输出移位寄存器实验步骤 1). 运行Quartus II 软件,选择File New Project Wizard 菜单,工程名称及顶层文件名称为SHIFT8R,器件设置对话框中选择Cyclone 系列EP1C6Q240C8 芯片,建立新工程。 2.) 选择File New 菜单,创建V erilog HDL 描述语言设计文件,打开文本编辑器界面。 3.) 在文本编辑器界面中编写V erilog HDL 程序,源程序如下: module SHFIT8R(din,r_st,clk,load,dout); input [7:0]din; input clk,r_st,load; output dout; reg dout; reg [7:0]tmp; always @(posedge clk) if(!r_st) begin dout<=0; end else begin if(load) begin tmp=din; end else

运算器实验

计算机科学与技术系 实验报告 专业名称计算机科学与技术 课程名称计算机组成原理 项目名称运算器实验 班级 15 学号 姓名 L 同组人员无 实验日期 2015/10/29

一、实验目的与要求 目的:①了解运算器的组成结构。 ②掌握运算器的工作原理。 要求:①实验之前,应认真准备,写出实验步骤和具体设计内容。 ②应在实验前掌握所有控制信号的作用。 ③实验过程中,应认真进行实验操作。 ④实验之后,应认真思考总结,写出实验报告,包括实验步骤 二、实验逻辑原理图与分析 2.1 画实验逻辑原理图 图3-1 运算器原理图

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

数字信号处理实验一

实验一 离散时间信号分析 班级 信息131班 学号 201312030103 姓名 陈娇 日期 一、实验目的 掌握两个序列的相加、相乘、移位、反褶、卷积等基本运算。 二、实验原理 1.序列的基本概念 离散时间信号在数学上可用时间序列)}({n x 来表示,其中)(n x 代表序列的第n 个数字,n 代表时间的序列,n 的取值范围为+∞<<∞-n 的整数,n 取其它值)(n x 没有意义。离散时间信号可以是由模拟信号通过采样得到,例如对模拟信号)(t x a 进行等间隔采样,采样间隔为T ,得到)}({nT x a 一个有序的数字序列就是离散时间信号,简称序列。 2.常用序列 常用序列有:单位脉冲序列(单位抽样)) (n δ、单位阶跃序列)(n u 、矩形序列)(n R N 、实指数序列、复指数序列、正弦型序列等。 3.序列的基本运算 序列的运算包括移位、反褶、和、积、标乘、累加、差分运算等。 4.序列的卷积运算 ∑∞ -∞==-= m n h n x m n h m x n y )(*)()()()( 上式的运算关系称为卷积运算,式中代表两个序列卷积运算。两个序列的卷积是一个序列与另一个序列反褶后逐次移位乘积之和,故称为离散卷积,也称两序列的线性卷积。其计算的过程包括以下4个步骤。 (1)反褶:先将)(n x 和)(n h 的变量n 换成m ,变成)(m x 和)(m h ,再将)(m h 以纵轴为对称轴反褶成)(m h -。

(2)移位:将)(m h -移位n ,得)(m n h -。当n 为正数时,右移n 位;当n 为负数时,左移n 位。 (3)相乘:将)(m n h -和)(m x 的对应点值相乘。 (4)求和:将以上所有对应点的乘积累加起来,即得)(n y 。 三、主要实验仪器及材料 微型计算机、Matlab6.5 教学版、TC 编程环境。 四、实验内容 (1)用Matlab 或C 语言编制两个序列的相加、相乘、移位、反褶、卷积等的程序; (2)画出两个序列运算以后的图形; (3)对结果进行分析; (4)完成实验报告。 五、实验结果 六、实验总结

计数器和移位寄存器设计仿真实验报告.

实验四典型时序电路的功能测试与综合仿真报告 15291204张智博一.74LS290构成的24位计数器 方法:第一片74290的Q3与第二片的INB相连,R01,R02相连,INA,R91,R92悬空构成24位计数器。50Hz,5v方波电压源提供时钟信号,用白炽灯显示输出信号。 实验电路: 实验现象:

输出由000000变为000001,000010,000011,000100,001000,001001,001010,001011,001100,010001,010000,010010,010011,010100,011000,011001,011010,011011,011100,100000,100001,100010,100011,100100,最终又回到000000,实现一次进位。 二.74LS161构成的24位计数器 方法:运用多次置零法 用两片74LS161构成了24位计数器,两片计数器的时钟信号都由方波电压源提供,第一片芯片的Q3和第二片芯片的Q0通过与非门,构成两个74LS161的LOAD信号,第一片的CO接第二片的ENT,其他ENT和ENP接Vcc(5v)。输出接白炽灯。 电路图: 实验现象:以下为1—24的计数过程

三.74LS194构成的8位双向移位寄存器 方法:通过两片194级联,控制MA,MB的值,来控制左右移动 实验电路由两片74LS194芯片构成。两个Ma接在一起,两个Mb接在一起,第一片的Dr,第二片的Dl,分别通过开关接到Vcc(5v)上。第一片的Q3接到第二片的Dr,第二片的Q0接到第一片的Dl。8个输出端分别接白炽灯。 实验电路:

数据传送指令及算术逻辑运算和移位指令的使用

实验报告 1.数据传送指令的使用 一,实验目的; 把数据、地址或立即数传送到寄存器、存储单元以及I/O端口,或从内存单元、I/O端口中读取数据。 1. 通用传送指令:MOV,PUSH,POP,XCHG,XLAT 2. 输入输出指令指令: IN,OUT 3. 目的地址传送指令: LEA,LDS,LES 4. 标志位传送指令: LAHF,SAHF,PUSHF,POPF 二,实验步骤; 1. 传送指令 1)用A命令在内存100H处键入下列内容: MOV AX,1234 MOV BX,5678 XCHG AX,BX MOV AH,35 MOV AL,48 MOV DX,75AB XCHG AX,DX 2)用U命令检查键入的程序并记录,特别注意左边的机器码。 3)用T命令逐条运行这些指令,每运行一行检查并记录有关寄存器及IP的变化情况。并注意标志位有无变化。

2. 改变标志寄存器psw中tf标志的状态(0——1或1——0),其余位保持不变。 3. 设DS=当前段地址,BX=0300H,SI=0002H,请用DEBUG的命令将存储器偏移地址300H~304H连续单元顺序装入0AH,0BH,0CH,0DH,0EH。在DEBUG状态下使用A 命令送入下面程序,并用单步T命令执行的方法,分析每条指令源地址的形成过程?当数据传送每完成一次,试分析AX寄存器中的内容是什么? 程序清单如下: MOV AX,BX MOV AX,0304H MOV AX,[0304H] MOV AX,[BX] MOV AX,0001[BX] MOV AX,[BX][SI] HLT

4. 使用标志位传送指令,编程序段将标志位寄存器的低八位的值存入内存单元DS:1000H 中或堆栈中,然后将标志位寄存器的低八位置位为10101010。 2.算术逻辑运算和移位指令的使用 一,实验目的; 使用算术逻辑运算和移位指令,可以实现对二进制数据的加、减、乘、除等四则运算,与、或、非、异或等逻辑运算,以及移位运算和代码转换运算 1,算术运算:加法指令、减法指令,乘法指令、除法指令以及转换指令; 2. 逻辑运算指令:AND,TEST,OR,XOR,NOT 3. 移位指令: 移位运算可以分为算术逻辑移位和循环移位两类。 (1)算术逻辑移位指令:SHL,SHR,SAL,SAR (2)循环移位指令:ROL,ROR,RCL,RCR 二,实验步骤; 1. 已知程序段定义如下: MOV AX,1234 MOV CL,4 SHL AX,CL INC AX DEC CL ROR AX,CL MOV BX,4 MUL BX

实验一:运算器实验

《计算机组成原理》 实验报告实验一:运算器实验 学院: 专业: 班级学号: 学生姓名: 实验日期: 指导老师: 成绩评定: 计算机学院计算机组成原理实验室

实验一 一、实验名称:运算器实验 二、实验目的: 1、掌握运算器的组成及工作原理; 2、熟悉ALU执行算术运算与逻辑运算的具体实现过程; 3、掌握ALU 算术与逻辑运算的控制方法 三、实验内容: 1、两8位操作数的算术运算及进位影响 2、两8位操作数的逻辑运算及进位影响 3、不同控制组合下的算术与逻辑运算的输出结果 四、实验设备: EL-JY-II型计算机原理实验系统 五、实验步骤: 1、在系统断电的情况下,按实验指导书接线图完成本次实验的接线; 2、系统上电,拨动清零开关,系统清零; 3、从数据输入开关电路输入第一个8位数据,开放数据总线,使数据进入暂存寄存器A; 4、从数据输入开关电路输入第二个8位数据,开放数据总线,使数据进入暂存寄存器B; 5、关闭数据输入开关,开启ALU输出,检查两个8位数据正确与否,有错通过步骤3改正; 6、拨动功能选择端S3,S2,S1,S0 进行算术运算,记录ALU输出结果; 7、重复步骤6,直到S3,S2,S1,S0所有组合(16种)被完成; 8、对实验结果进行检查,如有错误,找出原因,重做实验,直到正确为止。 六、实验结果 整个实验记录的实验结果如下:

七、分析讨论 S0, S1,S2,S3是功能选择控制端,决定是做加、减、逻辑与、逻辑或、逻辑异或、移位等运算,表一的实验结果与手工验算完全一致,从而验正了整个ALU的算术/逻辑运算功能和移位处理功能。灵活运用S0,S1,S2,S3的不同组合可以实现许多其它功能,如通过移位运算可以实现数据的乘2(左移一位)和除2运算(右移一位),此外选择S3S2S1S0=0000或S3S2S1S0=0001将操作数A 或B可以直接送到ALU的输出,这样可以直接验证输入数据是否正确。本次实验通过算术加法运算观察到对进位位FC和零标志FZ的影响,和手工验算的结果一致。实验也涉及到了数据总线,总线有三个性质:公共性、驱动性和三态性,在数据输入时利用控制开关来控制三态,有效时输出数据,无效时数据输入缓冲器呈高阻(相当断开)与数据总线隔离;公共性是总线的最根本的属性,所有传输的数据都通过共享数据线分时完成的,何时完成靠控制信号来区分,如输入的两个8位数据就是通过数据总线分两次(分时)传送的。(不少于100字) 八、心得体会 这是计算机组成原理的第一个实验,虽然还有点陌生,但基本熟悉了整个实验系统的基本结构,了解了该实验装置按功能分成几大区,学会何时操作各种开关、按键。最重要的是通过实验掌握了运算器工作原理,熟悉了算术/逻辑运算的运算过程以及控制这种运算的方法,了解了进位对算术与逻辑运算结果的影响,对时序是如何起作用的没太弄清楚,相信随着后续实验的进行一定会搞清楚的。 (蓝色字部分学生根据具体实验的实验指导书及实验内容和过程自己填写)

实验六移位寄存器的设计

实验六移位寄存器的设计 一、实验目的 1、掌握中规模4位双向移位寄存器逻辑功能及使用方法。 2、熟悉移位寄存器的应用—实现数据的串行、并行转换和构成环形计数器。 二、实验预习要求 1、复习有关寄存器及串行、并行转换器有关内容。 2、查阅CC40194、CC4011及CC4068 逻辑线路。熟悉其逻辑功能及引脚排列。 3、在对CC40194进行送数后,若要使输出端改成另外的数码,是否一定要使寄存器清零? 4、使寄存器清零,除采用R C输入低电平外,可否采用右移或左移的方法?可否使用并行送数法?若可行,如何进行操作? 5、若进行循环左移,图6-4接线应如何改接? 6、画出用两片CC40194构成的七位左移串 /并行转换器线路。 7、画出用两片CC40194构成的七位左移并 /串行转换器线路。 三、实验设备及器件 1、+5V直流电源 2、单次脉冲源 3、逻辑电平开关 4、逻辑电平显示器 5、CC40194×2(74LS194)CC4011(74LS00) CC4068(74LS30) 四、设计方法与参考资料 1、移位寄存器是一个具有移位功能的寄存器,是指寄存器中所存的代码能够在移位脉冲的作用下依次左移或右移。既能左移又能右移的称为双向移位寄存器,只需要改变左、右移的控制信号便可实现双向移位要求。根据移位寄存器存取信息的方式不同分为:串入串出、串入并出、并入串出、并入并出四种形式。 本实验选用的4位双向通用移位寄存器,型号为CC40194或74LS194,两者功能相同,可互换使用,其逻辑符号及引脚排列如图6-1所示。 其中D0、D1、D2、D3为并行输入端;Q0、Q1、Q2、Q3为并行输出端;S R为右移串行输 C为直接无条件清零端; 入端,S L为左移串行输入端;S1、S0为操作模式控制端;R

实验一基本运算器实验

山西大学计算机与信息技术学院 实验一基本运算器实验 一、实验目的: (1 )了解运算器的组成结构 (2 )掌握运算器的工作原理 二、实验内容: 1、实验原理: 本实验的原理如图1-1所示。运算器内部含有三个独立运算部件,分别为算术、逻辑和移位运算部件,要处理的数据存于暂存器 A和暂存器B,三个部件同时接受来自 A和B的数据各部件对操作数进行何种运算由控制信号S3,S0和 CN来决定,任何时候,多路选择开关只选择三部件中一 个部件的结果作为 ALU的输出。如果是影响进位的运算,还将置进位标志 FC,在运算结果输出前,置ALU零标志。ALU 中所有模 块集成在 一片 运算器部件由一片 CPLD实现。ALU的输入和输出通过三态门74LS245连到CPU内总线上,另 外还有指示灯标明进位标志FC和零标志FZ。图中除T4和CLR其余信号均来自于 ALU单元的排线 座,实验箱中所有单元的T1、T2、T3、T4都连接至控制总线单元的T1、T2、T3、T4, CLR都连接至 CON 单元的CLR按钮。T4由时序单元的TS4提供,其余控制信号均由 CON单元的二进制数据开关模拟给出。控制信号中除 T4为脉冲信号外,其余均为电平信号,其中ALU_B为低有效,其余为高有效。 表1-1运算器逻辑功能表(表中“ X ”为任意态,下同) 运算类型S3 S2 S1 S0CN 功能 逻辑运算0000 X 台匕 F=A (直通)能0001 X F=B (直通) 课程名称 2011级计算机科学与技术计算机组成原理课程设计实验日期 批改日期 实验名称学号专业班级指导教师 CPLD

0100 X F= A' (FZ ) 0101 X F=A 不带进位循环右移 B (取低 3位)位 (FZ ) 0110 0 F=A 逻辑右移一位 (FZ ) 移位运算 1 F=A 带进位循环右移一位 (FC ,FZ ) 0111 0 F=A 逻辑左移一位 (FZ ) 1 F=A 带进位循环左移一位 (FC ,FZ ) 1000 X 置 FC=CN (FC ) 1001 X F=A 加 B (FC ,FZ ) 1010 X F=A 加B 加FC (FC , FZ ) 算术运算 1011 X F=A 减 B (FC , FZ ) 1100 X F=A 减 1 (FC , FZ ) 1101 X F=A 加 1 (FC , FZ ) 1110 X (保留) 1111 X (保留) 算器零标志,表中功能栏内的 FC FZ 表示当前运算会影响到该标志。 ST 按钮,产生一个 T4上升沿,则将二进制数置入暂 中,暂存器A 的值通过ALU 单元的A7,A0八位 LED 灯显 示。 用输入开关向暂存器 B 置数。 拨动CON 单元的SD27,SD20数据开关,形成另外一个二进制数。 置LDA=0,LDB=1,连续按动时序单元的 ST 按钮,产生一个 T4上升沿,则将二进制数置入暂 中,暂存器B 的值通过ALU 单元的B7,B0八位 LED 灯显示。 改变运算器的功能设置,观察运算器的输出。置 ALU_B=0、LDA=0 LDB=0,然后按表1-1置 S3、S2、S1、S0和Cn 的数值,并观察数据总线 LED 显示灯显示的结果。 2、实验步骤: ⑴ ⑶ 查接线, ⑷ ① KK1、KK3置为’运行’档。 打开电源开关,如果听到有’嘀’报警声,说明有总线竞争现象,应立即关闭电源,重新检 直到错误排除。然后按动 CON 单元的 用输入开关向暂存器 A 置数。 拨动CON 单元的SD27,SD20数据开关, CLR 按钮,将运算器的 A 、B 和FC 、FZ 清零。 形成用户指定的二进制数,数据显示亮为’1',灭 为‘ 0'。 ② 存器A (5) ① ② 存器B 置LDA=1, LDB=0连续按动时序单元的 按图1-2连接实验电路,并检查无误。

基本模型机的设计与实现和带移位运算的模型机的设计及实现

一、基本模型机的设计与实现 (一)实验目的: 1、清晰地建立计算机的整机概念,在掌握部件单元电路实验的基础上,进一步将其组成系统构造一台基本模型计算机。 2、为其定义五条机器指令:IN、ADD、STA、OUT、JMP,并编写相应的微程序,具体上机调试掌握整机概念。 3、学习设计和调试计算机的基本步骤和方法,提高使用软件仿真工具和集成电路的基本技能。 (二)、实验设备 TDN-CM+计算机组成原理教学实验系统一台。 (三)、实验原理 本实验定义五条机器指令:IN(输入)、ADD(二进制加法)、STA(存数)、OUT(输出)、JMP(无条件转移),其指令格式如下: 助记符机器指令码说明 IN 0000 0000 “I NPUT DEVICE”→R0 ADD addr 0001 0000 ××××××××R0+[addr] →R0 STA addr 0010 0000 ××××××××R0→ [addr] OUT addr 0011 0000 ××××××××[addr] →BUS JMP addr 0100 0000 ××××××××addr→PC 其中IN为单字长(8位),其余为双字长指令,××××××××为addr对应的二进制地址码。 为了向RAM写入、读出机器指令,并能启动程序执行,还须设计三个控制台操作微程序。 存储器读(KRD):拨动总清开关CLR后,控制台开关SWB、SWA为“0 0”时,按START微动开关,可对RAM连续手动读操作。 存储器写(KWE):拨动总清开关CLR后,控制台开关SWB、SWA为“0 1”时,按START微动开关,可对RAM连续手动写操作。 启动程序(RP):拨动总清开关CLR后,控制台开关SWB、SWA为“11”时,按START微动开关,即可转入到第01号“取址”微指令,启动程序运-

实验四 移位运算器实验

实验四移位运算器实验 一、实验目的 验证移位控制器的组合功能 二、实验内容 1、实验原理 移位运算实验原理如图3-4所示,使用了一片74L S299(U34)作为移位发生器,其八位输入/输出端通过74L S245引到总线,总线控制方式见图1—6,J A4接通时输出到总线。299B`信号由开关299B提供,控制其使能端,T4为其时钟脉冲,手动方式实验时将T4与手动脉发生器输出端S D相连,即J23跳线器上T4连S D。由信号S0、S1、M控制其功能状态,详细见下表3—3。 2、实验接线 1、J20,J21,J22,接上短路片, 2、J24,J25,J26接左边; 3、J27,J28 右边; 4、J23 置右边T4选“SD” 5、JA5 置“接通”; 6、JA6 置“手动”; 7、JA3,JA4 置“接通”; 8、JA1,JA2,置“高阻”; 9、JA8 置上面“微地址” 10、EXJ1接BUS3 11、CE、ALU_B 置“1”, 12、299B 置“0”

3、实验步骤 ⑴ 连接实验线 路,仔细查线无误后接通电源。 ⑵ 置数,具体步骤如下: ⑶ 移位,参照上表改变S 0、 S 1、 M 、 299B 的状态,按动手动脉冲开关以产生时钟脉冲T 4,观察移位结果。 四、实验数据 Q08I/O07I/O113I/O26I/O314I/O45I/O515I/O64I/O716Q7 17 OE12OE13S01S119CLK 12CLR 9DS011DS7 18 U34 74LS299 299B`S0S1VCC GND AQ0 AQ7T4 UN1A 74LS08 UN1B 74LS08 UN2A 74LS32 UN2B 74LS32UN2C 74LS32 UN3A 74LS04 M QCY 3 2 1 654 3 2 1 218109 6 54 R4910K VCC CLK 11 D 12S D 10 C D 13 Q 9 Q 8UN5B 74LS74 UN4B UN4C 299B` UN1D 74LS08UN1A 74LS08UN1B 74LS08 UN1C 74LS08 AQ7AQ0 UN3B 74LS32 UN4D UN4E AR T4M S0S1CN4QCY UN2C 74LS08CY UN2A 74LS08UN3B UN3A 74LS3274LS32 CY 56123 312 431234 5 6 45 910 8111011 1213 8910 4 5 6 LZD 0-LZD 7 图3-4 BU SD0--D 7

移位运算器实验报告

移位运算器实验报告 移位运算器实验报告 移位运算器 实验报告 课程名称: 计算机组成原理 姓名/学号: 实验名称: 算术逻辑运算专业: 软件工程班级: 软件工程班指导教师: 实验日期: 2011年 10月 26日 实验成绩: 批阅教师签字: 第 1 页共 4 页 移位运算器实验报告 一、实验目的 , 验证移位控制的组合功能 二、实验设备 , 1、TDN,CM,组成原理实验仪一台 , 2、导线若干 三、实验原理 , 利用移位发生器(74LS299)、时序脉冲T4、信号控制使能端299-B、电平控制信号 AR及S0 S1 M控制其功能状态。如上图所示为移位控制电路.其中使用了一片74L

S299作为移位发生器,其8位输入/输出端可连接至内部总线。74LS299移位器的片选 控制信号为299,B,在低电平时有效。T4为其控制脉冲信号,由“W/R UNIT”单元 中的T4接至“STATE UNIT”单元中的单脉冲发生器KK2上而产生,S0、S1、M 作为移 位控制信号。 第 2 页共 4 页 移位运算器实验报告 四、实验内容 , 分别将理论值(每种位移进行三次)填入表中(初始值为5A),向299置数(置成5A

(01011010))。 , 设置S1、 S0、 M、299-B的状态,观察并记录移位结果(F、CY)。 F(三次移位结果) CY 299-B S1 S0 M 功能理论值实验值理论值实验值任意 0 0 0 保持 01011010 1 00101101 0 0 1 0 0 循环右移 10010110 1 01001011 0 10101101 0 带进位循环0 1 0 1 01010110 1 右移 10101011 0 10110100 0 0 0 1 0 循环左移 01101001 1 11010010 0 10110101 0 带进位循环0 0 1 1 01101010 1 左移 11010101 0 任意 1 1 任意装数 01011010 1 实验步骤: 1. 仔细查线无误后,接通电源。 2. 向移位寄存器装数。 <1> 拨动输入开关形成任意二进制数(注意形成的数据要能明显区分各位)。 <2> 使SWITCH UNIT单元中的开关SW-B=0,打开数据输入三态门。 <3> 使S0=1、S1=1,并按动微动开关KK2,则将二进制数装入移位寄存器。 <4> 使SW-B=1,关闭数据输入三态门。 3. 移位运算操作。参照“移位控制电路功能表”的内容,先将S1、S0和299-B置为 0、0和0,检查移位寄存器单元装入的数是否正确,然后通过改变S0、S1、M 的状 态,并按动微动开关KK2,观察移位的结果。 第 3 页共 4 页

计算机组成原理实验

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

一、实验准备和实验注意事项 1.本课程实验使用专门的TDN-CM++计算机组成原理教学实验设备,使用前后均应仔细检查主机板,防止导线、元件等物品落入装置内导致线路短路、元件损坏。 2.完成本实验的方法是先找到实验板上相应的丝印字及其对应的引出排针,将排针用电缆线连接起来,连接时要注意电缆线的方向,不能反向连接;如果实验装置中引出排针上已表明两针相连,表明两根引出线内部已经连接起来,此时可以只使用一根线连接。 3.为了弄清计算机各部件的工作原理,前面几个实验的控制信号由开关单元“SWITCH UNIT”模拟输入;只有在模型机实验中才真正由控制器对指令译码产生控制信号。在每个实验开始时需将所有的开关置为初始状态“1”。 4.本实验装置的发光二极管的指示灯亮时表示信号为“0”,灯灭时表示信号为“1”。 5.实验接线图中带有圆圈的连线为实验中要接的线。 6.电源关闭后,不能立即重新开启,关闭与重启之间至少应有30秒间隔。 7.电源线应放置在机内专用线盒中。 8.保证设备的整洁。

二、实验设备的数据通路结构 利用本实验装置构造的模型机的数据通路结构框图如下图。其中各单元内部已经连接好,单元之间可能已经连接好,其它一些单元之间的连线需要根据实验目的用排线连接。 图0-2 模型机数据通路结构框图

实验一运算器实验:算术逻辑运算实验 一.实验目的 1.了解运算器的组成结构; 2.掌握运算器的工作原理; 3.掌握简单运算器的数据传送通路。 4.验证运算功能发生器(74LSl81)的组合功能。 二.实验设备 TDN-CM++计算机组成原理教学实验系统一台,排线若干。 三.实验原理 实验中所用的运算器数据通路如图1-l所示。其中两片74LSl81以串行方式构成8位字长的ALU,ALU的输出经过一个三态门(74LS245)和数据总线相连。三态门由ALU-B控制,控制运算器运算的结果能否送往总线,低电平有效。 为实现双操作数的运算,ALU的两个数据输入端分别由二个锁存器DR1、DR2(由74LS273实现)锁存数据。要将数据总线上的数据锁存到DR1、DR2中,锁存器的控制端LDDR1和LDDR2必须为高电平,同时由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、LDDR1、LDDR2、ALU-B、SW-B均由“SWITCH UNIT”中的二进制数据开关来模拟,其中Cn、ALU-B、SW-B为低电平有效,LDDRl、LDDR2为高电平有效。 对单总线数据通路,需要分时共享总线,每一时刻只能由一组数据送往总线。

计算机组成原理运算器实验

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

计算机组成原理运算器实验报告

一.实验目的及要求 (1) 了解运算器的组成结构。 (2) 掌握运算器的工作原理。 二.实验模块及实验原理 本实验的原理如图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 填充,具体由相应的指令控制。使用另外的逻辑进行移位总量译码和符号判别。 运算器部件由一片CPLD 实现。ALU的输入和输出通过三态门74LS245 连到CPU 内总线上,另外还有指示灯标明进位标志FC和零标志FZ。请注意:实验箱上凡丝印标注有马蹄形标记‘’,表示这两根排针之间是连通的。图中除T4和CLR ,其余信号均来自于ALU单元的排线座,实验箱中所有单元的T1、T2、T3、T4都连接至控制总线单元的T1、T2、T3、T4,CLR 都连接至CON单元的CLR 按钮。T4由时序单元的TS4 提供(时序单元的介绍见附录二),其余控制信号均由CON单元的二进制数据开关模拟给出。控制信号中除T4为脉冲信号外,其余均为电平信号,其中ALU_B为低有效,其余为高有效。 暂存器A 和暂存器B 的数据能在LED 灯上实时显示,原理如图1-1-3所示(以A0为例,其它相同)。进位标志FC、零标志FZ和数据总线D7 0 显示原理也是如此。 ALU和外围电路的连接如图1-1-4所示,图中的小方框代表排针座。 运算器的逻辑功能表如表1-1-1所示,其中S3 S2 S1 S0 CN 为控制信号,FC为进位标志,FZ为运算器零标志,表中功能栏内的FC、FZ表示当前运算会影响到该标志。

开放式CPU 运算器部件实验 移位器

运算器部件实验 移位器 一、实验目的 1、理解寄存器、移位器的原理。 2、掌握5种移位器及其用途。 二、实验原理 1、算术左移SAL (shift arithmetical left )、算术右移SAR(shift arithmetical right) 把操作数看成带符号数,对寄存器操作数进行移位,左移时空出的位补0,右移时空出的位补与最高位相同的1或0,如下图 2、逻辑左移SLL (shift logical left )、逻辑右移SLR (shift logical right ) 把操作数看成无符号数,对寄存器操作数进行移位。左移时空出的位补0,右移时空出的位补0,如下图 3、循环左移ROF (rotation left )、循环右移ROR (rotation right ) 循环左右移其实是一样的,比如说8位的操作数,左移n (0≤n ≤8)位和右移n-8位结果是一样的。左移时,移出的最高位移回到最低位;右移时,移出的最低位移回到最高位,如下图 三、实验步骤 循环右移 循环左移 算术右移 ‘0 0’ 逻辑左移 0’

1、打开QuartusⅡ,安装ByteBlaster Ⅱ。 2、将子板上的JTAG端口和PC机的并行口用下载电缆连接。打开试验台电源。 3、执行Tools—Programmer 命令,将shifter.sof下载到FPGA中。 4、在实验台上通过模式开关选择FPGA-CPU独立调试模式010。 四、输入输出规则 1、将开关CLKSEL拨到1,将短路子DZ3短接且短路子DZ4断开,使FPGA-CPU 所需要的时钟使用正单脉冲时钟。 2、输入的8位操作数D7~D0对应开关SD15~SD8。 3、移动的位数n(3位数)对应开关SD7~SD5。 4、方向dir(左移还是右移)对应开关SD4,0代表左移,1代表右移。 5、移位类型kind(2位)对应开关SD3~SD2,00代表算数移,01代表逻辑移,10代表循环移。 6、在按下实验台上的单脉冲按钮后,对操作数移位的结果在灯A7~A0上体现。 五、实验结果 1.对8位数10110100进行移位操作,结果如下表1。 表1 第一组数据:10110110 2.对8位数01001101进行移位操作,结果如下表2。 表2 第二组数据:01001101

最新实验6-移位寄存器功能测试及应用-(实验报告要求)

实验六 移位寄存器功能测试及应用 --实验报告要求 一. 实验目的(0.5分) 1. 熟悉寄存器、移位寄存器的电路结构和工作原理。 2. 掌握中规模4位双向移位寄存器逻辑功能及使用方法。 3. 熟悉移位寄存器的应用。 二. 实验电路 D0、D1 、D2 、D3为并行输入端;Q0、Q1、Q2、Q3为并行输出端;SR 为右移串行输入端,SL 为左移串行输入端;S1、S0 为操作模式控制端;R C 为直接无条件清零端;CP 为时钟脉冲输入端。 三 图2 CC40194/74LS194 逻辑功能测试 图1 CC40194/74LS194的逻辑符号及引脚功能 图3 环形计数器

四. 实验原理(0.5分) 1.移位寄存器是一个具有移位功能的寄存器,是指寄存器中所存的代码能够在移位脉冲的作用下依次左移或右移。既能左移又能右移的称为双向移位寄存器,只需要改变左、右移的控制信号便可实现双向移位要求。根据移位寄存器存取信息的方式不同分为:串入串出、串入并出、并入串出、并入并出四种形式。 本实验选用的4位双向通用移位寄存器,型号为CC40194或74LS194,两者功能相同,可互换使用。 74LS194有5种不同操作模式:即并行送数寄存,右移(方向由Q0-->Q3),左移(方向由Q3→Q0),保持及清零。 2.移位寄存器应用很广,可构成移位寄存器型计数器:顺序脉冲发生器;串行累加器;可用数据转换,即把串行数据转换为并行数据,或把并行数据转换为串行数据等。本实验研究移位寄存器用作环形计数器和数据的串、并行转换。 (1)环行计数器 把移位寄存器的输出反馈到它的串行输入端,就可以进行循环移位。 (2)实现数据、并行转换器 a)串行∕并行转换器 串行∕并行转换器是指串行输入的数码,经转换电路之后变换成并行输出。 b)并行∕串行转换器 并行∕串行转换器是指并行输入的数码经转换电路之后,换成串行输出。 五. 实验内容与步骤(共1分) 1. 2.测试74LS194的逻辑功能(0.5分) (1)在实验箱上选取一个16P插座,按定位标记插好74LS194集成块。 (2)将实验挂箱上+5V直流电源接40194的16脚,地接8脚。S1、S0、SL、SR、D0、D1、D2、D3分别接至逻辑电平开关的输出插口;Q0、Q1、Q2、Q3接至发光二极管。CP端接单次脉冲源。 (3)改变不同的输入状态,逐个送入单次脉冲,观察寄存器输出状态,记录之。 a)清除:令=0,其它输入均为任意态,这时寄存器输出Q0、 Q1、 Q2 、Q3应均为0。清除后,至=1。 b)送数:令=S1=S0=1 ,送入任意4位二进制数,如D0、D1、D2、D3=1010,加CP脉冲,观察CP=0、CP由1→0、CP=1三种情况下寄存器输出状态的变化,观察寄存输出状态变化是否发生在CP脉冲的上升沿。 (c)右移:清零后,令=1, S1=0 S0=1,由右移输入端S R送入二进制数码如0100,由CP端连续加4个脉冲,观察输出情况,记录之。 (d)左移:先清零或予至,再令=1 S1=1,S0=0,由左移输入端S L送入二进制数码

运算器组成实验

实验二 运算器组成实验 1.算术逻辑运算实验 一.实验目的 1. 了解简单运算器的数据传输通路。 2. 验证运算功能发生器的组合功能。 3. 掌握算术逻辑运算加、减、与的工作原理。 4. 验证实验台运算的8位加、减、与、直通功能。 5. 按给定数据,完成几种指定的算术和逻辑运算。 二.实验内容 1.实验原理 算术逻辑单元ALU 的数据通路如图2-1所示。其中运算器ALU181根据74LS181的功能用VHDL 硬件描述语言编辑而成,构成8位字长的ALU 。参加运算的两个8位数据分别为A[7..0]和B[7..0],运算模式由S[3..0]的16种组合决定,而S[3..0]的值由4位2进制计数器LPM_COUNTER 产生,计数时钟是Sclk (图2-1);此外,设M=0,选择算术运算,M=1为逻辑运算,C N 为低位的进位位;F[7..0]为输出结果,C O 为运算后的输出进位位。两个8位数据由总线IN[7..0]分别通过两个电平锁存器74373锁入,ALU 功能如表2-1所示。 表2-1 ALU181的运算功能 选择端 高电平作用数据 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 +=加1 0 0 1 0 B A F = B A F += B A F +=+1 0 0 1 1 0=F =F 减1(2的补码) 0=F 0 1 0 0 AB F = B A A F 加= B A A F 加=加1 0 1 0 1 B F = )(B A F +=加B A )(B A F +=加B A +1 0 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 1 B A F ⊕= B A F 加= B A F 加=加1 1 0 1 0 B F = AB B A F )加(+= AB B A F 加)(+=加1 1 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 )加(+=加1 1 1 1 1 A F = A F = 1减A F = 注1、* 表示每一位都移至下一更高有效位, “+”是逻辑或,“加”是算术加 注2、在借位减法表达上,表2-1与标准的74181的真值表略有不同。 三.实验步骤 (1)设计ALU 元件 在Quartus II 环境下,用文本输入编辑器Text Editor 输入ALU181.VHD 算术逻辑单元文件,编译VHDL 文件,并将ALU181.VHD 文件制作成一个可调用的原理图元件。 (2)以原理图方式建立顶层文件工程

相关文档
最新文档