简单计算机系统课程设计___计算机组成实验 C

简单计算机系统课程设计___计算机组成实验 C
简单计算机系统课程设计___计算机组成实验 C

《计算机组成实验C》

课程设计

适用专业:电子信息类专业

专业: ****

班级: ********

学号: ********

姓名: ***

指导教师: ***

实验学期: 2014-2015第1学期

西南交通大学

信息科学与技术学院

简化计算机系统的设计

一. 实验目的:通过学习简单的指令系统及其各指令的操作流程,用VHDL 语言实现简单的处理器模块,并通过调用存储器模块,将处理器模块和存储器模块连接形成简化的计算机系统。

二. 实验内容

1. 用VHDL 语言实现简单的处理器模块。

2. 调用存储器模块设计256×16 的存储器模块。

3. 将简单的处理器模块和存储器模块连接形成简单的计算机系统。

4. 将指令序列存入存储器,然后分析指令执行流程。

三. 预习要求:1、学习简单指令集。2、学习各指令的操作流程。

四. 实验报告

1. BLOCK 图

图1 原理图

内存文件:

图2 内存文件.Mif

2.程序设计

LIBRARY ieee;

USE ieee.std_logic_1164.ALL;

PACKAGE mypack IS

CONSTANT idle : std_logic_vector(3 DOWNTO 0) :="0000";

CONSTANT load : std_logic_vector(3 DOWNTO 0) :="0001";

CONSTANT move : std_logic_vector(3 DOWNTO 0) :="0010";

CONSTANT addx : std_logic_vector(3 DOWNTO 0) :="0011";

CONSTANT subp : std_logic_vector(3 DOWNTO 0) :="0100";

CONSTANT andp : std_logic_vector(3 DOWNTO 0) :="0101";

CONSTANT orp : std_logic_vector(3 DOWNTO 0) :="0110";

CONSTANT xorp : std_logic_vector(3 DOWNTO 0) :="0111";

CONSTANT shrp : std_logic_vector(3 DOWNTO 0) :="1000";

CONSTANT shlp : std_logic_vector(3 DOWNTO 0) :="1001";

CONSTANT swap : std_logic_vector(3 DOWNTO 0) :="1010";

CONSTANT jmp : std_logic_vector(3 DOWNTO 0) :="1011";

CONSTANT jz : std_logic_vector(3 DOWNTO 0) :="1100";

CONSTANT read : std_logic_vector(3 DOWNTO 0) :="1101";

CONSTANT write : std_logic_vector(3 DOWNTO 0) :="1110";

CONSTANT stop : std_logic_vector(3 DOWNTO 0) :="1111";

END mypack;

LIBRARY ieee;

USE ieee.std_logic_1164.ALL;

USE ieee.std_logic_unsigned.ALL;

USE WORK.mypack.ALL;

------------------------cpu实体声明---------------------------------

ENTITY cpu2 IS

PORT(

reset : IN std_logic; --清零信号低有效

clock : IN std_logic; --时钟信号

Write_Read: OUT std_logic; --读写信号,'1'为写M_address: OUT std_logic_vector(11 DOWNTO 0); --地址线

M_data_in: IN std_logic_vector(7 DOWNTO 0); --数据输入线

M_data_out: OUT std_logic_vector(7 DOWNTO 0); --数据输出线

overflow: OUT std_logic); --溢出标志

END cpu2;

------------------------cpuRTL级行为描述-------------------------------- ARCHITECTURE RTL of cpu2 IS

SIGNAL IR: std_logic_vector(15 DOWNTO 0); --指令寄存器SIGNAL MDR: std_logic_vector(7 DOWNTO 0); --数据寄存器SIGNAL MAR: std_logic_vector(11 DOWNTO 0); --地址寄存器SIGNAL status: integer RANGE 0 TO 6; --状态寄存器BEGIN

status_change: PROCESS(reset, clock, status )

BEGIN

IF reset = '0' THEN status <= 0 ;

ELSIF clock'EVENT AND clock = '0' THEN

CASE status IS

WHEN 0 =>

status <= 1;

WHEN 1 =>

IF IR(15 DOWNTO 12) = Stop THEN

status <= 1;

ELSE

status <= 2;

END IF;

WHEN 2 =>

CASE IR(15 DOWNTO 12) IS

WHEN Read|Write|Jmp|Jz|Swap =>

status <= 3;

WHEN OTHERS =>

status <= 0;

END CASE;

WHEN 3 =>

IF IR(15 DOWNTO 12)= Swap THEN

status <= 0;

ELSE

status <= 4;

END IF;

WHEN 4 =>

status <= 5;

WHEN 5 =>

CASE IR(15 DOWNTO 12) IS

WHEN Read|Write =>

status <= 6;

WHEN OTHERS =>

status <= 0;

END CASE;

WHEN OTHERS =>

status <= 0;

END CASE;

ELSE

NULL;

END IF;

END PROCESS status_change;

seq: PROCESS(reset,clock)

VARIABLE PC:std_logic_vector(11 DOWNTO 0); --程序计数器VARIABLE R0,R1,R2,R3: std_logic_vector(7 DOWNTO 0); --通用寄存器

VARIABLE A: std_logic_vector(7 DOWNTO 0); --临时寄存器VARIABLE temp: std_logic_vector(8 DOWNTO 0); --临时变量BEGIN

IF(reset='0') THEN -- 清零

IR <= (OTHERS=>'0');

PC := (OTHERS=>'0');

R0 := (OTHERS=>'0');

R1 := (OTHERS=>'0');

R2 := (OTHERS=>'0');

R3 := (OTHERS=>'0');

A := (OTHERS=>'0');

MAR <= (OTHERS=>'0');

MDR <= (OTHERS=>'0');

ELSIF(clock'event AND clock='1') THEN

overflow <= '0';

CASE status IS

WHEN 0=> --状态0

IR <= M_data_in & "00000000"; --取指令

PC := PC+1; --程序计数器加1

WHEN 1=> --状态1

IF (IR(15 DOWNTO 12) /= stop) THEN

MAR <= PC;

END IF;

CASE IR(15 DOWNTO 12) IS

WHEN load =>

R0:= "0000" & IR(11 DOWNTO 8);

WHEN shlp|shrp =>

CASE IR(11 DOWNTO 10) IS -- Rx to A

WHEN "00"=> A:= R0;

WHEN "01"=> A:= R1;

WHEN "10"=> A:= R2;

WHEN OTHERS => A:= R3;

END CASE;

WHEN Move|addx|subp|andp|orp|xorp|Swap=>

CASE IR(9 DOWNTO 8) IS -- Ry to A

WHEN "00"=> A:=R0;

WHEN "01"=> A:=R1;

WHEN "10"=> A:=R2;

WHEN OTHERS=> A:=R3;

END CASE;

WHEN OTHERS => NULL;

END CASE;

WHEN 2=> --状态2

CASE IR(15 DOWNTO 12) IS

WHEN addx => -- Rx:= Rx + A;

CASE IR(11 DOWNTO 10) IS

WHEN "00"=>

temp := (R0(7) & R0(7 DOWNTO 0)) + (A(7) & A(7 DOWNTO 0));

R0:=temp(7 DOWNTO 0);

overflow <= temp(8) XOR temp(7);

WHEN "01"=>

temp :=(R1(7) & R1(7 DOWNTO 0)) + (A(7) & A(7 DOWNTO 0));

R1:=temp(7 DOWNTO 0);

overflow <= temp(8) XOR temp(7);

WHEN "10"=>

temp :=(R2(7) & R2(7 DOWNTO 0)) + (A(7) & A(7 DOWNTO 0));

R2:=temp(7 DOWNTO 0);

overflow <= temp(8) XOR temp(7);

WHEN OTHERS=>

temp :=(R3(7) & R3(7 DOWNTO 0)) + (A(7) & A(7 DOWNTO 0));

R3:=temp(7 DOWNTO 0);

overflow <= temp(8) XOR temp(7);

END CASE;

WHEN subp => -- Rx:= Rx - A;

CASE IR(11 DOWNTO 10) IS

WHEN "00"=>

temp :=(R0(7) & R0(7 DOWNTO 0)) + NOT(A(7) & A(7 DOWNTO 0)) + 1;

R0:=temp(7 DOWNTO 0);

overflow <= temp(8) XOR temp(7);

WHEN "01"=>

temp :=(R1(7) & R1(7 DOWNTO 0)) + NOT(A(7) & A(7 DOWNTO 0)) + 1;

R1:=temp(7 DOWNTO 0);

overflow <= temp(8) XOR temp(7);

WHEN "10"=>

temp :=(R2(7) & R2(7 DOWNTO 0)) + NOT(A(7) & A(7 DOWNTO 0)) + 1;

R2:=temp(7 DOWNTO 0);

overflow <= temp(8) xor temp(7);

WHEN OTHERS=>

temp :=(R3(7) & R3(7 DOWNTO 0)) + NOT(A(7) & A(7 DOWNTO 0)) + 1;

R3:=temp(7 DOWNTO 0);

overflow <= temp(8) XOR temp(7);

END CASE;

WHEN move =>

CASE IR(11 DOWNTO 10) IS

WHEN "00"=> R0:= A;

WHEN "01"=> R1:= A;

WHEN "10"=> R2:= A;

WHEN OTHERS=> R3:= A;

END CASE;

WHEN shrp =>

CASE IR(11 DOWNTO 10) IS

WHEN "00"=> R0:= '0' & A( 7 DOWNTO 1 );

WHEN "01"=> R1:= '0' & A( 7 DOWNTO 1 );

WHEN "10"=> R2:= '0' & A( 7 DOWNTO 1 );

WHEN OTHERS=> R3:= '0' & A( 7 DOWNTO 1 );

END CASE;

WHEN shlp =>

CASE IR(11 DOWNTO 10) IS

WHEN "00"=> R0:= A( 6 DOWNTO 0 ) & '0';

WHEN "01"=> R1:= A( 6 DOWNTO 0 ) & '0';

WHEN "10"=> R2:= A( 6 DOWNTO 0 ) & '0';

WHEN OTHERS=> R3:= A( 6 DOWNTO 0 ) & '0';

END CASE;

WHEN andp => --Rx:= Rx AND A;

CASE IR(11 DOWNTO 10) IS

WHEN "00"=> R0:=R0 AND A;

WHEN "01"=> R1:=R1 AND A;

WHEN "10"=> R2:=R2 AND A;

WHEN OTHERS=> R3:=R3 AND A;

END CASE;

WHEN orp => --Rx:= Rx OR A;

CASE IR(11 DOWNTO 10) IS

WHEN "00"=> R0:=R0 OR A;

WHEN "01"=> R1:=R1 OR A;

WHEN "10"=> R2:=R2 OR A;

WHEN OTHERS=> R3:=R3 OR A;

END CASE;

WHEN xorp => --Rx:= Rx XOR A;

CASE IR(11 DOWNTO 10) IS

WHEN "00"=> R0:=R0 XOR A;

WHEN "01"=> R1:=R1 XOR A;

WHEN "10"=> R2:=R2 XOR A;

WHEN OTHERS=> R3:=R3 XOR A;

END CASE;

WHEN Swap => --Swap: Rx to Ry;

CASE IR(11 DOWNTO 8) IS

WHEN "0100"=> R0:=R1;

WHEN "1000"=> R0:=R2;

WHEN "1100"=> R0:=R3;

WHEN "0001"=> R1:=R0;

WHEN "1001"=> R1:=R2;

WHEN "1101"=> R1:=R3;

WHEN "0010"=> R2:=R0;

WHEN "0110"=> R2:=R1;

WHEN "1110"=> R2:=R3;

WHEN "0111"=> R3:=R1;

WHEN "1011"=> R3:=R2;

WHEN "0011"=> R3:=R0;

WHEN OTHERS=> NULL;

END CASE;

WHEN OTHERS => NULL;

END CASE;

WHEN 3=> --状态3 CASE IR(15 DOWNTO 12) IS

WHEN Swap=> -- Swap: A to Rx CASE IR(11 DOWNTO 10) IS

WHEN "00"=> R0:=A;

WHEN "01"=> R1:=A;

WHEN "10"=> R2:=A;

WHEN OTHERS=> R3:=A;

END CASE;

WHEN jmp|Jz|Read|Write =>

IR(7 DOWNTO 0)<= M_data_in; -- 取双字节指令的后半部分

PC := PC+1;

WHEN OTHERS => NULL;

END CASE;

WHEN 4=> --状态4 CASE IR(15 DOWNTO 12) IS

WHEN jmp => -- 无条件转移指令PC := IR(11 DOWNTO 0);

MAR <= IR(11 DOWNTO 0);

WHEN Jz => -- 条件转移指令IF(R0="00000000") then

PC := IR(11 DOWNTO 0);

MAR <= IR(11 DOWNTO 0);

else

MAR <= PC;

END IF;

WHEN Read =>

MAR <= IR(11 DOWNTO 0);

WHEN Write =>

MAR <= IR(11 DOWNTO 0);

MDR <= R0;

WHEN OTHERS => NULL;

END CASE;

WHEN 5 => --状态5

MAR <= PC;

WHEN 6 => --状态6

CASE IR(15 DOWNTO 12) IS

WHEN Read => R0 := M_data_in;

WHEN OTHERS=> NULL;

END CASE;

END CASE;

END IF;

END process seq;

comb: PROCESS (reset, status)

BEGIN

IF (reset = '1' AND status = 5 AND IR(15 DOWNTO 12)= Write ) THEN Write_Read <= '1';

ELSE

Write_Read <= '0';

END IF;

END PROCESS comb;

M_address <= MAR;

M_data_out <= MDR;

END RTL;

3.仿真波形图

图3 波形图1

图4 波形图2 解释如下:

图5 指令含义

4.实验感想

通过本实验我学到很多有用知识,不仅提高了我的系统设计和软件编程的能力,还让我对计算机组成原理实验课程有了更一步的掌握和认识。在本课程设计中,除了对CPU内部运算器,控制器以及存储器之间的联系与分工合作的了解之外,在建立波形图时,由于受平日建图的影响,忘记添加CPU内部寄存器组,另外在添加寄存器信号后,还要将相同的划成一个GROUP,在这之前的练习中,我是没有接触过的。这次练习掌握的一些新知识,相信在未来对我会有巨大帮助。

计算机组成原理期末试题

第一章计算机系统概论 计算机的硬件是由有形的电子器件等构成的,它包括运算器、存储器、控制器、适配器、输入输出设备。早起将运算器和控制器合在一起称为CPU(中央处理器)。目前的CPU包含了存储器,因此称为中央处理器。存储程序并按地址顺序执行,这是冯·诺依曼型计算机的工作原理,也是CPU自动工作的关键。 计算机系统是一个有硬件、软件组成的多级层次结构,它通常由微程序级、一般程序级、操作系统级、汇编语言级、高级语言级组成,每一级上都能进行程序设计,且得到下面各级的支持。 习题:4冯·诺依曼型计算机的主要设计思想是什么?它包括那些主要组成部分? 主要设计思想是:存储程序通用电子计算机方案,主要组成部分有:运算器、逻辑控制装置、存储器、输入和输出设备 5什么是存储容量?什么是单元地址?什么是数据字?什么是指令字? 存储器所有存储单元的总数称为存储器的存储容量。每个存储单元都有编号,称为单元地址。如果某字代表要处理的数据,称为数据字。如果某字为一条指令,称为指令字 7指令和数据均存放在内存中,计算机如何区分它们是指令还是数据? 每一个基本操作称为一条指令,而解算某一问题的一串指令序列,称为程序 第二章运算方法和运算器 按 对阶操作。

直接使用西文标准键盘输入汉字,进行处理,并显示打印汉字,是一项重大成就。为此要解决汉字的输入编码、汉字内码、子模码等三种不同用途的编码。 1第三章 内部存储器 CPU 能直接访问内存(cache 、主 存) 双端口存储器和多模块交叉存储器属于并行存储器结构。 cache 是一种高速缓冲存储器,是为了解决CPU 和主存之间速度不匹配而采用的一项重要的硬件技术,并且发展为多级cache 体系,指令cache 与数据cache 分设体 系。要求cache 的命中率接近于1 适度地兼顾了二者的优点又尽量避免其缺点,从灵活性、命中率、硬件投资来说较为理想,因而得到了普遍采用。 习题: 1设有一个具有20位地址和32位字长的存储器,问: (1)该存储器能存储多少个字节的信息? (2)如果存储器由512K ×8位SRAM 芯片组成,需要多少片; (3)需要多少位地址做芯片选择? (1)字节M 4832*220= (2)片84*28 *51232*1024==K K (3)1位地址作芯片选择 2 已知某64位机主存采用半导体存储器,其地址码为26位,若使用4M ×8位DRAM 芯片组成该机所允许的最大主存空间,并选用内存条结构形式,问: (1) 若每个内存条16M ×64位,共需几个内存条? (2)每个内存条共有多少DRAM 芯片? (3)主存共需多少DRAM 芯片?CPU 如何选

微机原理课程设计电压报警器实验报告

南通大学电子信息学院 微机原理课程设计 报告书 课题名: 班级: 姓名: 学号: 指导老师: 日期: xxx

目录 1.设计目的 (2) 2.设计内容 (2) 3.设计要求 (2) 4.设计原理 (3) 5.硬件电路图 (3) 6.程序代码 (5) 7.程序及硬件系统调试情况 (19) 8.设计总结与体会 (19)

一、设计目的 课程设计是培养和锻炼学生在学习完本门课后综合应用所学理论知识,解决实际工程设计和应用问题的能力的重要教学环节。它具有动手、动脑和理论联系实际的特点,是培养在校工科大学生理论联系实际、敢于动手、善于动手和独立自主解决设计实践中遇到的各种问题能力的一个重要教学环节。 通过课程设计,要求学生熟悉和掌握微机系统的软件、硬件设计的方法、设计步骤,使学生得到微机开发应用方面的初步训练。让学生独立或集体讨论设计题目的总体设计方案、编程、软件硬件调试、编写设计报告等问题,真正做到理论联系实际,提高动手能力和分析问题、解决问题的能力,实现由学习知识到应用知识的初步过渡。通过本次课程设计使学生熟练掌握微机系统与接口扩展电路的设计方法,熟练应用8086汇编语言编写应用程序和实际设计中的硬软件调试方法和步骤,熟悉微机系统的硬软件开发工具的使用方法。 通过课程设计实践,不仅要培养学生事实求是和严肃认真的工作态度,培养学生的实际动手能力,检验学生对本门课学习的情况,更要培养学生在实际的工程设计中查阅资料,撰写设计报告表达设计思想和结果的能力。 二、设计内容 设计一个电压报警器,要求采集实验箱提供的0~5V的电压,当输入电压在3V以内,显示电压值,如2.42。当输入电压超过3V,显示ERR,并报警。电压值可在七段数码管显示,点阵广告屏显示或液晶屏显示。报警形式自行设计,

计算机组成实验报告_LAB5

计算机组成实验五——简单的类MIPS单周期处理器实现 生命科学技术学院 5110809XXX 大豆比

目录 1OVERVIEW (1) 1.1实验名称 (1) 1.2实验目的 (1) 1.3实验范围 (1) 1.4注意事项 (1) 2实验描述 (2) 2.1新建工程 (2) 2.2顶层模块Top (5) 2.2.1模块描述 (5) 2.2.2新建模块源文件Top.v (5) 2.2.3定义信号线 (5) 2.2.4程序计数器PC (6) 2.2.5RESET (6) 2.2.6模块实例化,连接模块 (7) 2.2.7连接其他信号线 (8) 3仿真测试 (10) 3.1编写二进制测试程序 (10) 3.2初始化存储器 (10) 3.3编辑testbench文件 (11) 3.4仿真测试,观察波形 (11) 4下载验证 (12) 4.1修改Top.v中Top模块的输入输出端口 (12) 4.2编辑管脚约束文件top.ucf (12) 4.3时钟分频 (12) 4.4指定输入输出端口的意义 (13) 5实验感想与建议 (14) 5.1实验感想 (14) 5.2一些建议 (14) 6实验程序源代码 (15) 6.1Top.v (15) 6.2Ctr.v (18) 6.3Alu.v (21) 6.4AluCtr.v (22) 6.5data_memory.v (23) 6.6register.v (25) 6.7signext.v (27) 6.8inst_memory.v (27) 6.9timeDivider.v (28)

1.OVERVIEW1 1.1实验名称 简单的类MIPS单周期处理器实现-整体调试 1.2实验目的 完成单周期的类MIPS处理器 1.3实验范围 本次实验将覆盖以下范围 1、ISE的使用 2、Xilinx Spartan3E实验板的使用 3、使用VerilogHDL进行逻辑设计 4、仿真测试、下载验证 1.4注意事项 本实验的逻辑设计工具为Xilinx ISE13.4。

(完整版)计算机组成原理期末考试试题及答案

计算机组成原理试题 一、选择题(共20分,每题1分) 1.零地址运算指令在指令格式中不给出操作数地址,它的操作数来自____C__。 A.立即数和栈顶; B.暂存器; C.栈顶和次栈顶; D.累加器。 2.___C___可区分存储单元中存放的是指令还是数据。 A.存储器; B.运算器; C.控制器; D.用户。 3.所谓三总线结构的计算机是指_B_____。 A.地址线、数据线和控制线三组传输线。 B.I/O总线、主存总统和DMA总线三组传输线; C.I/O总线、主存总线和系统总线三组传输线; D.设备总线、主存总线和控制总线三组传输线.。 4.某计算机字长是32位,它的存储容量是256KB,按字编址,它的寻址范围是_____B_。 A.128K; B.64K; C.64KB; D.128KB。 5.主机与设备传送数据时,采用___A___,主机与设备是串行工作的。 A.程序查询方式; B.中断方式; C.DMA方式; D.通道。 6.在整数定点机中,下述第___B___种说法是正确的。 A.原码和反码不能表示-1,补码可以表示-1; B.三种机器数均可表示-1; C.三种机器数均可表示-1,且三种机器数的表示范围相同; D.三种机器数均不可表示-1。 7.变址寻址方式中,操作数的有效地址是___C___。 A.基址寄存器内容加上形式地址(位移量); B.程序计数器内容加上形式地址; C.变址寄存器内容加上形式地址; D.以上都不对。 8.向量中断是___C___。 A.外设提出中断; B.由硬件形成中断服务程序入口地址; C.由硬件形成向量地址,再由向量地址找到中断服务程序入口地址

计算机组成原理实验报告

重庆理工大学 《计算机组成原理》 实验报告 学号 __11503080109____ 姓名 __张致远_________ 专业 __软件工程_______ 学院 _计算机科学与工程 二0一六年四月二十三实验一基本运算器实验报告

一、实验名称 基本运算器实验 二、完成学生:张致远班级115030801 学号11503080109 三、实验目的 1.了解运算器的组成结构。 2.掌握运算器的工作原理。 四、实验原理: 两片74LS181 芯片以并/串形式构成的8位字长的运算器。右方为低4位运算芯片,左方为高4位运算芯片。低位芯片的进位输出端Cn+4与高位芯片的进位输入端Cn相连,使低4位运算产生的进位送进高4位。低位芯片的进位输入端Cn可与外来进位相连,高位芯片的进位输出到外部。 两个芯片的控制端S0~S3 和M 各自相连,其控制电平按表2.6-1。为进行双操作数运算,运算器的两个数据输入端分别由两个数据暂存器DR1、DR2(用锁存器74LS273 实现)来锁存数据。要将内总线上的数据锁存到DR1 或DR2 中,则锁存器74LS273 的控制端LDDR1 或LDDR2 须为高电平。当T4 脉冲来到的时候,总线上的数据就被锁存进DR1 或DR2 中了。 为控制运算器向内总线上输出运算结果,在其输出端连接了一个三态门(用74LS245 实现)。若要将运算结果输出到总线上,则要将三态门74LS245 的控制端ALU-B 置低电平。否则输出高阻态。数据输入单元(实验板上印有INPUT DEVICE)用以给出参与运算的数据。其中,输入开关经过一个三态门(74LS245)和内总线相连,该三态门的控制信号为SW-B,取低电平时,开关上的数据则通过三态门而送入内总线中。 总线数据显示灯(在BUS UNIT 单元中)已与内总线相连,用来显示内总线上的数据。控制信号中除T4 为脉冲信号,其它均为电平信号。 由于实验电路中的时序信号均已连至“W/R UNIT”单元中的相应时序信号引出端,因此,需要将“W/R UNIT”单元中的T4 接至“STATE UNIT”单元中的微动开关KK2 的输出端。在进行实验时,按动微动开关,即可获得实验所需的单脉冲。 S3、S2、 S1、S0 、Cn、M、LDDR1、LDDR2、ALU-B、SW-B 各电平控制信号则使用“SWITCHUNIT”单元中的二进制数据开关来模拟,其中Cn、ALU-B、SW-B 为低电平有效,LDDR1、LDDR2 为高电平有效。 对于单总线数据通路,作实验时就要分时控制总线,即当向DR1、DR2 工作暂存器打入数据时,数据开关三态门打开,这时应保证运算器输出三态门关闭;同样,当运算器输出结果至总线时也应保证数据输入三态门是在关闭状态。 运算结果表

计算机组成原理实验

计算机组成原理 一、8 位算术逻辑运算 8 位算术逻辑运算实验目的 1、掌握简单运算器的数据传送通路组成原理。 2、验证算术逻辑运算功能发生器74LS181的组合功能。 8 位算术逻辑运算实验内容 1、实验原理 实验中所用的运算器数据通路如图3-1所示。其中运算器由两片74LS181以并/串形成8位字长的ALU构成。运算器的输出经过一个三态门74LS245(U33)到ALUO1插座,实验时用8芯排线和内部数据总线BUSD0~D7插座BUS1~6中的任一个相连,内部数据总线通过LZD0~LZD7显示灯显示;运算器的两个数据输入端分别由二个锁存器74LS273(U29、U30)锁存,两个锁存器的输入并联后连至插座ALUBUS,实验时通过8芯排线连至外部数据总线EXD0~D7插座EXJ1~EXJ3中的任一个;参与运算的数据来自于8位数据开并KD0~KD7,并经过一三态门74LS245(U51)直接连至外部数据总线EXD0~EXD7,通过数据开关输入的数据由LD0~LD7显示。 图中算术逻辑运算功能发生器74LS181(U31、U32)的功能控制信号S3、S2、S1、S0、CN、M并行相连后连至SJ2插座,实验时通过6芯排线连至6位功能开关插座UJ2,以手动方式用二进制开关S3、S2、S1、S0、CN、M来模拟74LS181(U31、U32)的功能控制信号S3、S2、S1、S0、CN、M;其它电平控制信号LDDR1、LDDR2、ALUB`、SWB`以手动方式用二进制开关LDDR1、LDDR2、ALUB、SWB来模拟,这几个信号有自动和手动两种方式产生,通过跳线器切换,其中ALUB`、SWB`为低电平有效,LDDR1、LDDR2为高电平有效。 另有信号T4为脉冲信号,在手动方式下进行实验时,只需将跳线器J23上T4与手动脉冲发生开关的输出端SD相连,按动手动脉冲开关,即可获得实验所需的单脉冲。 2、实验接线 本实验用到4个主要模块:⑴低8位运算器模块,⑵数据输入并显示模块,⑶数据总线显示模块,⑷功能开关模块(借用微地址输入模块)。

计算机组成原理期末考试

计算机组成原理试题 一、选择题 ( c )1、在下列四句话中,最能准确反映计算机主要功能的是下面哪项。 A.计算机可以存储大量信息 B.计算机能代替人的脑力劳动 C.计算机是一种信息处理机 D.计算机可实现高速运算 ( c )2、计算机硬件能直接执行的只能是下面哪项。 A.符号语言 B.汇编语言 C.机器语言 D.机器语言和汇编语言 ( c )3、运算器的核心部件是下面哪项。 A.数据总线 B.数据选择器 C.算术逻辑运算部件 D.累加寄存器 ( c )4、对于存储器主要作用,下面哪项说法正确。 A.存放程序 B.存放数据 C.存放程序和数据 D.存放微程序 ( c )5、至今为止,计算机中所含所有信息仍以二进制方式表示,其原因是下面哪项。 A.节约元件 B.运算速度快 C.物理器件性能决定 D.信息处理方便( a )6、CPU中有若干寄存器,其中存放存储器中数据的寄存器是下面哪项。 A.地址寄存器 B.程序计数器 C.数据寄存器 D.指令寄存器(d?)7、CPU中有若干寄存器,其中存放机器指令的寄存器是下面哪项。 A.地址寄存器 B.程序计数器 C.指令寄存器 D.数据寄存器 ( c )8、CPU中有若干寄存器,存放CPU将要执行的下一条指令地址的寄存器是下面哪项。 A.地址寄存器 B.数据寄存器 C.程序计数器 D.指令寄存器 (c)9、CPU中程序状态寄存器中的各个状态标志位是依据下面哪项来置位的。 A.CPU已执行的指令 B.CPU将要执行的指令 C.算术逻辑部件上次的运算结果 D.累加器中的数据 ( b )10、为协调计算机各部件的工作,需要下面哪项来提供统一的时钟。 A.总线缓冲器 B.时钟发生器 C.总线控制器 D.操作命令发生器 ( c )11、下列各种数制的数中最小的数是下面哪项。 A.(101001)2 B.(52)8 C.(101001)BCD D.(233)H ( d )12、下列各种数制的数中最大的数是下面哪项。 A.(1001011)2 B.75 C.(112)8 D.(4F)H ( b )13、将十进制数15/2表示成二进制浮点规格化数(阶符1位,阶码2位,数符1位,尾数4位)是下面哪项。 A.01101110 B.01101111 C.01111111 D.11111111

微机课设实验报告

微机课程设计 数字温度计实验报告

一、题目: 上位机:完成界面设计与通讯程序 1、能够显示两个温度值,温度精度0.5度,当超出报警温度阈值时,温度 值后又提示字幕。 2、能够设定报警温度阈值 3、每隔一秒将温度值保存至文件存档。当超出报警温度阈值时,温度值后 面有提示。 4、可以对串口进行设置。 下位机:完成电路设计与控制程序 1、用两个DS18B20测温。 2、通过串口与上位机通信,并传输温度值,接受阈值设置。 3、当超出报警温度阈值时,有相应指示灯提示。 4、将当前温度显示LCD1602液晶屏上,当超出报警温度阈值时,温度值后 有提示。 二、原理 DS18B20是DALLS公司推出的“1—wire”接口的数字温度传感器,可以直接将温度转换为9~12串行信号供单片机处理。由于这种传感器只有一个IO口,是单总线串行接口,单片机可以利用串行通信将数据读出并按照LCD 的协议显示在1602液晶屏上。同时,通过PC机与单片机之间的串行通信,可以用PC机控制温度的警戒值以及记录不同时间测量的温度。 三、原理图 图3.1 LCD、18B20以及串口与单片机最小系统连接图

图3.2电源模块 四、流程图 1、上位机流程图 图4.1.1发送数据流程图图4.1.2 接受数据流程图

2、下位机流程图 图4.2.2读出温度子程序流程图 图4.2.1总流程图 图4.2.4计算温度子程序流程图

图4.2.3 温度转换流程图 图4.2.6温度值显示在LCD1602上 图4.2.5 显示数据刷新子程序 五、源程序 1、上位机程序:见附录1; 2、下位机程序:见附录2; 3、实验结果显示(上位机):见附录3。

计算机组成原理实验报告

《计算机组成原理》 实验报告 实验室名称:S402 任课教师:邹洋 小组成员:王娜任芬 学号:2010212121 2010212119

实验一_HAMMING码 (2) 实验二_乘法器 (7) 实验三_时序部件 (16) 实验四_CPU__算术逻辑单元实验 (24) 实验五_CPU__指令译码器实验 (32) 实验六_CPU_微程序控制器实验1 (43) 实验七_八_CPU实验 (59)

1 编码实验:Hamming码 1.1、实验目的 1、对容错技术有初步了解,理解掌握海明码的原理 2、掌握海明码的编码以及校验方法 1.2、实验原理 海明码是由Richard Hamming于1950年提出的,目前是被广泛采用的很有效的校验编码。它的特点是只要增加少数几个校验位,就能检测出多位出错,并能自动纠错。 Hamming码的实现原理是在数据中加入几个校验位,将数据代码的码距比较均匀的拉大,并把数据的每一个二进制位分配在几个奇偶校验组中。当某一位出错后,就会引起有关的几个校验位的值发生变化。这不但可以发现出错,还能指出是哪一位出错,为进一步自动纠错提供了依据。 假设校验位的个数为r,则它能表示2r个信息,用其中的一个信息指出“没有错误”,其余的2r-1个信息指出错误发生在哪一位。然而错误也可能发生在校验位,因此只有k=2r-1-r个信息能用于纠正被传送数据的位数,也就是说要满足关系: 2r≥k+r+1 若要能检测与自动校正一位错,并能发现两位错,此时校验位的位数r和数据位的位数k应满足下述关系:2r-1≥k+r 按上述不等式,可计算出数据位k与校验位r的对应关系,如表1.1所示: 表1.1 数据位k与校验位r的对应关系 k值最小的r值 1~3 4 4~10 5 11~25 6 26~56 7 57~119 8 若海明码的最高位号为m,最低位号为1,即H m H m-1…H2H1,则此海明码的编码规律通常是 1)校验位与数据位之和为m,每个校验位P i在海明码中被分在位号为2i-1的位置上,其余各位为数据位,并按从低向高逐位依次排列的关系分配各数据位。 2)海明码的每一位码H i(包括数据位和校验位本身)由多个校验位校验,其关系是被校验的每一位位号等于校验它的各校验位的位号之和。 3)在增大合法码的码距时,所有码的码距应尽量均匀增大,以保证对所有码的检错能力平衡提高。 下面具体看一下对一个字节进行海明编码的实现过程。 只实现一位纠错两位检错,由前面的表可以看出,8位数据位需要5位校验位,可表示为H13H12…H2H1。 五个校验位P5~P1对应的海明码位号分别为H13、H8、H4、H2和H1。P5只能放在H13位

计算机组成原理实验

实验一基础汇编语言程序设计 一、实验目的: 1、学习和了解TEC-XP16教学实验系统监控命令的用法。 2、学习和了解TEC-XP16教学实验系统的指令系统。 3、学习简单的TEC-XP16教学实验系统汇编程序设计。 二、预习要求: 1、学习TEC-XP16机监控命令的用法。 2、学习TEC-XP16机的指令系统、汇编程序设计及监控程序中子程序调用。 3、学习TEC-XP16机的使用,包括开关、指示灯、按键等。 4、了解实验内容、实验步骤和要求。 三、实验步骤: 在教学计算机硬件系统上建立与调试汇编程序有几种操作办法。 第一种办法,是使用监控程序的A命令,逐行输入并直接汇编单条的汇编语句,之后使用G命令运行这个程序。缺点是不支持汇编伪指令,修改已有程序源代码相对麻烦一些,适用于建立与运行短小的汇编程序。 第二种办法,是使用增强型的监控程序中的W命令建立完整的汇编程序,然后用M命令对建立起来的汇编程序执行汇编操作,接下来用G命令运行这个程序。适用于比较短小的程序。此时可以支持汇编伪指令,修改已经在内存中的汇编程序源代码的操作更方便一些。 第三种办法,是使用交叉汇编程序ASEC,首先在PC机上,用PC机的编辑程序建立完整的汇编程序,然后用ASEC对建立起来的汇编程序执行汇编操作,接下来把汇编操作产生的二进制的机器指令代码文件内容传送到教学机的内存中,就可以运行这个程序了。适用于规模任意大小的程序。

在这里我们只采用第一种方法。 在TEC-XP16机终端上调试汇编程序要经过以下几步: 1、使教学计算机处于正常运行状态(具体步骤见附录联机通讯指南)。 2、使用监控命令输入程序并调试。 ⑴用监控命令A输入汇编程序 >A 或>A 主存地址 如:在命令行提示符状态下输入: A 2000↙;表示该程序从2000H(内存RAM区的起始地址)地址开始 屏幕将显示: 2000: 输入如下形式的程序: 2000: MVRD R0,AAAA ;MVRD 与R0 之间有且只有一个空格,其他指令相同 2002: MVRD R1,5555 2004: ADD R0,R1 2005: AND R0,R1 2006: RET ;程序的最后一个语句,必须为RET 指令 2007:(直接敲回车键,结束A 命令输入程序的操作过程) 若输入有误,系统会给出提示并显示出错地址,用户只需在该地址重新输入正确的指令即可。 ⑵用监控命令U调出输入过的程序并显示在屏幕上 >U 或>U 主存地址

《计算机组成原理》期末考试试题及答案

武汉大学计算机学院 2007-2008学年第一学期2006级《计算机组成原理》 期末考试试题A卷答案 __ 学号_______ 班级 ____ _____ 姓名__ _________ 成绩_____ ___ 1.(16分)一浮点数,阶码部分为q位,尾数部分为p位,各包含一位符号位,均用补码表示;该浮点数所能表示的最大正数、最小正数、最大负数和最小负数分别是多少? 解: 2.在一个具有四体低位多体交叉的存储器中,如果处理器的访存地址为以下十进制。求该存储器比单体存储器的平均访问速率提高多少?(忽略初启时的延迟) (1)1、2、3、…… 32 (10分) (2)2、4、6、…… 32 (10分) 解:设存储器的访问周期为T。 (1)四体低位多体交叉的存储器访问的情况如下: 1、2、3 所需时间= T ; 4、5、6、7 所需时间= T ; 8、9、10、11 所需时间= T ; 12、13、14、15 所需时间= T ; 16、17、18、19 所需时间= T ; 20、21、22、23 所需时间= T ; 24、25、26、27 所需时间= T ; 28、29、30、31 所需时间= T ; 32 所需时间= T ; 四体低位多体交叉的存储器访问所需时间=9T; 单体存储器访问所需时间=32T; 所以平均访问速率提高:32/9倍

(2)四体低位多体交叉的存储器访问的情况如下: 2 所需时间= T ; 4、6 所需时间= T ; 8、10 所需时间= T ; 12、14 所需时间= T ; 16、18 所需时间= T ; 20、22 所需时间= T ; 24、26 所需时间= T ; 28、30 所需时间= T ; 32 所需时间= T ; 四体低位多体交叉的存储器访问所需时间= 9T; 单体存储器访问所需时间=16T; 所以平均访问速率提高:16/9倍 3.(20分)假定指令格式如下: 其中: D/I为直接/间接寻址标志,D/I=0表示直接寻址,D/I=1表示间接寻址。 Bit10=1:变址寄存器I寻址; 设有关寄存器的内容为(I)=063215Q 试计算下列指令的有效地址。(Q表示八进制) (1) 152301Q (2) 140011Q 解: (1) 152301Q=1 101 010 011 000 001 因为Bitl0(I)=1,故为变址寄存器寻址,EA=(I)+A=063215+301=063516Q。 (3) 140011Q=1 100 000 000 001 001 因为D/I=0,故为直接寻址,EA=A=011Q。 4. 已知某运算器的基本结构如图所示,它具有+(加)、-(减)、和M(传送)三种操作。 (1) 写出图中1~12表示的运算器操作的微命令;(6分) (2) 设计适合此运算器的微指令格式;(6分) (3) 指令DDA的功能是计算R1、R2和R3三个寄存器的和,若进位C=0,则R1+R2→R2;若进位C=1,则R1+R2+R3→R2,画出指令DDA的微程序流程图,并列出微操作序列(取指令流程不写,取指令微指令安排在0号单元中);(6分) (4)设下址地址为5位,将微程序流程图安排在1~3号单元里;(6分)

微机原理课程设计报告

微型计算机技术课程设计 指导教师: 班级: 姓名: 学号: 班内序号: 课设日期: _________________________

目录 一、课程设计题目................. 错误!未定义书签。 二、设计目的..................... 错误!未定义书签。 三、设计内容..................... 错误!未定义书签。 四、设计所需器材与工具 (3) 五、设计思路..................... 错误!未定义书签。 六、设计步骤(含流程图和代码) ..... 错误!未定义书签。 七、课程设计小结 (36)

一、课程设计题目:点阵显示系统电路及程序设计 利用《汇编语言与微型计算机技术》课程中所学的可编程接口芯片8253、8255A、8259设计一个基于微机控制的点阵显示系统。 二、设计目的 1.通过本设计,使学生综合运用《汇编语言与微型计算机技术》、《数字电子技术》等课程的内容,为今后从事计算机检测与控制工作奠定一定的基础。 2.掌握接口芯片8253、8255A、8259等可编程器件、译码器74LS138、8路同相三态双向总线收发器74LS245、点阵显示器件的使用。 3.学会用汇编语言编写一个较完整的实用程序。 4.掌握微型计算机技术应用开发的全过程,包括需求分析、原理图设计、元器件选用、布线、编程、调试、撰写报告等步骤。 三、设计内容 1.点阵显示系统启动后的初始状态 在计算机显示器上出现菜单: dot matrix display system 1.←left shift display 2.↑up shift display 3.s stop 4.Esc Exit 2.点阵显示系统运行状态 按计算机光标←键,点阵逐列向左移动并显示:“微型计算机技术课程设计,点阵显示系统,计科11302班,陈嘉敏,彭晓”。 按计算机光标↑键,点阵逐行向上移动并显示:“微型计算机技术课程设计,点阵显示系统,计科11302班,陈嘉敏,彭晓”。 按计算机光标s键,点阵停止移动并显示当前字符。 3.结束程序运行状态 按计算机Esc键,结束点阵显示系统运行状态并显示“停”。 四.设计所需器材与工具 1.一块实验面包板(内含时钟信号1MHz或2MHz)。 2.可编程芯片8253、8255、74LS245、74LS138各一片,16×16点阵显示器件一片。

计算机组成实验报告汇总

计算机组成与体系结构 实验报告

实验项目一 一、实验目的 通过了解高级语言源程序和目标机器代码的不同表示及其相互转换,深刻理解高级语言和机器语言之间的关系,以及机器语言和不同体系结构之间的关系。 二、实验要求: 在VC6.0中创建下列源程序 #include void main() { inti=100; int j=-1; int k; k=i+j; printf("%d",k); } 然后对该程序进行编译、链接,最终生成可执行目标代码。 三、实验报告 1.给出做实验的过程. 关键代码如下:

2.给出源程序(文本文件)的内容(用十六进制形式表示)。 3.给出可执行目标文件(二进制文件)的内容(用十六进制形式表示)。

4.VC6.0调试环境:设置断点、单步运行、变量的值(十进制、十六进制)、变量的地址、变量的存储。 断点设置如下:

变量的值十进制: 变量的值十六进制: 变量的地址:

5.VC 6.0反汇编:查看源程序对应的汇编程序、可执行目标程序的二进制编码、了解如何给变量分配内存、系统函数程序段的调用。 6.分析或回答下列问题。 (1)分析同一个源程序在不同机器上生成的可执行目标代码是否相同。 不相同。因为不同的机器硬件的组成不同,因此同一个源程序在不同的机器上生成的目标文件不同。 (2)你能在可执行目标文件中找出函数printf()对应的机器代码段吗?能的话,请标示出来。 不能。因为源程序中的printf函数在可执行文件中已转换为机器语言。被翻译的机器语言中有printf函数,但是不知道是从哪一段开始翻译的。 (3)为什么源程序文件的内容和可执行目标文件的内容完全不

计算机组成原理期末考试试卷及答案(1)

计算机组成原理期末考试试卷(1) 一.选择题(下列每题有且仅有一个正确答案,每小题2分,共20分)1.假设下列字符码中最后一位为校验码,如果数据没有错误,则采用偶校验的字符码的是____。 A. 11001011 B. 11010110 C. 11000001 D. 11001001 2.在定点二进制运算器中,减法运算一般通过______ 来实现。 A. 补码运算的二进制加法器 B. 补码运算的二进制减法器 C. 补码运算的十进制加法器 D. 原码运算的二进制减法器 3.下列关于虚拟存储器的说法,正确的是____。 A. 提高了主存储器的存取速度 B. 扩大了主存储器的存储空间,并能进行自动管理和调度 C. 提高了外存储器的存取速度 D. 程序执行时,利用硬件完成地址映射 4.下列说法正确的是____。 A. 存储周期就是存储器读出或写入的时间 B. 双端口存储器采用了两套相互独立的读写电路,实现并行存取 C. 双端口存储器在左右端口地址码不同时会发生读/写冲突 D. 在cache中,任意主存块均可映射到cache中任意一行,该方法称为直接映射方式 5.单地址指令中,为了完成两个数的算术运算,除地址码指明的一个操作数外,另一个操作数一般采用____寻址方式。 A. 堆栈 B. 立即 C. 隐含 D. 间接 6.指令系统中采用不同寻址方式的目的主要是______ 。 A.实现存储程序和程序控制 B.提供扩展操作码的可能并降低指令译码难度 C.可以直接访问外存 D.缩短指令长度,扩大寻址空间,提高编程灵活性7.下列说法中,不符合RISC指令系统特点的是____。 A. 指令长度固定,指令种类少 B. 寻址方式种类尽量少,指令功能尽可能强 C. 增加寄存器的数目,以尽量减少访存的次数 D. 选取使用频率最高的一些简单指令,以及很有用但不复杂的指令

微机控制技术实验报告

《微机控制技术》课程设计报告 课题:最少拍控制算法研究专业班级:自动化1401 姓名: 学号: 指导老师:朱琳琳 2017年5月21日

目录 1. 实验目的 (3) 2. 控制任务及要求 (3) 3. 控制算法理论分析 (3) 4. 硬件设计 (5) 5. 软件设计 (5) 无纹波 (5) 有纹波 (7) 6. 结果分析 (9) 7. 课程设计体会 (10)

1.实验目的 本次课程设计的目的是让同学们掌握微型计算机控制系统设计的一般步骤,掌握系统总体控制方案的设计方法、控制算法的设计、硬件设计的方法。学习并熟悉最少拍控制器的设计和算法;研究最少拍控制系统输出采样点间纹波的形成;熟悉最少拍无纹波控制系统控制器的设计和实现方法。复习单片机及其他控制器在实际生活中的应用,进一步加深对专业知识的认识和理解,使自己的设计水平、对所学知识的应用能力以及分析问题解决问题的能力得到全面提高。 2.控制任务及要求 1.设计并实现具有一个积分环节的二阶系统的最少拍有纹波控制和无纹波控制。 对象特性G (s )= 采用零阶保持器H 0(s ),采样周期T =,试设计单位阶跃,单位速度输入时的有限拍调节器。 2.用Protel 、Altium Designer 等软件绘制原理图。 3.分别编写有纹波控制的算法程序和无纹波控制的算法程序。 4.绘制最少拍有纹波、无纹波控制时系统输出响应曲线,并分析。 3.控制算法理论分析 在离散控制系统中,通常把一个采样周期称作一拍。最少拍系统,也称为最小调整时间系统或最快响应系统。它是指系统对应于典型的输入具有最快的响应速度,被控量能经过最少采样周期达到设定值,且稳态误差为定值。显然,这样对系统的闭环脉冲传递函数)(z φ提出了较为苛刻的要求,即其极点应位于Z 平面的坐标原点处。 1最少拍控制算法 计算机控制系统的方框图为: 图7-1 最少拍计算机控制原理方框图 根据上述方框图可知,有限拍系统的闭环脉冲传递函数为: ) ()(1)()()()()(z HG z D z HG z D z R z C z +==φ (1) )(1)()(11)()()(1z z HG z D z R z E z e φφ-=+== (2) 由(1) 、(2)解得:

计算机组成原理实验报告

实验报告书 实验名称:计算机组成原理实验 专业班级:113030701 学号:113030701 姓名: 联系电话: 指导老师:张光建 实验时间:2015.4.30-2015.6.25

实验二基本运算器实验 一、实验内容 1、根据原理图连接实验电路

3、比较实验结果与手工运算结果,如有错误,分析原因。 二、实验原理 运算器可以完成算术,逻辑,移位运算,数据来自暂存器A和B,运算方式由S3-S0以及CN来控制。运算器由一片CPLD来实现。ALU的输入和输出通过三态门74LS245连接到CPU内总线上。另外还有指示灯进位标志位FC和零标志位FZ。 运算器原理图: 运算器原理图 暂存器A和暂存器B的数据能在LED灯上实时显示。进位进位标志FC、零标志FZ 和数据总线D7…D0 的显示原理也是如此。 ALU和外围电路连接原理图:

ALU和外围电路连接原理图运算器逻辑功能表:

三、实验步骤 1、按照下图的接线图,连接电路。 2、将时序与操作台单元的开关KK2 置为‘单拍’档,开关KK1、KK3 置为‘运行’档。 3、打开电源开关,如果听到有‘嘀’报警声,说明有总线竞争现象,应立即关闭电源,重新检查接线,直到错误排除。然后按动CON 单元的CLR 按钮,将运算器的A、B 和FC、FZ 清零。 4、用输入开关向暂存器A 置数。 ①拨动CON 单元的SD27…SD20 数据开关,形成二进制数01100101 (或其它数值),数据显示亮为‘1’,灭为‘0’。 ②置LDA=1,LDB=0,连续按动时序单元的ST 按钮,产生一个T4 上沿,则将二进制数01100101 置入暂存器A 中,暂存器A 的值通过ALU 单元的 A7…A0 八位LED 灯显示。 5、用输入开关向暂存器B 置数。 ①拨动CON 单元的SD27…SD20 数据开关,形成二进制数10100111 (或其它数值)。 ②置LDA=0,LDB=1,连续按动时序单元的ST 按钮,产生一个T4 上沿,则将二进制数10100111 置入暂存器B 中,暂存器B 的值通过ALU 单元的 B7…B0 八位LED 灯显示。 6、改变运算器的功能设置,观察运算器的输出。置ALU_B=0 、LDA=0、LDB=0,然后按表2-2-1 置S3、S2、S1、S0 和Cn的数值,并观察数据总线LED 显示灯显示的结果。如置S3、S2、S1、S0 为0010 ,运算器作逻辑与运算,置S3、S2、

计算机组成原理实验完整版

河南农业大学 计算机组成原理实验报告 题目简单机模型实验 学院信息与管理科学学院 专业班级计算机科学与技术2010级1班 学生姓名张子坡(1010101029) 指导教师郭玉峰 撰写日期:二○一二年六月五日

一、实验目的: 1.在掌握各部件的功能基础上,组成一个简单的计算机系统模型机; 2.了解微程序控制器是如何控制模型机运行的,掌握整机动态工作过程; 3定义五条机器指令,编写相应微程序并具体上机调试。 二、实验要求: 1.复习计算机组成的基本原理; 2.预习本实验的相关知识和内容 三、实验设备: EL-JY-II型计算机组成原理试验系统一套,排线若干。 四、模型机结构及工作原理: 模型机结构框图见实验书56页图6-1. 输出设备由底板上上的四个LED数码管及其译码、驱动电路构成,当D-G和W/R均为低电平时将数据结构的数据送入数据管显示注:本系统的数据总线为16位,指令、地址和程序计数器均为8位。当数据总线上的数据打入指令寄存器、地址寄存器和程序寄存器时,只有低8位有效。 在本实验我们学习读、写机器指令和运行机器指令的完整过程。在机器指令的执行过程中,CPU从内存中取出一条机器指令到执行结束为一个指令周期,指令由微指令组成的序列来完成,一条机器指令对应一段微程序。另外,读、写机器指令分别由相应的微程序段来完成。

为了向RAM中装入程序和数据,检查写入是否正确,并能启动程序执行,必须设计三个控制操作微程序。 存储器读操作(MRD):拨动清零开关CLR对地址、指令寄存器清零后,指令译码器输入CA1、CA2为“00”时,按“单步”键,可对RAM连续读操作。 存储器写操作(MWE):拨动清零开关CLR对地址、指令寄存器清零后,指令译码器输入CA1、CA2为“10”时,按“单步”键,可对RAM连续写操作。 启动程序(RUN):拨动开关CLR对地址、指令寄存器清零后,指令译码器输入CA1、CA2为“11”时,按“单步”键,即可转入第01号“取指”微指令,启动程序运行。 注:CA1、CA2由控制总线的E4、E5给出。键盘操作方式有监控程序直接对E4、E5赋值,无需接线。开关方式时可将E4、E5接至控制开关CA1、CA2,由开关控制。 五、实验内容、分析及参考代码: 生成的下一条微地址 UA5 UA0 MS5 MS0 微地址

计算机组成原理期末考试A卷-含答案

广东外语外贸大学信息学院计算机系 2004—2005学年第2学期 《计算机组成原理》期末考试试卷A 考卷适用班级:计算机专业03级考试时间:120分钟 班级_______ 学号_____________姓名_________成绩_______ 一、填空题(每空1分,共20分) 1.8位二进制补码表示整数的最小值为__-128____,最大值为__127___。 2.计算机常用的校验码有奇偶校验码、海明校验码、____CRC码_____。 3.一个浮点数,当其补码尾数右移1位时,为使其值不变,阶码应该__加1____。4.ALU的基本逻辑结构是__快速进位__加法器,它比行波进位加法器优越,具有先行进位逻辑,不仅可以实现高速运算,还能完成逻辑运算。 5.采用双符号位的方法进行溢出检测时,若运算结果中两个符号位__不相同__,则表明发生了溢出。 6.要组成容量为4M×8位的存储器,需要__8__片4M×1位的存储器芯片并联,或者需要__4____片1M×8位的存储器芯片串联。 7.一台计算机所具有的各种机器指令的集合称为该计算机的__指令系统__。 8.指令编码中,操作码用来指定__操作的类型__,n位操作码最多可以表示___2n____条指令。 9.CPU中,保存当前正在执行的指令的寄存器为__指令寄存器IR_,保存下一条指令地址的寄存器为_程序计数器PC__,保存CPU访存地址的寄存器为__内存地址寄存器AR__。10.控制器在生成各种控制信号时,必须按照一定的__时序__进行,以便对各种操作实施时间上的控制。 11.微程序控制器的核心部件是存储微程序的__控制存储器____,它一般用_只读存储器_构成。 12.任何指令周期的第一步必定是__取指__周期。 13.异步方式下,总线操作周期时间不固定,通过_握手(就绪/应答)_信号相互联络。14.输入输出操作实现的CPU与I/O设备的数据传输实际上是CPU与__IO设备接口寄存器__之间的数据传输。 二、选择题(每小题1分,共20分) 1.冯·诺曼机工作方式的基本特点是___________。 A.多指令流单数据流B.按地址访问并顺序执行指令 C.堆栈操作D.存储器按内容选择地址 2.主机中能对指令进行译码的器件是_________。 A.ALU B.运算器 C.控制器D.存储器 3.运算器的主要功能是进行_______。 A.逻辑运算B.算术运算

微机系统课程设计实验报告---交通信号灯自动控制模拟指示系统[13页].docx

微机系统课程设计实验报告

课题:交通信号灯自动控制模拟指示系统 一、课程设计目的 1.掌握CPU与各芯片管脚连接方法,提高借口扩展硬件电路 的连接能力。 2.加深对定时器、计数器和并行借口芯片的工作方式和编程 方法的理解。 3.掌握交通信号灯自动控制系统的设计思路和实现方法。 二、课程设计内容 设计并实现十字路口通信号自动控制模拟指示系统。设该路口由A、B两条通行相交而成,四个路口各设一组红、黄、绿三色信号灯,用两位数码管作倒计时显示。 三、应用系统设计方案 交通信号灯的亮灭时间及数码管显示时间可以通过8253来控制,8253的时钟源采用时钟信号发生器与分频电路提供,通过计算获得计数初值为1000。按照需要设定工作在方式3. 交通信号灯及数码管可以采用系统提供的相应模块,控制可以通过8255可编程并行借口,PA口控制红黄绿交通灯的亮灭,PB口和PC口控制时间显示数码管的段和位。PC0作为OUT1的输入。

四、系统测试结果 1.基本功能实现 (1)以秒为计时单位,两位数码管以十进制递减计数显示通行剩余时间,在递减计数为零瞬间转换。即南 北的绿灯、东西的红灯同时亮30秒,同时南北路口 数码管递减显示绿灯剩余时间;为0时,南北的黄 灯闪烁5秒钟,同时东西的红灯继续亮;南北的红 灯、东西的绿灯同时亮30秒,同时东西路口数码管 递减显示绿灯剩余时间;为0时,南北红灯继续亮, 同时东西的黄灯闪烁5秒;若不结束,则开始循环。 (2)通过键盘可以对红、黄、绿三色信号灯所亮时间再0~99内任意设定。 (3)十字路口的通行气势状态可自行设定,系统启动后自动运行,按“Q”退出。 2、发挥部分实现 (1)增加人工干预模式,在特殊情况下可通过人工干预,手动控制A、B交通灯的切换时间,并可以随时切 换为自动运行模式。 (2)增加夜间控制功能,交通灯在进入夜间模式后,A、B干道上红、绿灯均不亮,黄灯信号灯闪烁。 (3)增加红灯倒计时显示。

相关文档
最新文档