西南交通大学计算机组成原理课程设计报告

时间:2019-05-14 02:05:51下载本文作者:会员上传
简介:写写帮文库小编为你整理了多篇相关的《西南交通大学计算机组成原理课程设计报告》,但愿对你工作学习有帮助,当然你在写写帮文库还可以找到更多《西南交通大学计算机组成原理课程设计报告》。

第一篇:西南交通大学计算机组成原理课程设计报告

《计算机组成实验 C》

课程设计

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

专 班 学 姓

业:软件工程 级:软件一班 号: 名:某某某

指导教师:陈红梅

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

西 南 交 通 大 学

信息科学与技术学院 目录

简化计算机系统的设计.......................................................................................................................2

一、实验目的...............................................................................................................................2 二.、实验内容...............................................................................................................................2 三.、预习要求...............................................................................................................................2

四、实验报告...............................................................................................................................2 1.BLOCK图...........................................................................................................................3 2.程序设计(纸质的版本我用手抄)...........................................................................4 3.仿真波形图.................................................................................................................11

4、仿真中遇到的问题:...................................................................................................14

五、实验感想............................................................................................................................15

简化计算机系统的设计

一、实验目的

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

二.、实验内容

1.用 VHDL 语言实现简单的处理器模块。2.调用存储器模块设计 64×8 的存储器模块。

3.将简单的处理器模块和存储器模块连接形成简单的计算机系统。4.将指令序列存入存储器,然后分析指令执行流程。

三.、预习要求

1、学习简单指令集。

2、学习各指令的操作流程。

四、实验报告

1.BLOCK图

2.程序设计(纸质的版本我用手抄)

CPU的设计: 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 cpu 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 cpu;

------------------------cpuRTL级行为描述-

ARCHITECTURE RTL of cpu 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=>--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 =>--MAR <= PC;WHEN 6 =>--

CASE IR(15 DOWNTO 12)IS WHEN Read => R0 := M_data_in;

WHEN OTHERS=> NULL;END CASE;

取双字节指令的后半部分状态4

--无条件转移指状态5 状态6--

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总体的仿真波形图

1、我们可以看到CPU有6种工作模式,并且在不同的工作模式下实现了不同的功能。

2、我们的仿真波形上的M_q输出的波形为,000、15、24、D0、1F......与我们cpu_mem.Mif文件中所输入的指令一一对应。

3、我们看到PC随着时钟信号的改变在自加1。并且不断的从内存文件中依次读出相应的指令,将其执行。

4、我们看到R0的值在变化,依次为00、05、39、43、9、0A、3B、18、43、00,和所给的实例程序的情况完全吻合。同理也可以看出R1、R2、R3均为正确结果

5、我们可以看到地址寄存器也随着时钟信号在自加1,说明我们的PC和地址寄存器是共同协调工作的,随着PC加1地址也随之加1.6、在数据寄存器在CPU执行第7、8两条指令后其值也是随之改变为了R0中的值,与我们的预期相同。

3.2仿真波形的分析

变化: 我们可以看到执行完上面的的七条指令后R0、R1中的值发生了变化,而R2、R3中的值依然为00 没有发生变化。

分析:第一条指令:由于我们程序中设定为00010101即为load指令,转化为十六进制即为第一条指令15H,而我们在CPU中约定load指令为Read 01F R0<-(01F),即为将立即数5送给R0寄存器,所以当我们执行15H这条指令后CPU会将05送给R0寄存器,我们也可以从波形上看到,当执行完成15H指令后R0中的值变成了05;

第二条指令:同样的我们将24H设定为Move R1,R0 R1<-(R0)是一条转移指令,把R0中的值送给R1,从波形图上可看出 执行完成24H后 R1中的值变成了05,与我们的预期相符。

第三、四指令:我们将 D0H、1FH设定为 Read 01F,即R0<-(01)F 将1F中的值送给R0,操作完后R0的值就为我们在1F单元中存储的39 的数据值了。从波形图上我们也能看出吻合。

第五条指令:我们将94H设定为 Shl R1 即将R1中的值左移一位,操作完成后R1的值变成了0A,与波形的情况也吻合。第六条指令:我们将31H设定为 Add R0,R1 R0<-(R0)+(R1)操作完成后R0的值为R0和R1的和,很明显的看出我们仿真波形上的值是正确的。

第七、八两条指令:我们将E0H和1EH设定为 Write 01E 01E<-(R0)我们执行完成后01E单元的值在RAM中显示为43,与实际相符。

第九条指令:我们将41H设定为 SUB R0,R1 R0<-(R0-R1)指令,即为减法指令,我们预测执行完41H后R0的值为39,波形图显示正确。

第十条指令:我们将A1H设定为 Awap R0,R1(R0)(R1)指令,即为交换指令,我们预期R0=0A R1=39,从波形上看出我们执行了 A1H后与我们的R0、R1值与预期结果相同。

第十一条指令:61H 设定为 OR R0,R1 R0<-(R0)AND(RI)执行完城后R0=3B 与波形图相同。

第十二条指令:84H设定为Shr RI R1<-(RI)右移执行完成后R1应为1C 与波形图结果相同指令正确。

第十三条指令:51H设定为AND R0,R1 执行相与操作,预计R0中为18,波形图上当执行到这条指令后R0中结果确实为38,指令运行正确。

第十四条指令:28H设定为Move R2,R0 转移指令,将R0的值送给R2,预计R2中的值将为18,从波形图上看出R2值当运行到28H的时候确实为18,我们的指令运行正确。

第十五条指令:2DH设定为Move R3,R1 转移指令 将R1中的值送给R3,我们预期R3中的值将会为1C,但执行完成后我们从波形图上看出R3的值为1CH,指令运行正确。

第十六条指令:7BH设定为XOR R2,R3 将R2和R3异或 我们预期 R3中的之将会变为1CH,从波形图上看到我们运行完成7BH后R3 的值为1CH,指令运行正确。

第十七、十八条指令:D0H、1EH设定为Read 01E R0<-(01E)将01E地址中的值送给R0寄存器,我们预期R0中的值将会为 43,从波形图上可以看出当运行到此处的时候R0的值变成了43,指令运行正确。

第十九、二十条指令:C0H、19H 设定为:JZ019,若(R0)=0转移至019,否则执行下一条指令,我们分析R0中的值并不为0,故不会跳转,我们从波形上也可以看出,R0、R1、R2、R3中的值并没有发生任何变化

第二十一、二十二条指令:1DH、D0H设定为Read 01D R0<-(01D),即将01D地址中的值取出送给R0,预期R0中的值将为0,从波形图上也可以看出,执行到此处R0的值变成了0。

第二十三、二十四条指令:B0H、13H设定为: JMP 013指令 无条件跳转至013H地址,而013H 为JZ 019 指令 同时这是的R0寄存器中的值为0,满足了跳转条件,此时程序将跳转到019H地质处执行,即是我们的低二十五条指令,为停止指令,程序停止。

第二十五条指令:F0H 设定为Stop 指令,执行到此处程序停止。

此后的指令均为数据存储的指令,在这里我就不一一进行介绍了,详情可以查看下图这个32字节的RAM内情表。

4、仿真中遇到的问题:

仿真过程中的一些问题首先是PC、R0、R1、R2、R3里面的值的顺序需要将其颠倒。

仿真后还有一个问题是R0、R1、R2、R3的值显示不正确,R0只显示了到了05 后面的值就都不正确了,调试了半天,我发现波形显示M_q在上升沿变化后,与之相连的M_data_in竟然不变,最后经过各种搜索后解决了此问题,原来lpm为输出多做了一次寄存,也就是两个脉冲才会读出MAR的值。与PC的变化不衔接,整整快了两个脉冲。所以把图上红圈处的勾去掉就行了。

五、实验感想

经过此次实验

我对CPU的工作原理有了很深刻的认识,发现了其中蕴藏着巨大的乐趣,我完全的搞懂了此次试验的原理,再次基础上,我还能结合此次实验去理解微机接口,计算机组成原理等课程,通过此次实验,我能熟练的使用VHDL来编写大型的程序代码,对于一个学软件的人来说,我的编程能力又上了一个台阶。

除此之外,我学习到了很多底层的东西,让我对计算机的工作原理有了更深刻的理解,让我在此后的编程中将受益无穷。

可能老师您会看到我这个课程设计的很多拷贝,反正是我做的就是我做的,别人参考也好拷贝也好,我都觉得无所谓,重要的是我能学习到东西,这也让我学习到了很多做人的道理,你说同学问你要课程设计,我能不给么,但是作为同学我只能啰嗦一句,你只能参考啊,不要完全照搬。单是有些人他就要完全照搬你的图和分析,自己也不提出自己的看法和见解,这总是让我很心寒,特别是那些学习成绩还不错的。我真是想不通问什么要人家好心给你的报告参考,你反过来要坑人家,就这样的人品,学习好又能咋样呢,都是转空子的人,以后也不会得到大家的认可。

第二篇:计算机组成原理课程设计

《计算机组成原理》课程设计

任务书

中原工学院计算机学院 2007年6月

前言

“计算机组成原理”是大学本科计算机相关专业的一门核心专业基础课程,必修,在先导课和后继课之间起着承上启下的作用。主要讲授单处理机系统的组成和工作原理,包括运算器、存储器、控制器和输入输出系统,其中控制器的设计是课程的重点和难点。为了让学生能融会贯通各知识点,增强对计算机系统各模块协同工作的认识,充分理解数据通路,掌握控制器的设计技术,课程设计一般也侧重于控制器的设计。考虑到学生的基础和现有实验环境,本次课程设计的题目是“微程序控制器的设计与实现”。通过该课程设计,希望学生在理论与实践相结合的基础上,加深对计算机整机概念,进一步理解计算机的内部结构和时空关系,进一步理解和掌握微程序控制器的设计思想和具体方法、步骤,从而提高自行设计、调试和分析问题的能力。课程设计题目

微程序控制器的设计与实现

目的

 巩固和深刻理解“计算机组成原理”课程所讲解的原理,加深对计算机各模块协同工作的认识

 掌握微程序设计的思想和具体流程、操作方法。 培养学生独立工作和创新思维的能力,取得设计与调试的实践经验。

 尝试利用编程实现微程序指令的识别和解释的工作流程

内容

按照要求设计一指令系统,该指令系统能够实现数据传送,进行加、减运算和无条件转移,具有累加器寻址、寄存器寻址、寄存器间接寻址、存储器直接寻址、立即数寻址等五种寻址方式。

具体要求

 仔细复习所学过的理论知识,掌握微程序设计的思想,并根据掌握的理论写出要设计的指令系统的微程序流程。指令系统至少要包括六条指令,具有上述功能和寻址方式。 根据微操作流程及给定的微指令格式写出相应的微程序  将所设计的微程序在虚拟环境中运行调试程序,并给出测试思路和具体程序段

 尝试用C或者Java语言实现所设计的指令系统的加载、识别和解释功能。 撰写课程设计报告。

设计环境

 伟福COP2000型计算机组成原理实验仪,微机,相关虚拟软件。

 VC开发环境或者Java开发环境。

课程设计时间

 1.5周

课程设计报告要求 完成设计任务后,在课程设计的最后阶段,需要总结全部设计工作,写出完整,规范的设计报告,在指定的时间内提交指导教师.课程设计报告要求有完整的格式,包括封面,目录,正文等,具体如下:

一、封面

包括:课程设计题目,姓名,学号,班级,指导教师,完成日期.二、目录

正文前必须要有目录.三、正文 正文包括的内容有: ⑴ 设计任务与要求;⑵ 设计方案(包括设计思路,采用的微指令格式,每条指令的指令流程及其微程序清单)(3)调试过程(包括实验步骤,出现的问题,解决的方法(4)小结(在整个课程设计过程中的总结和体会)(5)参考资料

成绩评定

课程设计的考核结果按优秀,良好,中等,及格和不及格来评价.对设计任务理解透彻,能够全面,正确,独立地完成设计内容所规定的任务,得出设计结果,并按时提交准确,完整,规范的设计报告,可评为优秀;按照设计任务要求能够顺利地完成任务,得出结果,按时提交较完整的,符合要求的设计报告,可评定为良好;按照设计要求完成了软件的编程与调试,基本完成了任务要求,提交符合要求的设计报告,可评为中等;基本完成设计目标,但不够完善,可能有若干小的缺陷,在帮助下能够完成任务要求,提交设计报告,可评为及格;不能完成指定的要求和任务,未提交设计报告的,评为不及格.参考资料 1.“计算机组成原理课程设计任务书” 2.“计算机组成原理” 课堂教材

第三篇:计算机组成原理课程设计范文

计算机组成原理课程设计指导材料

一. 课程设计目的

课程设计教学目的:通过本课程设计,学生可熟悉典型计算机的基本结构、基本组成和基本功能,掌握计算机主要组成部件工作原理的基本分析与设计方法,加深对理论课知识内容的理解。

二. 设计题目

题目1.内存扩充与连接 1.设计目的:

2.主要任务:

3.设计要求:

4.图表

画图时请按以下给出的原件图画 图1-1 8086芯片引脚图 图1-2内存芯片逻辑图

图1-3 译码器与门电路逻辑图 题目2.模型机组成设计

1.目的:通过对一个简单模型机的设计与实现,对计算机的基本组成、部件的设计、部件间的连接以及微指令执行的过程。

2.基本要求:画出模型机的设计图并举例描述利用该模型机进行加法运算时,各个功能部件的工作情况。

题目3.算数逻辑运算 1.目的:

(1).了解运算器 的组成结构。(2).掌握运算器的工作原理。(3).学习运算器的设计方法。

(4).掌握简单运算器的数据传 送通路。

(5).验证运算功能发生器74LS181 的组 合功能。

2.设计原理:

设计中所用的运算器数据通路图如下图。图中所示的是由两片74LS181 芯片以并/串 形式构成的8 位字长的运算器。右方为低4 位运算芯片,左方为高4 位运算芯片。低位芯片 的进位输出端Cn+4 与高位芯片的进位输入端Cn 相连,使低4 位运算产生的进位送进高4 位运算中。低位芯片的进位输入端Cn 可与外来进位相连,高位芯片的进位输出引至外部。两个芯片的控制端S0~S3 和M 各自相连,其控制电平按表。为进行双操作数运算,运算器的两个数据输入端分别由两个数据暂存器DR1、DR2(用锁存器74LS273 实现)来锁存数据。要将内总线上的数据锁存到DR1 或DR2 中,则锁存器74LS273 的控制端LDDR1 或LDDR2 须为高电平。当T4 脉冲来到的时候,总线上的数据就被锁存进DR1 或DR2 中了。为控制运算器向内总线上输出运算结果,在其输出端连接了一个三态门(用74LS245 实现)。若要将运算结果输出到总线上,则要将三态门74LS245 的控制端ALU-B 置低电平。否则输出高阻态。

3.根据设计原理描述进行原码加减运算及逻辑运算的程序流程 4.填写下表

三. 课程设计报告格式

1.报告组成及装订顺序:封面、目录、引言、正文、结论、参考文献、心得体会。2.书写格式要求:见学院课程设计报告要求

四. 其它要求

1.报告提交时间:截止12月31日

2.报告提交形式:以班级为单位提交电子版和打印版

第四篇:计算机组成原理课程设计任务书

《计算机组成原理》

课程设计任务书

一、设计任务:

1、基本模型机设计与实现;

2、在基本模型机设计的基础上设计一台复杂模型机。

二、功能指标和设计要求:

利用所学过的理论知识,特别是微程序设计的思想,设计基于微程序控制器的模型计算机,包括设计相应的硬件平台、机器指令系统和微指令等。设计环境为TD-CMA计算机组成原理教学实验箱、微机,联机软件等。同时设计好基于模型机的测试验证程序,并在设计好的硬件平台上调试通过,以验证所设计的模型机功能的可行性与可靠性。在设计完成的前提下,撰写出符合要求的课程设计说明书并通过设计答辩。

1.基本模型机设计与实现

设计一台简单模型机,在具备基本必要的硬件平台的基础上,进一步要求其机器指令系统至少要包括五条不同类型指令:如一条输入指令(假设助记符为IN),一条加法指令(假设助记符为ADD),一条输出指令(假设助记符为OUT)、一条无条件转移指令(假设助记符为JMP)和一条停机指令(假设助记符为HLT);在设计好的模型机基础上,设计一个进行两个数求和运算的测试验证程序,用以验证模型机功能的可行性与可靠性。

2.在任务1的基础上,增加机器指令系统的功能,设计具有不少于10条机器指令的复杂指令系统模型机,包含算术逻辑指令、访问内存指令、控制转移指令、输入输出指令、停机指令等。数据的寻址方式要包括直接、间接、变址和相对寻址等多种寻址方式。利用设计的复杂模型机实现两个数的减法运算并判断差得正负,差为正数则输出A,差为负数则输出B,差为零则输出C。在设计好的模型机基础上,进一步设计一个测试验证程序,验证模型机功能的可行性与可靠性。

3、基本模型机和复杂模型机的CPU数据字长为8位,采用定点补码表示。指令字长为8的整数倍。微指令字长为24位。

三、设计步骤:

1、确定设计目标 进行全面深入的模型机设计需求分析,确定所设计计算机的功能和用途。

2、总体结构、数据通路设计及硬件实现

总体结构设计包括确定模型机应具有的基本功能部件(如运算器、控制器以及基本的寄存器等等)以及它们之间的数据通路。

硬件实现基于现有的基本实验箱平台,根据所设计模型机选择必要的元器件,并通过接插件(各种连线等)进行器件连接,组成所设计的模型机硬件系统(物理机)。综合考虑计算机的速率、性能价格比、可靠性等要求,设计合理的数据通路结构,数据通路不同,执行指令所需要的逻辑操作就不同,计算机的结构也就不一样。在此基础上,在后面的微指令设计阶段,就可以依据数据通路关系确定模型机工作过程中的所有微操作,并进一步确定微指令格式中的相应微命令。

3、确定指令系统(机器指令系统)

确定数据的表示格式、位数、指令的编码、类型、需要设计哪些指令及使用的寻址方式。确定相对应指令所包含的微操作。

4、机器指令转化为微程序执行的相关设计

过程2、3完成后,就可以根据机器指令系统进行指令周期分析,确定出每条机器指令的CPU周期数。对于微程序控制的计算机,进一步确定出每个CPU周期内的微操作(明确哪些微操作可以安排在同一CPU周期中,哪些微操作则不能)。设计出每条机器指令的方框图形式的指令周期流程图。

5、微指令代码化

依据指令周期流程图以及指定的微指令格式,将设计出程序格式中的各字段(操作控制字段、P测试字段、直接微地址字段)相应的二进制代码(即对应的微命令编码)。

6、设计微指令的相关微地址

根据后续微地址的形成方法(直接微地址或P测试转移后重新形成),确定每条微指令的相关后续微地址。确定好微命令在控存中的存放地址,并将所有微命令写入到控存的相应存储单元中。

7、组装、调试

7.1、在总调试前,先按功能模块进行组装和分调,因为只有各功能模块工作正常后,才能保证整机的正常运行。首先调试每条微指令功能,再调试每条机器指令功能。

连接所有模块,用单步微指令方式执行机器指令的微程序流程图,当全部微程序流程图检查完后,若运行结果正确,则在内存中装入一段机器指令,进行其他的运行方式等功能调试及执行指令的正确性验证。

7.2、当所有功能模块都调试正常后,进入总调试。根据设计好的模型机,进一步设计一个功能测试验证程序,运行程序并验证所涉及的模型机功能是否可行和可靠。

四、课程设计报告要求:

课程设计报告要求打印,其中的数据通路框图、微程序流程图、实验接线图用VISIO等绘图工具软件绘制或用铅笔工工整整绘制,要求图文清晰,报告内容包括:

(1)封面

(包括:题目、所在系、班级、学号、指导教师及时间等项)(2)任务书(3)目录

(目录要层次清晰,要给出标题及页次,目录的最后一项是无序号的“参考文献”)。(4)正文

正文应按目录中编排的章节依次撰写,要求论述清楚,文字简练通顺,插图清晰,书写整洁。“设计”不同于实验,要充分体现出“设计”的思想,不能写成实验报告的形式。文中图、表及公式应规范地绘制和书写。正文是实践设计报告的主体,具体由以下几部分组成:

1)课程设计题目;

2)课程设计使用的相关软硬件资源;

3)设计的具体方法和步骤(包括确定所设计计算机的功能和用途、总体结构与数据通路与硬件设计、指令系统、设计指令执行流程、确定微程序地址、微指令代码化、组装、调试、测试验证程序与功能验证情况。)

4)课程设计总结(包括自己的收获与体会;遇到的问题和解决的方法等);(5)附录

附录1:数据通路图 附录2:微程序流程图

附录3:实验接线图

附录4:实验程序及微程序 附录5:参考文献(资料)

五、设计工作量:

(1)作品:设计的最终作品包括硬件和软件两个部分,要求硬件实现正确,能够演示并达到设计指标的要求。每个学生(或小组)在作品完成后,要经指导教师检查,同意拆除后方可拆卸。(2)论文:严格按上述课程设计说明书的要求撰写和装订。每个学生一份。

六、成绩评定标准:

课程设计的成绩分为:优秀、良好、中等、及格、不及格五个等级。

优秀:完成复杂模型机的设计与实现,指令系统完备有更新扩充。调试成功。文档规范齐全。

良好:完成模型机的设计与实现,指令系统指令种类丰富有一定的更新。调试成功。文档规范齐全。

中等:完成基本模型机的设计与实现,在老师指导下对指令系统有更新。调试成功。文档规范齐全。

及格:完成基本模型机的设计与实现。调试成功。文档规范齐全。不及格:没有课程设计报告,无故缺勤,不能完成调试者不及格。

七、工作计划:

时间:18周周1~周5 讲授:2课时

设计及调试:26课时 设计报告编8课时 答辩:4课时

八、参考资料:

1、《计算机组成原理》教材,陈智勇主编;

2、《CMA组成原理与系统结实验指导书》

第五篇:计算机组成原理课程设计指导书

长 沙 学

课程设计指导书

系(部)

计算机科学与技术

计算机科学与技术

2010年12 月 10 日

课程名称:计算机组成原理 课程编号:7020130610 主 笔 人:钟旭 主 审 人:

一、课程设计的目的

通过该课程设计的学习,总结计算机组成原理课程的学习内容,利用TDN-CM+教学实验系统提供的软硬件操作平台掌握层次化设计方法、运用计算机原理知识,设计并实现一台完整的计算机,从而巩固课堂知识、深化学习内容、完成教学大纲要求,学好计算机科学与技术专业的专业基础课。

二、课程设计的题目 1.基本模型机设计与实现;

2.带移位运算的模型机的设计与实现; 3.复杂模型机的设计与实现。

三、设计内容(主要技术关键的分析、解决思路和方案比较等)

利用所学过的理论知识,特别是微程序设计的思想,写出要设计的指令系统的微程序。设计环境为TDN-CM+计算机组成原理教学实验系统,微机,虚拟软件。将所设计的微程序在此环境中进行调试,并给出测试思路和具体程序段。最后撰写出符合要求的课程设计说明书、完成答辩。1.基本模型机设计与实现

指令系统至少要包括六条不同类型指令:如一条输入指令,一条减法指令,一条加法指令,一条存数指令,一条输出指令和一条无条件转移指令。2.带移位运算的模型机的设计与实现

在基本模型机的基础上增加左、右循环和左、右带进位循环四条指令

3.设计不少于10条指令的指令系统。其中,包含算术逻辑指令,访问内存指令,程序控制指令,输入输出指令,停机指令。重点是要包括直接、间接、变址和相对寻址等多种寻址方式。

以上数据字长为8位,采用定点补码表示。指令字长为8的整数倍。微指令字长为24位。

四、设计步骤

1、确定设计目标

确定所设计计算机的功能和用途。

2、确定指令系统

确定数据的表示格式、位数、指令的编码、类型、需要设计哪些指令及使用的寻址方式。

3、总体结构与数据通路

总体结构设计包括确定各部件设置以及它们之间的数据通路结构。在此基础上,就可以拟出各种信息传输路径,以及实现这些传输所需要的微命令。综合考虑计算机的速率、性能价格比、可靠性等要求,设计合理的数据通路结构,确定采用何种方案的内总线及外总线。数据通路不同,执行指令所需要的操作就不同,计算机的结构也就不一样。

4、设计指令执行流程

数据通路确定后,就可以设计指令系统中每条指令所需要的机器周期数。对于微程序控制的计算机,根据总线结构,需考虑哪些微操作可以安排在同一条微指令中,哪些微操作不能安排在同一条微指令中。

5、确定微程序地址

根据后续微地址的形成方法,确定每个微程序地址及分支转移地址。

6、微指令代码化

根据微指令格式,将微程序流程中的所有微指令代码化,转化成相应的二进制代码写入到控制存储器中的相应单元中。

7、组装、调试

在总调试前,先按功能模块进行组装和分调,因为只有各功能模块工作正常后,才能保证整机的正常运行。

当所有功能模块都调试正常后,进入总调试。连接所有模块,用单步微指令方式执行机器指令的微程序流程图,当全部微程序流程图检查完后,若运行结果正确,则在内存中装入一段机器指令,进行其他的运行方式等功能调试及执行指令的正确性验证。

五、设计说明书要求

课程设计说明书按学校统一格式撰写和装订。课程设计报告要求打印,其中的数据通路框图、微程序流程图、实验接线图用VISIO等工具软件绘制或用铅笔工工整整绘制。

(1)封面(包括:题目、所在系、班级、学号、指导教师及时间等项,可到教务处网页上下载)(2)任务书(3)目录

目录要层次清晰,要给出标题及页次,目录的最后一项是无序号的“参考文献”。(4)正文

正文应按目录中编排的章节依次撰写,要求计算正确,论述清楚,文字简练通顺,插图清晰,书写整洁。文中图、表及公式应规范地绘制和书写。

正文是实践设计报告的主体,具体由以下几部分组成:

1)课程设计题目;

2)课程设计使用的实验设备;

3)课程设计步骤(包括确定所设计计算机的功能和用途、指令系统、总体结构与数据通路、设计指令执行流程、确定微程序地址、微指令代码化、组装、调试。)

4)课程设计总结(包括自己的收获与体会;遇到的问题和解决的方法等);

(5)附录

附录1:数据通路图 附录2:微程序流程图 附录3:实验接线图 附录4:实验程序及微程序

附录5:参考文献(资料)(格式规范参照长沙学院毕业设计(论文)撰写规范)

六、设计进度安排 时间:

15、16周 讲授:2课时 答疑及设计:26课时 上机调试:8课时 答辩:6课时

七、考核标准

课程设计的成绩分为:优秀:、良好、中等、及格、不及格五个等级。

优秀:完成复杂模型机的设计与实现,指令系统完备有更新扩充。调试成功。文档规范齐全。良好:完成模型机的设计与实现,指令系统指令种类丰富有一定的更新。调试成功。文档规范齐全。中等:完成基本模型机的设计与实现,在老师指导下对指令系统有更新。调试成功。文档规范齐全。及格:完成基本模型机的设计与实现。调试成功。文档规范齐全。不及格:没有课程设计报告,无故缺勤,不能完成调试者不及格。

下载西南交通大学计算机组成原理课程设计报告word格式文档
下载西南交通大学计算机组成原理课程设计报告.doc
将本文档下载到自己电脑,方便修改和收藏,请勿使用迅雷等下载。
点此处下载文档

文档为doc格式


声明:本文内容由互联网用户自发贡献自行上传,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任。如果您发现有涉嫌版权的内容,欢迎发送邮件至:645879355@qq.com 进行举报,并提供相关证据,工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。

相关范文推荐

    计算机组成原理课程设计2007答案大全

    在验收的同时,学生必须回答下列问题: 1, 指令寄存器在组成中的作用是什么? 用来保存当前正在执行的一条指令。 2, 指令的执行过程是怎么进行的? 执行一条指令时,先把它从内存中取到......

    计算机组成原理课程设计论文

    摘 要 摘要 显示器作为计算机重要的输出部件和人机交流的窗户,是一台电脑必不可少的部分,其重要性是不言而喻的。我们打开电脑,从开机的字符提示到开机后的图形化界面以及浏览......

    计算机组成原理--课程设计指导书

    计算机组成原理课程设计指导书 基于EDA技术的单周期中央处理器的设计与实现 适用专业:计算机科学与技术专业 网络工程专业及相关专业 教 研 室:计算机科学与技术教研室 计算......

    计算机组成原理-石油大学大课程设计

    中国石油大学(北京)成教学院 计算机组成原理教程课程设计 一.题目:计算机组成原理课程涉及到计算机多方面的基础知识,从冯诺依曼计算机体系结构开始,计算机被划分为多个组成部分......

    计算机组成原理课程设计教学大纲

    计算机组成原理课程设计教学大纲 实习名称:计算机组成原理课程设计 课程编码:042219 学 分:3 实习周数:3 适用专业:计算机科学与技术 一、实习的目的与任务 通过该课程设计......

    计算机组成原理课程设计任务书(最终版)

    《计算机组成原理》 课程设计任务书 一、设计任务: 1、 基本模型机设计与实现; 2、 在基本模型机设计的基础上设计一台复杂模型机。 二、功能指标和设计要求: 利用所学过的理论......

    计算机组成原理课程设计任务书(5篇)

    华中科技大学计算机学院 计算机组成原理 课程设计任务书 计算机组成原理是计算机专业的核心专业基础课。课程设计是学完该课程并进行了多个单元实验后,综合利用所学的理论知......

    《计算机组成原理》课程设计教学大纲[推荐5篇]

    《计算机组成原理》课程设计教学大纲 课程编号: 学时/学分:1周/1 授课单位:电子与信息工程学院计算机科学系 适用专业:计算机科学与技术 教材及主要参考资料: 《计算机组成与系统......