计算机组成与系统结构课程设计。
指导教师: 林德树赵立辉
学生班级: 网络10802
学生姓名。学号。
班内序号21
课设日期:2011/6/13~2011/6/26
目录。一、设计目的 2
二、设计要求 2
三、设计方案 2
四、组装与调试 3
1.实验计算机的组装 3
1)时钟和允许信号的vhdl程序设计 3
2)功能部件的vhdl程序设计 4
3)vhdl产生电路**文件 7
4)**目标程序bit文件到实验芯片中 12
2.实验计算机调试 14
1)编辑和编译汇编语言源程序,产生目标文件 14
2)硬件电路和软件程序连机调式 16
五、结果及分析 19
六、收获、体会及建议 19
1.主要掌握微程序控制结构计算机的设计方法,通过对机器指令和相对应微程序的设计,加深对微程序控制器的理解,加深对微程序设计特点的了解,加深对计算机各部件的理解以及对整机结构的理解。
2.掌握几种寻址方式的控制执行过程。
3.了解多累加器计算机的特点。
4.熟悉vhdl语言的编程。
1.运算器采用单累加器多寄存器结构。
2.指令系统:16条以上指令,有i/o指令,外部设备统一编址。
3.内存寻址范围1k以上字节。
寻址方式:寄存器直接寻址。
寄存器间接寻址。
直接寻址。立即数寻址。
1.首先设计整机逻辑框图,并分析各主要部件中所使用的关键器件,彻底理解主要芯片的工作原理。
根据设计要求,对实验仪硬件模块进行逻辑剪辑组合,便可设计出该实验计算机的整机逻辑框图。为利于调试,应在逻辑框图上表明各器件的控制信号及必要的输出信号。
2.指令系统和指令执行流程设计。
指令系统。
需确定实验计算机的指令系统具体由**指令组成,包括哪几种类型指令,指令操作数有哪几种寻址方式,以及指令编码等。
指令执行流程。
应根据实验计算机整机逻辑图来设计指令系统中每条指令的执行流程。 一条指令从内存取出到执行完,需要若干个机器周期(节拍)。任何指令的第一个机器周期都是“取指令周期”,或称为公操作周期。
而一条指令共需几个机器周期取决于指令在机内实现的复杂程度。
3.微操作控制信号和微程序设计。
微操作控制信号及其实现方法。
综合实验计算机指令系统各指令执行流程中所涉及到的微操作控制信号,统计总共需要多少个微控制信号,每个信号的有效性,决定这些信号中哪些由软件(微指令)直接产生,哪些需用硬件实现。
设计微指令格式,微指令由32位组成,设计出每位微操作的定义。
确定微程序控制方式。
设计任务包括设计各微程序入口地址的形成方法和控存的顺序控制(即下地址形成)方法。
4.设计接线表。
要仔细设计接线表,因为它是组装计算机的依据。
为了避免遗漏,应按模块逐个归纳整理,明确各模块中器件各控制信号的处理方法。
对于模块中不用的器件,也应有所处理。
利用fpga板进行组装计算机,不是用常规的连线方式实现,而是用超大规模集成块xc2s150-pq208编程来实现。首先要熟悉用可编程逻辑器件设计语言vhdl简单编程,然后根据所设计的连线图编程,包括xc2s150-pq208各引脚的定义,连线方程等,并编译生成熔丝**件,**到xc2s150-pq208中。
寄存器的时钟信号应接1/2时钟(mclk),它们均应为后沿有效,即各个寄存器的mclk的下降沿接收数据。微程序计数器应在mpck的上升沿接数或加1,微指令寄存器应在mick的上千沿接收数据(微指令码)。mclk和mpck、mick由输入时钟clk来产生。
本实验计算机的复位信号有两个:pc的复位控制输入prst和mpc的复位控制输入mclr。prst可接实验仪的复位输出reset; 对于读、写存储器的信号,一般应加入时钟控制。
对于实验计算机,微指令中的读、写微操作信号均为0有效,应加入以下控制:
写出8位微程序控制计算机cpu的vhdl程序。
例如:对寄存器r0可如下定义:
pri:process(wrc,wre,rs)begin
if wrc' event and wrc='0' then
if wre='0' then
case rs is
when "000" =r0<=dbl;
when "001" =r1<=dbl;
when "010" =r2<=dbl;
when "011" =r3<=dbl;
when "100" =r4<=dbl;
when "101" =r5<=dbl;
when "110" =r6<=dbl;
when others =>r7<=dbl;
end case;
end if;end if;
end process pri;
对寄存器输出,可如下定义:
rout<=r0 when rs="000" else
r1 when rs="001" else
r2 when rs="010" else
r3 when rs="011" else
r4 when rs="100" else
r5 when rs="101" else
r6 when rs="110" else
r7;对alu,两路输入分别为act和rout,输出为ff。在执行有进位的加减法时,可取alu的输入、输出均为9位。这时可把act和rout分别扩展为9位,变为fa和fb,然后如下定义alu(alu的具体定义取决于所需执行的运算)。
case s is
when "000" =ff<=fa+fb;
when "001" =ff<=fa-fb;
when "010" =ff<=fa;
when "011" =ff<=fb;
when "100" =ff<=not fb;
when others =>ff<="00000000";
end case;
ppc:process(pck,prst,pldr)begin
if(prst='0')then pc<="0000000000000000";
elsif(pck' event and pck='0')then
if(pldr='1') then pc<=ab;
elsif(pinc='0') then pc<=pc+1;
end if;
end if;
end process ppc;
上式中,pldr为转移信号,在发生转移时,它等于1。pldr可使用一个多开关实现。它的输入接各个条件转移信号(必转时为0,非转移指令时为0)它的控制接微指令寄存器的pld2-pld0。
pmpc:process(mpld,mpck,mclr)begin
if(mclr='0')then mpc<="0000000000";
elsif (mpck' event and mpck='1')then
if (mpld='0')then mpc<=md;
else mpc<=mpc+1;
end if;
end if;
end process pmpc;
ci(9 downto 0)<=mpc;
pmir:process(mick)begin
if(mick'event and mick='1')then
mir<=co;
end if;
end process pmir;
如果指令码为ir7~3,则微程序计数器入口md可如下定义(如每条指令最多8拍微指令):
md(0)<=1';
md(1)<=1';
md(2)<=1';
md(7 downto 3)<=ir(7 downto 3);
md(9 downto 8)<=00";
其它各部分均与这些相似。
注意:在增加指令功能后,cpu的结构框图和指令流程等都将不同,因此前面的vhdl程序也应作相应的修改。
利用软件project n**igator实现电路vhdl描述文件的工程建立,编辑和编译,最终产生电路**文件(文件名。bit)
软件调试过程如下:
弹出的new project窗口,在右上角的project的框中填入工程所在的路径,在左上角的project name的框中填入工程名,下方的top-level module type框中填入hdl,下一步。
如图设定参数;下一步。
新建所需的源文件,按new source按钮。
选择vhdl module,下一步。
加入已经存在的vhdl或ucf引脚分配文件。
文件添加完毕后,如图所示:
完成工程的创建。
组成原理课程设计
设计目的。本课程设计的教学目的是在掌握计算机系统组成及内部工作机制 理解计算机各功能部件工作原理的基础上,深入掌握信息流和控制信息流的流动过程,进一步加深计算机系统各模块间相互关系的认识和整机的概念,培养开发和调试计算机的技能。再设计实践中提高应用所学专业知识分析问题和解决问题的能力。通过课程设计,...
组成原理课程设计报告
信息与电气工程学院。计算机组成原理 课程设计报告。专业及班级。学号及姓名。实验和作者。时间及地点。一 课程设计的目的。计算机组成原理 课程设计是与课程配套开设的实践环节。通过本课程设计,使学生进一步的理解计算机组成原理课程讲授的相关内容,包括计算机的各大部件及工作原理,计算机对机器语言的支持和理解方...
组成原理课程设计报告
郑州轻工业学院。计算机组成原理课程设计。总结报告。题目。姓名 徐成明学号 541007010145姓名学号。姓名学号。姓名学号。姓名学号。专业班级 计算机科学与技术10 01班。院系 计算机与通信工程学院。指导老师 段赵磊 张杰 李健勇 熊坤 成绩。时间 2012 年 12 月 24 日至 2012...