组成原理课程设计报告-设计一台模型计算机

组成原理课程设计报告-设计一台模型计算机
组成原理课程设计报告-设计一台模型计算机

计算机组成原理课程设计

一、基本要求:设计一台模型计算机

具体内容: 1. 数据格式和指令系统 2. 数据通路

3. 时序系统

4. 微指令格式

5. 微程序控制器

6. 微程序流程图

7. 微程序代码表

二、模型机设计

1. 数据格式和指令系统的约定

1) 数据格式

模型机规定采用定点补码表示法表示数据,且字长为8位,其格式如下:

其中: 第7位为符号位,数值表示范围是:-1≤X<1。

2) 指令系统

模型机设计四大类指令共16条,其中包括算术逻辑指令(9条)、I/O指令(4条)、访内及转移指令(2条)和停机指令(1条)。

因为指令系统共16条指令,所以操作码是4位。

由于模型机机器字长为8位,故设计单字长指令和双字长指令供使用。

(1) 算术逻辑指令

设计9条算术逻辑指令并用单字节表示,寻址方式采用寄存器直接寻址,其格式如下:

其中,9条算术逻辑指令的名称、功能和具体格式。

(2) 访内指令及转移指令

模型机设计2条访问指令,即存数(STA)、取数(LDA),2条转移指令,即无条件转移(JMP)、结果为零或有进位转移指令(BZC),指令格式为:

其中,正负均可),X为寻址方式,其定义如下:

(3) 输入输出指令

格式如下:

7 6 5 4 3 2 1 0

其中,addr=01 时,选中“INPUT DEVICE”中的开关组作为入设备,addr=10时,选中“OUTPUT DEVICE”中的数码快作为输出设备。

(4) 停机指令

格式如下:

(5) 模型机指令系统

2. 数据通路

简单的模型计算机是由运算器、控制器、存储器、总线、输入输出和时序产生器组成。

在模型机中,我们将要实现RAM的读写指令,寄存器的读写指令,跳转指令,ALU的加、减、与、或指令。把通用寄存器作为累加器A,进行左、右移等指令,整体构成一个单累加器多寄存器的系统。

运算器模块主要由四片74LS181、暂存器两片74LS273等构成。其中74LS181可通过控制器相应的控制指令来进行某种运算,具体由S0、S1、S2、S3、M、CN来决定。T4是它的工作脉冲,正跳变有效。寄存器堆模块为实验计算机提供了2个8位通用寄存器。它们用来

保存操作数及其中间运算结果,它对运算器的运算速度、指令系统的设计等都有密切关系。在该运算器中,有两片74LS181组成算术和逻辑运算。数据的来源由74LS273寄存器提供,74LS273产生16位数据分别送入到74LS181运算器中进行相应的运算。

主存储器单元电路主要用于存放实验机的机器指令,它的数据总线挂在外部

数据总线EXD0~EXD7上;它的地址总线由地址寄存器单元电路中的地址寄存器74LS273(U37)给出,地址值由8个LED灯LAD0~LAD7显示,高电平亮,低电平灭;在手动方式下,输入数据由键盘提供,并经一三态门74LS245(U51)连至外部数据总线EXD0~EXD7,实验时将外部数据总线EXD0~EXD7用8芯排线连到内部数据总线BUSD0~BUSD7,分时给出地址和数据。它的读信号直接接地;它的写信号和片选信号由写入方式确定。该存储器中机器指令的读写分手动和自动两种方式。手动方式下,写信号由W/R` 提供,片选信号由CE`提供;自动方式下,写信号由控制CPU的P1.2提供,片选信号由控制CPU的P1.1

提供。由于地址寄存器为8位,故接入6264的地址为A0~A7,而高4位A8~A12接地,所以其实际使用容量为256字节。6264有四个控制线:CS1 第一片选线、CS2第二片选线、OE读线、WE写线。CS1片选线由CE`控制(对应开关CE)、OE读线直接接地、WE写线由W/R`控制(对应开关WE)、CS2直接接+5V。

为了向主存储器RAM中装入程序或数据,并且检查写入是否正确以及能运行主存储器中的程序,必须设计三个控制操作微程序。

·存储器读操作:拨动总清开关后,置控制开关SWB、SWA为“0 0”时,按要求连线后,连续按“启动运行”开关,可对主存储器RAM连续手动读操作。

·存储器写操作:拨动总清开关后,置控制开关SWB、SWA为“0 1”时,按要求连线后,再按“启动运行”开关,可对主存储器RAM进行连续手动写入。

·运行程序:拨动总清开关后,置控制开关SWB、SWA为“1 1”时,按要求连线后,再按“启动运行”开关,即可转入到第01号“取址”微指令,启动程序运行。

IR指令寄存器用来保存当前正在执行的一条指令。当执行一条指令时,先把指令从内存去到DR中,然后再传送至IR。指令由操作码和地址码字段组成,为了执行任何给定的指令,必须对操作码进行P测试,通过节拍脉冲T4的控制以便识别所要求的操作。指令译码器根据指令中的操作码译码强置微控器单元的地址,使下一条微指令指向相应的微程序的首址。

本系统有两种外部I\O设备,一种是二进制代码开关,它作为输入设备;另一种是数码块,它作为输出设备。输入时二进制开关数据直接经过三态门送到外部数据总线上,只要开关状态不变,输入的信息也不变。输出时,将输出数据送到外部数据总线上,当写信号有效时将数据打入输出锁存器,驱动数码块显示。

根据计算机的执行原理对各个元部件进行状态控制,最终设计出模型机的数据通路框图见附件一的图1。

计算机数据通路的控制将由微程序控制器来完成,CPU从内存中取出一条机器指令到指令执行结束的一个指令周期全部由微指令组成的序列来完成,即一条机器指令对应一个微程序。

数据的通路从程序计数器PC的地址送到主存的地址寄存器,根据地址寄存器的内容找到相应的存储单元。存储器中的数据是指令时,那么数据是从RAM送到总线,再从总线送到IR中。存储器中的数据是需要加工的数据时,那么数据是从RAM送到总线,再从总线

送到通用寄存器中等待加工。

数据加工过程中,两个数据是从总线上将数据分别分时压入两个暂存器中,等待运算部件的加工,在数据加工完成以后。运算结果是通过三太门送到总线上。三态门的控制时由微控制器来控制。

3. 时序系统

本实验装置的主存模块和操作控制器模块都带有时序电路,在连续或单脉冲源的作用下时序电路能连续或单步地输出T1、T2、T3、T4、信号,并有启停控制信号。在微程序控制器中,机器指令和微指令的时序关系比较简单,所以时序电路也比较简单。读取一个控存单元的时间与机器指令的CPU周期的时间相同,指令周期等于CPU周期与本质了所含微指令条数的积。

时序系统的设计见附件2的图2。

节拍电位与节拍脉冲时序关系图见附件3的图3。

4. 微指令格式

微指令格式采用水平型微指令,微命令编码采用直接表示法和字段直接译码法相结合的混合表示法,以缩短微指令长度,后继地址采用断定方式,微指令格式如下:

下址字段6位,从而确定控制存储器容量为64个单元。

判别测试字段3位,通过字段译码可用于规定7种P测试方式,以及一种不测试P0。当P0=000的情况下,按下址字段的地址直接取下一条微指令。

具体微指令格式内容见附件三的图4。

S3,S2,S1,S0,M,Cn:为运算器74LS181芯片的控制信号。

WE:为W/R信号对RAM和OUT进行读写操作,高电平为写有效。

A9,A8:为对外部设备(RAM,OUTPUT,INPUT)地址进行译码。

A字段内容具体见附件3。

LD299:寄存器选中,具体选择同IR的最低2位(I1,I0)配合。

当I1I0=00时为输入到R0寄存器;

当I1I0=01时为输入到R1寄存器;

当I1I0=10时为输入到R2寄存器;

LDDR1:暂存器DR1选中。

LDDR2:暂存器DR2选中。

LDIR:指令寄存器IR选中。

LOAD:总线数据直接装载在PC计数器中。

LDAR:地址寄存器AR选中。

B字段内容具体见附件3。

B- RS:为源寄存器输出选中。具体选择同IR的3,4位(I3,I2)配合。

当I3I2=00时为输入到R0寄存器;

当I3I2=01时为输入到R1寄存器;

当I3I2=10时为输入到R2寄存器;

RD-B:为目的寄存器输出选中。具体选择同指令寄存器(IR)的最低2位(I1,I0)配合。

当I1I0=00时为R0寄存器输出;

当I1I0=01时为R1寄存器输出;

当I1I0=10时为R2寄存器输出;

RI-B:为变址寄存器选中。本机固定为R2。

299-B:为移位寄存器输出选中。

ALU-B:逻辑运算单元结果输出。

PC-B:PC计数器输出。

P字段:

P(1):分支判断1,和指令寄存器(IR)的高四位(IR7-IR4)作为测试条件。可分16个分支。

P(2):分支判断2,和指令寄存器(IR)的三四位(IR3,IR2)作为测试条件,有4个分支。

P(3):分支判断3,和CY或ZI作为测试条件,有两个分支。

P(4):分支判断4,和开关SWB,SBA作为测试条件,有4个分支。用于控制台控制区(读程序,写程序,和运行程序)。

AR:进行算术运算时是否影响进位和判零标志的控制位。选中时进行带进位运算。

LDPC:为PC计数信号选中。

5. 微程序控制器

微程序控制器的结构与微指令的格式密切相关。它由控制存储器、微地址寄存器、微命令寄存器和地址转移逻辑几部分组成。微地址寄存器和微命令寄存器两者的总长度即为一条微指令的长度,二者合在一起称为微指令寄存器。

微控制器寄存器使用的是两片74LS273和一片74LS175构成它们从微命令存储器中读出并保存,为后续模块提供信息。它是根据节拍信号进行读的。

微程序控制器的工作过程:开始运行程序时

a.CPU 自动将取指令的微程序入口地址送入uAR ,启动控制存储器进行读操作,将微指令送入uIR 。

b. 指令的操作码部分经译码器产生一组微命令,送到有关部件控制完成一组微操作。

c. 由微地址产生逻辑或微指令的下字址给出下一条微指令的地址。再按取微指令。执行微指令的过程重复。

微程序控制器结构见附件3图五。

6. 微程序流程图

当拟定“取址”微指令时,该微指令的判别测试字段为P(1)测试。由于“取址”微指令是所有微程序都使用的公用微指令,因此P(1)的测试结果出现多路分支。

控制台操作为P(4)测试,它以控制台开关SWB、SWA作为测试条件,出现了3路分支,占用3个固定微地址单元。当分支微地址单元固定后,剩下的其它地方就可以一条微指令占用一个微地址单元随意填写。注意:微程序流程图上的地址为16进制。

指令中的STA、LDA JMP BZC 是四条双字长的指令。他们有四种寻址方式分别是直接、间接、变址、相对。指令在操作地址的时候都是先得到地址然才能操作。在这里设计的过程使用的也是同样的思想。在指令译码的过程中对这四条指令使用的方式不是直接判断应该执行什么指令,而是先判断应该使用怎样的寻址方式先找到应该操作的主存地址再进行操作。

间接寻址的方式的STA指令如下:

第一步:(01H)从地址指针(PC)中得到地址,送到地址寄存器(AR)中,PC自动加一。

第二步:(02H)主存(RAM)中读出东西送到总线上,送到指令寄存器(IR)中。

第三步:(10H)将(IR)中的内容进行译码。判断下一条指令的地址。

第四步:(12H)由于是STA指令是一条双子长指令。所以在此再次执行第一步即可。

第五步:(06H)将主存中的数据写到DR1中。

第六步:(07H) 将R2中的内容送到DR2中。

第七步:(08H)将DR1与DR2中的数据相加后送到AR中,是STA指令操作地址。并进行判断执行的是哪种地址。

第八步:(20H)将相应的寄存器中的内容送到RAM中。

第九步:回到原操作。

微程序流程图、控制台流程图见附件4图6。

7. 微程序代码表

微程序代码表见附件5图7。

三、总结

本次课程设计我们要设计一台微程序控制的模型机,使我们对计算机能有一个整机的概念,以完成对计算机组成原理这门课程的综合应用,达到学习本书的作用。

通过本次的课程设计使我进一步熟悉了计算机组成原理的基本知识,同时也了解了模型机设计的基本过程,掌握了一些基本的软硬件设计知识并对其进行了基本的运用。在模型机的设计中运用了很多知识,也学习了许多设计技巧。

在本次课程设计过程中,我主要是通过查阅书本及其他资料及浏览网页完成对基本功能部件的功能的了解。在课程设计中,微控制器的设计是最为复杂的一项,在微控制器设计中译码电路和翻译电路的设计是最为困难。微指令的设计中要求的就是精益求精,细微至极。设计过程需要对24位的微指令中的每一位都要细微设计。因此花的时间最多。

但是由于课程设计时间较短,所以该模型机还有许多不尽人意的地方。二周的课程设计,提高了我的实际操作能力,从以前所学理论上升到实践,真正做到了学有所用。设计中遇到的最为困难的也是在微指令设计中对微指令的每一位的正确判断,为了能正确识别每一位微指令,我们再次做了组成原理实验,加深对时序和数据流向的认识和理解。

计算机组成原理课程设计(微程序)报告

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

目录 1设计目的 (3) 2设计内容 (3) 3具体要求 (3) 4设计方案 (3) 5 调试过程 (11) 6 心得体会 (12)

微程序控制器的设计与实现 一、设计目的 1)巩固和深刻理解“计算机组成原理”课程所讲解的原 理,加深对计算机各模块协同工作的认识 2)掌握微程序设计的思想和具体流程、操作方法。 3)培养学生独立工作和创新思维的能力,取得设计与调 试的实践经验。 4)尝试利用编程实现微程序指令的识别和解释的工作 流程 二、设计内容 按照要求设计一指令系统,该指令系统能够实现数据传送,进行加、减运算和无条件转移,具有累加器寻址、寄存器寻址、寄存器间接寻址、存储器直接寻址、立即数寻址等五种寻址方式。 三、设计要求 1)仔细复习所学过的理论知识,掌握微程序设计的思 想,并根据掌握的理论写出要设计的指令系统的微程 序流程。指令系统至少要包括六条指令,具有上述功 能和寻址方式。 2)根据微操作流程及给定的微指令格式写出相应的微 程序 3)将所设计的微程序在虚拟环境中运行调试程序,并给 出测试思路和具体程序段 4)尝试用C或者Java语言实现所设计的指令系统的加 载、识别和解释功能。 5)撰写课程设计报告。 四、设计方案 1)设计思路 按照要求设计指令系统,该指令系统能够实现数据传送,进行加、减运算和无条件转移,具有累加器寻址、寄存器寻

址、寄存器间接寻址、存储器直接寻址、立即数寻址等五种寻址方式。从而可以想到如下指令:24位控制位分别介绍如下: XRD :外部设备读信号,当给出了外设的地址后,输出此信号,从指定外设读数据。 EMWR:程序存储器EM写信号。 EMRD:程序存储器EM读信号。 PCOE:将程序计数器PC的值送到地址总线ABUS上。 EMEN:将程序存储器EM与数据总线DBUS接通,由EMWR 和EMRD决定是将DBUS数据写到EM中,还是 从EM读出数据送到DBUS。 IREN:将程序存储器EM读出的数据打入指令寄存器IR 和微指令计数器uPC。 EINT:中断返回时清除中断响应和中断请求标志,便于下次中断。 ELP: PC打入允许,与指令寄存器的IR3、IR2位结合,控制程序跳转。 MAREN:将数据总线DBUS上数据打入地址寄存器MAR。 MAROE:将地址寄存器MAR的值送到地址总线ABUS上。 OUTEN:将数据总线DBUS上数据送到输出端口寄存器OUT 里。 STEN:将数据总线DBUS上数据存入堆栈寄存器ST中。 RRD:读寄存器组R0-R3,寄存器R?的选择由指令的最低两位决定。 RWR:写寄存器组R0-R3,寄存器R?的选择由指令的最低两位决定。 CN:决定运算器是否带进位移位,CN=1带进位,CN=0不带进位。 FEN:将标志位存入ALU内部的标志寄存器。 X2:X1:X0: X2、X1、X0三位组合来译码选择将数据送到DBUS上的寄存器。具体如下: X2 X1 X0 输出寄存器 0 0 0 IN_OE 外部输入门 0 0 1 IA_OE 中断向量 0 1 0 ST_OE 堆栈寄存器 0 1 1 PC_OE PC寄存器

编译原理课程设计

《编译原理》课程设计大纲 课程编号: 课程名称:编译原理/Compiler Principles 周数/学分:1周/1学分 先修课程:高级程序设计语言、汇编语言、离散数学、数据结构 适用专业:计算机科学与技术专业、软件工程专业 开课学院,系或教研室:计算机科学与技术学院 一、课程设计的目的 课程设计是对学生的一种全面综合训练,是与课堂听讲、自学和练习相辅相成的必不可少的一个教学环节。通常,设计题中的问题比平时的练习题要复杂,也更接近实际。编译原理这门课程安排的课程设计的目的是旨在要求学生进一步巩固课堂上所学的理论知识,深化理解和灵活掌握教学内容,选择合适的数据逻辑结构表示问题,然后编制算法和程序完成设计要求,从而进一步培养学生独立思考问题、分析问题、解决实际问题的动手能力。 要求学生在上机前应认真做好各种准备工作,熟悉机器的操作系统和语言的集成环境,独立完成算法编制和程序代码的编写。 设计时间: 开发工具: (1) DOS环境下使用Turbo C; (2) Windows环境下使用Visual C++ 。 (3) 其它熟悉语言。 二、课程设计的内容和要求 设计题一:算术表达式的语法分析及语义分析程序设计。 1.目的

通过设计、编制、调试一个算术表达式的语法及语义分析程序,加深对语法及语义分析原理的理解,并实现词法分析程序对单词序列的词 法检查和分析。 2.设计内容及要求: 算术表达式的文法: 〈无符号整数〉∷= 〈数字〉{〈数字〉} 〈标志符〉∷= 〈字母〉{〈字母〉|〈数字〉} 〈表达式〉∷= [+|-]〈项〉{〈加法运算符〉〈项〉} 〈项〉∷= 〈因子〉{〈乘法运算符〉〈因子〉} 〈因子〉∷= 〈标志符〉|〈无符号整数〉|‘(’〈表达式〉‘)’ 〈加法运算符〉∷= +|- 〈乘法运算符〉∷= *|/ (1) 分别选择递归下降法、算符优先分析法(或简单优 先法)完成以上任务,中间代码选用逆波兰式。 (2) 分别选择LL(1)、LR法完成以上任务,中间代码选 用四元式。 (3) 写出算术表达式的符合分析方法要求的文法,给出 分析方法的思想,完成分析程序设计。 (4) 编制好分析程序后,设计若干用例,上机测试并通 过所设计的分析程序。 设计题二:简单计算器的设计 1.目的 通过设计、编制、调试一个简单计算器程序,加深对语法及语 义分析原理的理解,并实现词法分析程序对单词序列的词法检 查和分析。 2.设计内容及要求 算术表达式的文法:

《操作系统原理》课程设计--银行家算法程序设计

信息与计算科学 操作系统原理 课程设计报告 题目:银行家算法程序设计 班级: 姓名: 专业:

银行家算法程序设计 目录 1.绪论 (2) 2.需求分析 (2) 2.1功能需求 (2) 2.2数据需求 (2) 3. 总体设计 (2) 3.1功能模块设 (2) 3.2系统设计方案 (3) 3.3开发工具 (4) 4. 详细设计 (4) 4.1银行家算法中的数据结构 (4) 4.2银行家算法 (5) 4.3安全性算法 (6) 5. 调试与测试 (8) 6. 结论 (8) 结束语 (8) 参考文献 (9) 附录1-用户手册 (10) 附录2-源程序清单 (11)

1.绪论 20世纪末,随着计算机科学的发展,C语言的应用越来越广泛,很多程序都需要使用C语言来编写。C语言使用方便快捷,它已经成为计算机编程中不可缺少的一部分,而且它也被用于各个方面。例如:政府部门,银行,学校等等。 银行家算法是判断系统是否安全,并且允许其它进程来申请这里的资源,任何一个进程来申请资源时,必须先登记该进程对资源的申请要求然后由系统检查当前资源的状况,并用银行家算法和安全性算法来检查是否允许分配资源给进程。通过课程设计,加深我们对利用银行家算法避免死锁的理解。在设计中主要的难点是用语言编写银行家算法和安全性算法,使系统资源分配能安全进行,避免系统死锁。 2.需求分析 2.1 功能需求 1.添加进程的可用资源,最大资源,已分配资源; 2.判断系统是否安全; 3.申请资源; 4.申请资源后如何分配; 5.进行安全检查。 2.2 数据需求 主要数据包括:可用资源,最大资源,已分配资源,申请资源数。 3. 总体设计 3.1 功能模块设

计算机组成原理课程设计报告

计算机组成原理课程设计报告 课程设计题目:计算机组成原理 专业名称:计算机科学与技术班级: 2013240202 关童:201324020217 张一轮:201324020218 孙吉阳:201324020219 张旭:201324020220 老师姓名:单博炜 2015年12月31日

第一章课程设计概述 1.1 课程设计的教学目的 本课程设计的教学目的是在掌握计算机系统组成及内部工作机制、理解计算机各功能部件工作原理的基础上,深入掌握数据信息流和控制信息流的流动过程,进一步加深计算机系统各模块间相互关系的认识 无条件转移),其指令格式如表1(前4位是操作码): 表1: IN为单字长(8位),含义是将数据开关8位数据输入到R0寄存器;ADD为双字长指令,第一字为操作码,第二字为操作数地址,其含义是将R0寄存器的内容与内存中以A为地址单元的数相加,结果放在

R0;STA为双字长指令,含义是将R0中的内容存储到以第二字A为地址内存单元中;OUT为双字长指令,含义是将内存中以第二字为地址的数据读到数据总线上,由数码管进行显示;JMP是双字长指令,执行该指令时,程序无条件转移到第二字所指定的内存单元地址。 为了向RAM中装入程序和数据,检查写入是否正确,并能启动程序执行,还设计了三个控制台操作微程序:存储器读操作”(KRD):拨动总清开关CLR后,当控制台开关SWB、SWA置为“00”时,按START 微动开关,可对RAM进行连续手动读操作;存储器写操作(KWE):拨动总清开关CLR后,当控制台开关SWB、SWA置为“01”时,按START微动开关,可对RAM进行连续手动写入;启动程序:拨动总清开关CLR后,当控制台开关SWB、SWA置为“11”时,按START微动开关,即可转入第01号“取指”微指令,启动程序运行。这三条控制台指令用两个开关SWB、SWA的状态来设置,其定义如表2:表2: C字段: 按照数据通路可画出机器指令的微程序流程图如图2所示,当拟定“取值”微指令时,该微指令的判

计算机操作系统原理课程设计

上海电力学院 课程设计报告 课程名称:操作系统原理 题目名称:采用可变分区存储管理,模拟主存空间的分配和回收 姓名: xxx 学号: xxx 班级: 2013054 同组姓名: xxx 课程设计时间: 2015.7.6~2015.7.10 评语: 成绩:

课程设计题目 一、设计内容及要求 可变分区存储管理模拟 设计内容:编写程序模拟实现可变分区存储管理。 具体要求: 编写程序模拟实现可变分区存储管理,实现存储管理的基本功能,包括内存的分配、内存的回收、地址变换等。 输入:1、输入新进程名称及使用内存的大小(可创建多个进程); 2、撤销某个指定的进程; 3、某个进程的逻辑地址; 输出:显示每次创建进程或者撤销进程后内存使用的状况,包括每一个进程占据的内存的位置和大小; 计算并输出给定逻辑地址对应的物理地址。 必须分别使用以下分配算法完成模拟: 1、首次适应算法; 2、最佳适应算法; 3、最差适应算法; 小组分工: 程序设计讨论: 程序主体设计: 程序调试及修改: 实验报告设计: 总结: (要求注明小组分工情况) 二、详细设计 1)原理概述 对于可变分区存储管理的内存分配与回收,主要为设计以下几个部分: 1、设计动态输入空闲分区表的程序 2、设计内存分配的程序 3、设计内存回收的程序 首次适应算法: FF算法要求空闲分区表或空闲分区链以地址递增的次序链接。在分配内时,从链首开始查找,直至找到一个大小能满足要求分区为止;然后再按照作业大小,从该分区中划一块内存空间分配给请求者,余下的空闲分区仍留在空闲链中。如从链首直至链尾都不能找到一个能满足要求的分区,则此次分配失败,返回 最佳适应算法: BF算法是指每次为作业分配内存,总是把满足要求、又是最小的空闲分区分配给作业,避免“大材小用”。为了加速寻找,该算法要求所有的空闲分区按其容量以从小到大的顺序形成一空闲分区链。这样,第一次找到能满足要求的空闲区,

编译原理课程设计报告_LL(1)分析过程模拟

课程设计(论文)任务书 软件学院学院软件工程专业07-1班 一、课程设计(论文)题目LL(1)分析过程模拟 二、课程设计(论文)工作自 2010 年 6 月 22日起至 2010 年 6月 28 日止。 三、课程设计(论文) 地点: 四、课程设计(论文)内容要求: 1.本课程设计的目的 (1)使学生掌握LL(1)模块的基本工作原理; (2)培养学生基本掌握LL(1)分析的基本思路和方法; (3)使学生掌握LL(1)的调试; (4)培养学生分析、解决问题的能力; (5)提高学生的科技论文写作能力。 2.课程设计的任务及要求 1)基本要求: (1)分析LL(1)模块的工作原理; (2)提出程序的设计方案; (3)对所设计程序进行调试。 2)创新要求: 在基本要求达到后,可进行创新设计,如改算法效率。 3)课程设计论文编写要求 (1)要按照书稿的规格打印誊写课程设计论文 (2)论文包括目录、绪论、正文、小结、参考文献、附录等 (3)课程设计论文装订按学校的统一要求完成 4)答辩与评分标准: (1)完成原理分析:20分; (2)完成设计过程(含翻译):40分; (3)完成调试:20分;

(4)回答问题:20分。 5)参考文献: (1)张素琴,吕映芝,蒋维杜,戴桂兰.编译原理(第2版).清华大学出版社 (2)丁振凡.《Java语言实用教程》北京邮电大学出版社 6)课程设计进度安排 内容天数地点 构思及收集资料2图书馆 编程与调试4实验室 撰写论文1图书馆、实验室 学生签名: 2009 年6 月22 日 课程设计(论文)评审意见 (1)完成原理分析(20分):优()、良()、中()、一般()、差();(2)设计分析(20分):优()、良()、中()、一般()、差();(3)完成调试(20分):优()、良()、中()、一般()、差();(4)翻译能力(20分):优()、良()、中()、一般()、差();(5)回答问题(20分):优()、良()、中()、一般()、差();(6)格式规范性及考勤是否降等级:是()、否() 评阅人:职称: 年月日

计算机组成原理课程设计报告63979

课程设计报告 课程名称:计算机组成原理 题目名称:复杂模型机的设计与实现 专业名称:计算机科学 18 学生姓名:李佩霖 同组人:聂铭 指导老师:单博炜 完成时间:2014年12月29日至2014年12月31日 目录 第一章课程设计概述 1.1课程设计的教学目的 1.2课程设计任务和基本要求 第二章规定项目的实验验证 2.1任务分析以及解决方案 2.2设计原理 第三章指定应用项目的设计实现

第四章收获和体会 第一章课程设计概述 1.1 课程设计的教学目的 综合运用所学计算机组成原理知识,设计并实现较为完整的计算机。 1.2 课程设计任务和基本要求 在模型机上实现如下运算:从IN单元读入一个数据,根据读入数据的低四位值X,求对应X值的1+2+3+···的整数序列的累加和,X为序列的长度。 要求使用实验机上的复杂模型机设计实验上的数据格式和指令格式、数据通路、微程序流程图设计微程序,并通过手动和联机输入完成实验验证。 第二章规定项目的实验验证 2.1任务分析以及解决方案 考虑到实验任务为计算数的序列的累加和,所以实验过程应该为: 1.学习并掌握微指令的结构以及运算方式。 2根据实验机数据通路的原理框图在实验机上连接线路。 3手动和联机向实验机打入微程序,运行并验证。 2.2设计原理 如图1为模型机数据通路原理框图,图2为微程序流程图。 图1 图2 关于数据格式,模型机规定采用定点补码表示法表示数据,数据字长为8位,8位全部用来表示数据。 关于指令格式,模型机设计3大指令共15条,其中包括运算类指令、控制转移类指令、数据传送类指令。运算类指令包含3种,算术运算、逻辑运算、一位运算,设计有6条运算类指令,分别为:ADD、AND、INC、SUB、OR、RR,所有运算类指令均为单字节指令,寻址方式采用寄存器直接寻址。控制转移类指令有3条,分别为:HLT、JMP、BZC。数据传送类指令有:IN、OUT、MOV、LDI、LAD、STA。

编译原理课程设计

编译原理课程设计报告 课题名称: C-语言编译器设计(scanner和parser) 提交文档学生姓名: 提交文档学生学号: 同组成员名单:无 指导教师姓名:金军 指导教师评阅成绩: 指导教师评阅意见: . . 提交报告时间: 2011年 6 月 17 日

1.课程设计目标 设计C-Minus编译器分为scanner和parser两个部分。scanner主要作用是对目标代码进行扫描,列出关键字,变量等内容;parser主要对语法进行分析并生成语法树。 2.分析与设计 ●实现方法:代码用C语言编译而成。其中scanner为手工实现,主要采用switch-case结构实现 状态转换;parser部分采用递归下降分析方法实现。 ●扫描器:C-的词法如下: 1、语言的关键字:i f el se i nt return void while 2、专用符号:+ - * /< <= > >= == != =; , ( ) [ ] { } /* */ 3、其他标记是变量(ID)和数字(NUM),通过下列正则表达式定义: ID = letter letter* NUM = di git digi t* letter = a|..|z|A|..|Z digi t = 0|..|9 4、空格由空白、换行符和制表符组成。空格通常被忽略,除了它必须分开ID、NUM关键字 5. 注释用通常的C语言符号/ * . . . * /围起来。注释可以放在任何空白出现的位置(即注释不能放在 标记内)上,且可以超过一行。注释不能嵌套 其DFA图如下:

分析器:以下为C-的语法规则BNF:

操作系统课程设计

计算机科学技术学院 操作系统原理课程设计报告 题目:进程管理系统 专业: 班级: 姓名: 学号: 指导老师: 年月日

《操作系统原理》课程设计任务书 一、课程设计题目(任选一个题目) 1.模拟进程管理 2.模拟处理机调度 3.模拟存储器管理 4.模拟文件系统 5.模拟磁盘调度 二、设计目的和要求 1.设计目的 《操作系统原理》课程设计是网络工程专业实践性环节之一,是学习完《操作系统原理》课程后进行的一次较全面的综合练习。其目的在于加深对操作系统的理论、方法和基础知识的理解,掌握操作系统结构、实现机理和各种典型算法,系统地了解操作系统的设计和实现思路,培养学生的系统设计能力,并了解操作系统的发展动向和趋势。 2.基本要求: (1)选择课程设计题目中的一个课题,独立完成。 (2)良好的沟通和合作能力 (3)充分运用前序课所学的软件工程、程序设计、数据结构等相关知识 (4)充分运用调试和排错技术 (5)简单测试驱动模块和桩模块的编写 (6)查阅相关资料,自学具体课题中涉及到的新知识。 (7)课题完成后必须按要求提交课程设计报告,格式规范,内容详实。 三、设计内容及步骤 1.根据设计题目的要求,充分地分析和理解问题,明确问题要求做什么。

2.根据实现的功能,划分出合理的模块,明确模块间的关系。 3.编程实现所设计的模块。 4.程序调试与测试。采用自底向上,分模块进行,即先调试低层函数。能够熟练掌握调试工具的各种功能,设计测试数据确定疑点,通过修改程序来证实它或绕过它。调试正确后,认真整理源程序及其注释,形成格式和风格良好的源程序清单和结果; 5.结果分析。程序运行结果包括正确的输入及其输出结果和含有错误的输入及其输出结果。 6.编写课程设计报告; 设计报告要求:A4纸,详细设计部分主要叙述本人的工作内容 设计报告的格式: (1)封面(题目、指导教师、专业、班级、姓名、学号) (2)设计任务书 (3)目录 (4)需求分析 (5)概要设计 (6)详细设计(含主要代码) (7)调试分析、测试结果 (8)用户使用说明 (9)附录或参考资料 四、进度安排 设计在学期的第15、16周进行,时间安排如下:

编译原理课程设计报告(一个完整的编译器)

编译原理程序设计报告 一个简单文法的编译器的设计与实现专业班级:计算机1406班 组长姓名:宋世波 组长学号: 20143753 指导教师:肖桐 2016年12月

设计分工 组长学号及姓名:宋世波20143753 分工:文法及数据结构设计 词法分析 语法分析(LL1) 基于DAG的中间代码优化 部分目标代码生成 组员1学号及姓名:黄润华20143740 分工:中间代码生成(LR0) 部分目标代码生成 组员2学号及姓名:孙何奇20143754 分工:符号表组织 部分目标代码生成

摘要 编译器是将便于人编写,阅读,维护的高级计算机语言翻译为计算机能解读、运行的低阶机器语言的程序。编译是从源代码(通常为高阶语言)到能直接被计算机或虚拟机执行的目标代码(通常为低阶语言或机器语言)的翻译过程。 一.编译器的概述 1.编译器的概念 编译器是将便于人编写,阅读,维护的高级计算机语言翻译为计算机能解读、运行的低阶机器语言的程序。编译器将原始程序作为输入,翻译产生使用目标语言的等价程序。源代码一般为高阶语言如Pascal、C++、Java 等,而目标语言则是汇编语言或目标机器的目标代码,有时也称作机器代码。 2.编译器的种类 编译器可以生成用来在与编译器本身所在的计算机和操作系统(平台)相同的环境下运行的目标代码,这种编译器又叫做“本地”编译器。另外,编译器也可以生成用来在其它平台上运行的目标代码,这种编译器又叫做交叉编译器。交叉编译器在生成新的硬件平台时非常有用。“源码到源码编译器”是指用一种高阶语言作为输入,输出也是高阶语言的编译器。例如: 自动并行化编译器经常采用一种高阶语言作为输入,转换其中的代码,并用并行代码注释对它进行注释(如OpenMP)或者用语

计算机组成原理课程设计报告完整版

计算机组成原理课程设计报告 班级:06计算机 6 班姓名:李凯学号:20063007 完成时间:2009年1月3日 一、课程设计目的 1.在实验机上设计实现机器指令及对应的微指令(微程序)并验证,从而进一步掌握微程序设计控制器的基本方法并了解指令系统与硬件结构的对应关系; 2.通过控制器的微程序设计,综合理解计算机组成原理课程的核心知识并进一步建立整机系统的概念; 3.培养综合实践及独立分析、解决问题的能力。 二、课程设计的任务 针对COP2000实验仪,从详细了解该模型机的指令/微指令系统入手,以实现乘法和除法运算功能为应用目标,在COP2000的集成开发环境下,设计全新的指令系统并编写对应的微程序;之后编写实现乘法和除法的程序进行设计的验证。 三、课程设计使用的设备(环境) 1.硬件 ●COP2000实验仪 ●PC机 2.软件 ●COP2000仿真软件 四、课程设计的具体内容(步骤) 1.详细了解并掌握COP 2000模型机的微程序控制器原理,通过综合实验来实现该模型机指令系统的特点: COP2000模型机包括了一个标准CPU所具备所有部件,这些部件包括:运算器ALU、

累加器A、工作寄存器W、左移门L、直通门D、右移门R、寄存器组R0-R3、程序计数器PC、地址寄存器MAR、堆栈寄存器ST、中断向量寄存器IA、输入端口IN、输出端口寄存器OUT、程序存储器EM、指令寄存器IR、微程序计数器uPC、微程序存储器uM,以及中断控制电路、跳转控制电路。其中运算器和中断控制电路以及跳转控制电路用CPLD来实现,其它电路都是用离散的数字电路组成。微程序控制部分也可以用组合逻辑控制来代替。 模型机为8位机,数据总线、地址总线都为8位,但其工作原理与16位机相同。相比而言8位机实验减少了烦琐的连线,但其原理却更容易被学生理解、吸收。 模型机的指令码为8位,根据指令类型的不同,可以有0到2个操作数。指令码的最低两位用来选择R0-R3寄存器,在微程序控制方式中,用指令码做为微地址来寻址微程序存储器,找到执行该指令的微程序。而在组合逻辑控制方式中,按时序用指令码产生相应的控制位。在本模型机中,一条指令最多分四个状态周期,一个状态周期为一个时钟脉冲,每个状态周期产生不同的控制逻辑,实现模型机的各种功能。模型机有24位控制位以控制寄存器的输入、输出,选择运算器的运算功能,存储器的读写。24位控制位分别介绍如下: XRD :外部设备读信号,当给出了外设的地址后,输出此信号,从指定外设读数据。 EMWR:程序存储器EM写信号。 EMRD:程序存储器EM读信号。 PCOE:将程序计数器PC的值送到地址总线ABUS上。 EMEN:将程序存储器EM与数据总线DBUS接通,由EMWR和EMRD决定是将DBUS数据写到EM中,还是从EM读出数据送到DBUS。 IREN:将程序存储器EM读出的数据打入指令寄存器IR和微指令计数器uPC。 EINT:中断返回时清除中断响应和中断请求标志,便于下次中断。 ELP: PC打入允许,与指令寄存器的IR3、IR2位结合,控制程序跳转。 MAREN:将数据总线DBUS上数据打入地址寄存器MAR。 MAROE:将地址寄存器MAR的值送到地址总线ABUS上。 OUTEN:将数据总线DBUS上数据送到输出端口寄存器OUT里。 STEN:将数据总线DBUS上数据存入堆栈寄存器ST中。 RRD:读寄存器组R0-R3,寄存器R?的选择由指令的最低两位决定。 RWR:写寄存器组R0-R3,寄存器R?的选择由指令的最低两位决定。

CMinus词法分析和语法分析设计编译器编译原理课程设计报告书

编译原理课程设计报告 课题名称:C- Minus词法分析和语法分析设计 提交文档学生姓名:X X X 提交文档学生学号:XXXXXXXXXX 同组成员名单:X X X 指导教师姓名:X X 指导教师评阅成绩: 指导教师评阅意见: . . 提交报告时间:2015年6月10日

1.课程设计目标 实验建立C-编译器。只含有扫描程序(scanner)和语法分析(parser)部分。 2.分析与设计 C-编译器设计的整体框架,本实验实现扫描处理和语法分析程序(图中粗黑部分)。 2.1 、扫描程序scanner部分 2.1.1系统设计思想 设计思想:根据DFA图用switch-case结构实现状态转换。 惯用词法:

①语言的关键字:else if int return void while ②专用符号:+ - * / < <= > >= == != = ; , ( ) [ ] { } /* */ ③其他标记是ID和NUM,通过下列正则表达式定义: ID = letter letter* NUM = digit digit* letter = a|..|z|A|..|Z digit = 0|..|9 大写和小写字母是有区别的 ④空格由空白、换行符和制表符组成。空格通常被忽略,除了它必须分开ID、NUM 关键字。 ⑤注释用通常的C语言符号/ * . . . * /围起来。注释可以放在任何空白出现的位置(即注释不能放在标记内)上,且可以超过一行。注释不能嵌套 scanner的DFA

说明:当输入的字符使DFA到达接受状态的时候,则可以确定一个单词了。初始状态设置为START,当需要得到下一个token时,取得次token的第一个字符,并且按照DFA与对此字符的类型分析,转换状态。重复此步骤,直到DONE为止,输出token类型。当字符为“/”时,状态转换为SLAH再判断下一个字符,如果为“*”则继续转到INCOMMENT,最后以“*”时转到ENDCOMMENT状态,表明是注释,如果其他的则是字符停滞于当前字符,并且输出“/”。 2.1.2程序流程图

(重庆理工大学计算机学院)编译原理课程设计报告

编译原理课程设计报告 实验名称编译原理课程设计 班级 学号 姓名 指导教师 实验成绩 2013 年06月

一、实验目的 通过设计、编写和调试,将正规式转换为不确定的有穷自动机,再将不确定的有穷自动机转换为与之等价的确定的有穷自动机,最后再将确定有穷自动机进行简化。 通过设计、编写和调试构造LR(0)项目集规范簇和LR分析表、对给定的符号串进行LR分析的程序,了解构造LR(0)分析表的步骤,对文法的要求,能够从文法G出发生成LR(0)分析表,并对给定的符号串进行分析。 二、实验内容 正规式——>NFA——>DFA——>MFA 1.正规式转化为不确定的有穷自动机 (1)目的与要求 通过设计、编写和调试将正规式转换为不确定的有穷自动机的程序,使学生了解Thompson算法,掌握转换过程中的相关概念和方法,NFA的表现形式可以是表格或图形。 (2)问题描述 任意给定一个正规式r(包括连接、或、闭包运算),根据Thompson算法设计一个程序,生成与该正规式等价的NFA N。 (3)算法描述 对于Σ上的每个正规式R,可以构造一个Σ上的NFA M,使得L(M)=L(R)。 步骤1:首先构造基本符号的有穷自动机。 步骤2:其次构造连接、或和闭包运算的有穷自动机。

(4)基本要求 算法实现的基本要求是: (1) 输入一个正规式r; (2) 输出与正规式r等价的NFA。(5)测试数据 输入正规式:(a|b)*(aa|bb)(a|b)* 得到与之等价的NFA N

(6)输出结果 2.不确定的有穷自动机的确定化 (1)目的与要求 通过设计、编写和调试将不确定的有穷自动机转换为与之等价的确定的有穷自动机的程序,使学生了解子集法,掌握转换过程中的相关概念和方法。DFA的表现形式可以是表格或图形。(2)问题描述 任意给定一个不确定的有穷自动机N,根据算法设计一个程序,将该NFA N变换为与之等价的DFA D。 (3)算法描述 用子集法将NFA转换成接受同样语言的DFA。 步骤一:对状态图进行改造 (1) 增加状态X,Y,使之成为新的唯一的初态和终态。从X引ε弧到原初态结点, 从原终态结 点引ε弧到Y结点。 (2) 对状态图进一步进行如下形式的改变

组成原理课程设计报告.

《计算机组成原理》 课 程 设 计 报 告 院系名称计算机科学与工程学院 班级 姓名 学号 指导教师

题目一 1. 问题描述 设计一个具有加法和直接寻址方式的模型机 (1)设计内容: 设计一台具有输入、输出、加法、存储和跳转功能的模型计算机,并写出工作程序和测试数据验证有设计的指令系统。 (2)设计要求: 所设计模型计算机的指令系统共包含五条机器指令:IN(输入)、OUT(输出)、ADD (加法)、STA(存数)、JMP(无条件转移)。STA和JMP为直接寻址。 2. 题目分析及设计原理 通过IN单元输入数据送R0寄存器,然后寄存器和自身相加,再将结果保存到存储器并送OUT单元显示出来,最后无条件跳转,又重复执行。 结合数据通路图设计指令。 数据通路图

注意读写逻辑控制信号的控制。读写控制逻辑如下: 3.指令设计及编码 模型机的指令系统及指令格式如下: 助记符机器指令码说明 IN RD,P XXXX XX RD p IN->RD ADD RD,RS,D XXXX RS RD RS+RD->RD STA M D,RD XXXX M RD D R0->E OUT P,RS XXXX RS XX P RS->LED JMP M D XXXX M XX D E->PC 指令格式为: 指令编码为:

;//************Start Of Main Memory Data******// $P 00 20 ;START:IN R0 从IN单元读入数据送R0 $P 01 00 ;ADD R0,RO 和自身相加,结果送 $P 02 10 ;STA 将结果存入主存 $P 03 80 ;OUT R0 输出结果 $P 04 E0 ;JMP START 跳转到00单元 $P 05 00 $P 06 50 ;HLT 停机 ;//************End Of Main Memory Data******// 4.微指令设计及编码 微指令格式 23 22 21 20 10 18-15 14-12 11-9 8-6 5-0 M23 CN WR RD IOM S3-S0 A字段B字段C字段MA5-MA0 微指令数据流程图

编译原理课程设计

编译原理课程设计 自顶向下语法分析器 学院(系):计算机科学与技术学院学生姓名:xxxxxxxxx 学号:xxxxxxxxx 班级:电计1102 大连理工大学 Dalian University of Technology

目录

1 系统概论 语法分析是编译过程的核心部分。它的任务是在词法分析识别出单词符号串的基础上,分析并判定程序的语法结构是否符合语法规则。语法分析器在编译程序中的地位如图1所示: 图1 语法分析器在编译程序中的地位 语言的语法结构是用上下文无关文法描述的。因此,语法分析器的工作本质上就是按文法的产生式,识别输入符号串是否为一个句子。这里所说的输入串是指由单词符号(文法的终结符)组成的有限序列。对一个文法,当给你一串(终结)符号时,怎样知道它是不是该文法的一个句子呢?这就要判断,看是否能从文法的开始符号出发推导出这个输入串。或者,从概念上讲,就是要建立一棵与输入串相匹配的语法分析树。 自顶向下分析法就是语法分析办法中的一类。顾名思义,自顶向下就是从文法的开始符号出发,向下推导,推出句子。这种方法是带“回溯”的。 自顶向下分析的主旨是,对任何输入串,试图用一切可能的办法,从文法开始符号(根结)出发,自上而下地为输入串建立一棵语法树。或者说,为输入串寻找一个最左推导。这种分析过程本质上是一种试探过程,是反复使用不同产生式谋求匹配输入串的过程。 实现这种自顶向下的带回溯试探法的一个简单途径是让每个非终结符对应一个递归子程序。每个这种子程序可作为一个布尔过程。一旦发现它的某个候选与输入串相匹配,就用这个候选去扩展语法树,并返回“真”值;否则,保持原来的语法树和IP值不变,并返回“假”值。 2 需求分析 以前,人们对语法的分析都建立在人工的基础上,人工分析虽然能够做到侧类旁推,但终究人力有限,再精密的分析都会出现或多或少的错误。为减少因人为产生的错误,并加快

操作系统原理课程设计实践报告

操作系统原理课程设计 实践报告 题目: 仿真多进程并发环境中死锁的预防、避免、检测与解除 姓名: 学院: 信息科技学院 专业: 计算机科学技术系 班级: 学号: 指导教师: 职称: 20010年4月8日 仿真多进程并发环境中死锁的预防、避免、检测与解除 摘要:在多道程序系统中,多个程序并发执行时可能造成死锁。所谓死锁是指多

个进程在运行过程中因争夺资源而造成的一种僵局。当进程处于这种僵局状态时若无外力作用,它们都将无法再向前推进,造成资源的浪费。该程序将模拟多进程并发时死锁现象的产生、避免、检测与解除。死锁避免用最著名的银行家算法,用银行家安全性算法类似的死锁检测算法来检测进程状况,又用资源剥夺法来实现死锁的解除。该程序实现操作简易,表示清晰并且形象描述多进程并发环境中死锁的预防、避免、检测与解除。 关键字:死锁;避免死锁;安全状态;银行家算法 引言:在操作系统、数据库系统以及网络通信中,由于进程并发和资源共享,当系统中资源分配顺序或者进程推进顺序不当就会造成系统死锁[1]。处于死锁状态的系统中,进程之间互相等待资源而永远不能继续向前推进,严重地影响了系统的可靠性。因而有时需要合理的对资源进行分配必要的时候加以限制保证系统安全、高效、稳定的运行。 1理论分析 1.1 死锁的概念 如果一个进程集合中的每个进程都在等待只能由此集合中的其他进程才能引发的事件,而无限期陷入僵持的局面称为死锁[2]。 1.2 产生死锁的条件: 1、互斥使用(资源独占):一个资源每次只能给一个进程使用。 2、不可强占(不可剥夺):资源申请者不能强行的从资源占有者手中夺取资 源,资源只能由占有者自愿释放。 3、请求和保持(部分分配,占有申请):一个进程在申请新的资源的同时保 持对原有资源的占有(只有这样才是动态申请,动态分配)。 4、循环等待:存在一个进程等待队列{P1,P2,…,Pn},其中P1等待P2占 有的资源,P2等待P3占有的资源,…,Pn等待P1占有的资源,形成一个进程等待环路[3]。 1.3死锁的预防 在系统设计时确定资源分配算法,保证不发生死锁。具体的做法是破坏产生死锁的四个必要条件之一。 ①破坏“不可剥夺”条件 在允许进程动态申请资源前提下规定,一个进程在申请新的资源不能立即得到满足而变为等待状态之前,必须释放已占有的全部资源,若需要再重新申请。 ②破坏“请求和保持”条件 要求每个进程在运行前必须一次性申请它所要求的所有资源,且仅当该进程所要资源均可满足时才给予一次性分配。 ③破坏“循环等待”条件 采用资源有序分配法:把系统中所有资源编号,进程在申请资源时必须严格按资源编号的递增次序进行,否则操作系统不予分配。

编译原理课程设计报告

2011-2012学年第二学期 《编译原理》课程设计报告 学院:计算机科学与工程学院 班级: 学生姓名:学号: 成绩: 指导教师: 时间:2012年5 月

目录 一、课程设计的目的 ---------------------------------------------------------------- - 1 - 二、课堂实验及课程设计的内容 -------------------------------------------------- - 1 - 2.1、课堂实验内容-------------------------------------------------------------- - 1 - 2.2、课程设计内容-------------------------------------------------------------- - 1 - 三、visual studio 2008 简介------------------------------------------------------- - 2 - 四、问题分析及相关原理介绍 ----------------------------------------------------- - 3 - 4.1、实验部分问题分析及相关原理介绍 ---------------------------------- - 3 - 4.1.1、词法分析功能介绍及分析------------------------------------- - 3 - 4.1.2、语法分析功能介绍及分析------------------------------------- - 3 - 4.1.3、语义分析功能介绍及分析------------------------------------- - 4 - 4.2、课程设计部分问题分析及相关原理介绍 ---------------------------- - 5 - 4.2.1、编译程序介绍 ----------------------------------------------------- - 5 - 4.2.2、对所写编译程序的源语言的描述(C语言) -------------- - 6 - 4.2.3、各部分的功能介绍及分析 -------------------------------------- - 7 - 4.3、关键算法:单词的识别-------------------------------------------------- - 8 - 4.3.1、算法思想介绍 ----------------------------------------------------- - 8 - 4.3.2、算法功能及分析 -------------------------------------------------- - 8 - 五、设计思路及关键问题的解决方法 ------------------------------------------ - 10 - 5.1、编译系统------------------------------------------------------------------ - 10 - 5.1.1、设计思路 --------------------------------------------------------- - 10 - 5.2、词法分析器总控算法--------------------------------------------------- - 12 - 5.2.1、设计思路 --------------------------------------------------------- - 12 - 5.2.2、关键问题及其解决方法 --------------------------------------- - 13 - 六、结果及测试分析-------------------------------------------------------------- - 14 - 6.1、软件运行环境及限制--------------------------------------------------- - 14 - 6.2、测试数据说明------------------------------------------------------------ - 14 - 6.3、运行结果及功能说明--------------------------------------------------- - 16 - 6.4、测试及分析说明--------------------------------------------------------- - 16 - 七、总结及心得体会 --------------------------------------------------------------- - 17 - 7.1、设计过程------------------------------------------------------------------ - 17 - 7.2、困难与收获 ------------------------------------------------------------- - 17 - 八、参考文献 ------------------------------------------------------------------------ - 18 -

计算机组成原理课程设计报告

计算机组成原理课程设 计报告 文件编码(008-TTIG-UTITD-GKBTT-PUUTI-WYTUI-8256)

南通大学计算机科学与技术学院计算机组成原理课程设计 报告书 课题名模型计算机的设计与实现 班级计123班 姓名流星雪雨 学号 指导教师顾辉 日期

目录

1 设计目的 1.融会贯通教材各章的内容,通过知识的综合运用,加深对计算机系统各模块的工作原理及相互联系的认识,加深计算机工作中“时间-空间”概念的理解,从而清晰地建立计算机的整机概念。 2.学习设计和调试计算机的基本步骤和方法,培养科学研究的独立工作能力,取得工程设计和调试的实践和经验。 2 设计内容 1.根据给定的数据格式和指令系统,设计一台微程序控制的模型计算机。 2.根据设计图,在QUARTUS II环境下仿真调试成功。 3.在调试成功的基础上,整理出设计图纸和相关文件,包括: (1)总框图(数据通路图); (2)微程序控制器逻辑图; (3)微程序流程图; (4)微程序代码表; (5)设计说明书及工作小结。 3 设计要求 (1)对指令系统中的各条指令进行分析,得出所需要的占领周期与操作序列,以便确定各器件的类型和数量; (2)设计总框图草图,进行各逻辑部件之间的互相连接,即初步确定数据通路,使得由指令系统所要求的数据通路都能实现,并满足技术指标的要求;

(3)检查全部指令周期的操作序列,确定所需要的控制点和控制信号;(4)检查所设计的数据通路,尽可能降低成本,简化线路,优化性能。以上过程可以反复进行,以便得到一个较好的方案。 4 数据格式与指令系统 数据格式 数据字规定采用定点整数补码表示法,字长8位,其中最高位为符号位,其格式如下: 7 6 5 4 3 2 1 指令系统 本实验设计使用5条机器指令,其格式与功能说明如下: 7 6543210 IN ADD STA OUT JMP IN指令为单字长(字长为8bits)指令,其功能是将数据开关的8位数据输入到R0寄存器。 ADD指令为双字长指令,第一个字为操作码,第二个字为操作数地址,其功能是将R0寄存器的内容与内存中地址为A的数相加,结果存放

相关文档
最新文档