余珊的组成原理实验报告汇总_第1页
余珊的组成原理实验报告汇总_第2页
余珊的组成原理实验报告汇总_第3页
余珊的组成原理实验报告汇总_第4页
余珊的组成原理实验报告汇总_第5页
已阅读5页,还剩23页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、右g/QT士号课程设计说明书课程设计名称:计算机组成与结构A课程设计课程设计题目:8位基本模型机设计学院名称:信息工程学院专业:计算机科学与技术班级:100452学号:10045204姓名:余珊评分:教师:张胜,周卫民20J3年L月13日计算机组成与机构课程设计目录第一章设计内容及要求31.1 设计任务31.2 设计要求3第二章系统组成及工作原理32.1 系统组成32.2 工作原理4第三章系统设计83.1 CPU顶层设计93.2 取指令和指令译码103.3 设计微代码表113.4 建立数据通路133.5 控制执行单元13第四章模型机具体设计过程144.1 各个主要基本部件设计144.2 程序计

2、数器部件(PC)144.3 寄存器154.4 微指令译码器154.5 存储器16第五章程序测试和指令调试165.1 波形仿真165.2 实验调试17第六章心得体会20第七章参考文献21第八章附录21附录一22附录二23附录三23附录四242摘要FPGA(FieldProgrammableGateArray),即现场可编程门阵列,它是在PALGALCPL/可编程器件的基础上进一步发展的产物。它是作为专用集成电路(ASIC)领域中的一种半定制电路而出现的,既解决了定制电路的不足,又克服了原有可编程器件门电路数有限的缺点。特别是随着VHD学硬件描述语言综合工具功能和性能的提高,计算机中许多重要的元件

3、,甚至是CPU都用硬件描述语言来设计和表达。本文结合计算机组成原理的基本理论,利用EDAK术和FPGA技术设计并实现一个8位模型计算机。主要包括ALU微程序控制器、时序产生电路、数据通路、存储器、指令系统等的设计。通过对各关键部件进行单元和集成仿真测试后,下载到目标芯片里,最终形成一个功能较为完整的片上模型计算机系统。关键字:FPGA模型机、微程序控制、Quartus-H第一章设计内容及要求1.1 设计任务(1)定义五条机器指令,并编写响应的微程序作为模型计算机的控制器;(2)使用电路框图设计模型计算机电路,并下载编程芯片为定制的简单模型CPU(3)在实验系统上连接输入按键和输出显示为输出的模

4、型计算机系统。1.2设计要求(1)深入理解基本模型计算机的功能和组成知识;(2)深入学习计算机各类典型指令的执行流程;(3)学习微程序控制器的设计过程和相关技术,掌握LPM_ROM配置方法;(4)掌握微程序的设计方法,学会编写二进制微指令代码表;(5)在掌握部件单元电路实验的基础上,进一步将单元电路组成系统,构造一台基本模型计算机。第二章系统组成及工作原理2.1 系统组成该模型机主要由算术逻辑单元ALU,数据暂存寄存器DR0DR1,数据寄存器R0R2,程序计数器PC,地址寄存器AR,程序/数据存储器MEMORAY令寄存器IR,微控制器C,输入单元INPUT和输出单元OUTPUTS组成。如其功能

5、模块框图2-1所示。图中虚线框内部分包括运算器、控制器、程序存储器、数据存储器和微程序存储器等,实测时,它们都可以在单片FPGA中实现。虚线框外部分主要是输入/输出装置,包括键盘、数码管、LCD显示器等,用于向CPU输入数据,或CPU向外输出数据,以及观察CPU内部工作情况及运算结果。计算机组成与机构课程设计SOFiO_EINRUT图2-1L QAOI LDFQ2.2 工作原理本模型能在微过程控制下自动产生各部件单元控制信号,实现特定的功能。模型中,计算机数据通路的控制将由微过程控制器来完成,CPU从内存中取出一条机器指令到指令执行结束的一个指令周期,全部由微指令组成的序列来完成,即一条机器指

6、令对应一个微程序。(1)指令系统指令系统反映了计算机的主要 指令是计算机执行某种操作的 通常性能较好的计算机都设置计算机的性能与它所设置的指令系统有很大的关系。属性,而指令系统的设置又与机器的硬件结构密切相关。命令,而指令系统是一台计算机中所有机器指令的集合。有功能齐全、通用性强、指令丰富的指令系统,而指令功能的实现需要复杂的硬件结构来支持。因此在设计CPU时,首先要明确机器硬件应具有哪些功能,然后根据这些功能来设置相应指令,包括确定所采用的指令格式、所选择的寻址方式和所需要的指令类型。模型机指令系统中包含有五条基本指令,分为算术运算指令、存/取指令和控制转移指令等三种类型。其功能如表5-2所

7、示。五条机器指令分别是:IN(输入)、ADDU进制加法)、STA(存数)、OUT(输出)、JMP(无条件转移)如表2.1所示。表2.1模型机指令系统及其指令编码形式助记符操作码addr地址码功能描述IN00HINPUT”-R0,键盘输入数据ADDaddr10HXXHR0+addr-R0STAaddr20HXXHR0一addrOUTaddr30HXXHBUS一"OUTPUT",显示输出数据JMPaddr40HXXHaddr一PC指令分单字节和双字节,单字节指令只有IN一条,其余都是双字节指令。指令各式如表2.2和表2.3表2.2单字节指令格式76543210操作码源寄存器目的

8、寄存器表2.3双字节指令格式7654321076543210操作码操作数(内存地址码)(2)模型计算机硬件模型机硬件有以下部分组成:运算器:采用8位运算器ALU181,实现算术逻辑运算。该电路的两个操作数输入端设置两个寄存器DRCff口DR1程序计数器PC:用来指示执行指令的地址,以便从内存取得指令。地址寄存器AR存放并输出访问内存单元的地址。指令寄存器IR:锁存取得的指令,供控制电路解码分析执行。止匕外,还提供了3个工作寄存器R0,R1和R2。存放可编程程序和数据的存储器RA池在芯片上实现(像单片机一样)。各个功能模块通过总线连接。控制器采用微程序设计。整个模型机各功能部件的工作及通路连接的

9、微操作代码如表2.4和表2.5所示。采用字宽24位的ROM?放微程序,3个3-8译码器组成24位输出译码电路。表2.424位微代码定义242322212019181716151413121110987654321S3S2S1S0MCnWEA9A8A字段B字段C字段uA5uA4uA3uA2uA1uA0操作控制信号译码器下址字段模型机CPU的微指令共24位,由操作控制字段和下地址字段组成。编码时将微操作控制字段划分为若干个小字段,每个小字段独立译码,每个码点表示一个微命令。其微指令结构如表3.11所示。微指令的功能及表3.12中A、RC各字段功能说明如下:uA5uA0:微程序控制器的微地址输出信号

10、,是下一条要执行的微指令的微地址。操作控制信号译码器译码器译码器下地址字段 S3、S2、Sl、S0:由微程序控制器输出的ALU操作选择信号,以控制执行16种算术操作或16种逻辑操作中的某一种操作。 M:微程序控制输出的ALU操作方式选择信号。M=0执行算术操作;M=l执行逻辑操作。 Cn:微程序控制器输出的进位标志信号,Cg0表示ALU运算时最低位有进位;Cn=1则表小无进位。 WE微程序控制器输出的RAM控制信号。当C口0时,如W20,为存储器读;如W21,为存储器写。 A9、A8:译码后产生CSQCS1CS2信号,分别作为SW_BRAMLED的选通控制信号。 A字段(15、14、13):译

11、码后产生与总线相连接的各单元的输入选通信号。 B字段(12、11、10):译码后产生与总线相连接的各单元的输出选通信号。 C字段(9、8、7):译码后产生分支判断测试信号P(1)P(4)和LDPC信号。表2.5微指令译码字段说明A字段B字段C字段151413选择121110选择987选择000000000001LDRi001RS_B001P(1)010LDR1010RD_B010P(2)011LDR2011RJ_B011P(3)100LDIR100SFTB100P(4)101LOAD101ALU_B101LDAR110LDAR110PCB110LDPC微指令的执行方式执行一条微指令的过程类似于

12、机器指令的执行过程。首先,将微指令从控存CM中取出,称为取微指令。对于垂直型微指令还应包括微操作码的译码时间。然后,执行微指令所规定的各个微操作。根据微指令的执行方式可分为用行执行和并行执行两种。(3)微程序设计这里主要介绍微程序设计方法。图2-2是一个具有五条指令IN、ADDSTAOUT和JMP的微程序流程图。其中方框代表基本的微操作,菱形框为分支判断框。每条指令都是由不同微操作来完成的,微操作的数量各不相同,因此每条指令所需的执行时间也是不同的。以下分别介绍各指令的功能和微操作流程。ADOUT图2-2微程序流程图1. IN指令为了执行输入指令,CPU要做两件事情。首先,由INPUT输入装置

13、的数据开关SWW输入数据送到数据总线上;其次,通过数据总线将输入的数据写入寄存器R0中。BUS-SW;R0-BUS由于输入到数据总线上的数据就是要写入寄存器的数据,因此可以将这两个操作合并成一个操作:RgSW执行完输入指令的整个周期后,程序返回到取指令周期,开始取下一条指令。2. ADD指令加法指令执行的操作是将寄存器R0的内容与存储单元内容相加后,存回寄存器R0:RgR0+(MEM。执行加法运算时,需要分别将R0的内容送DR1将存储单元的内容送DR2在累加器ALU中进行加法运算后,将运算结果写回寄存器R0o而存储单元的地址是存放在紧跟在操作码后的字节中的,因此,首先要以该字节的内容为地址,即

14、将该单元内容送地址寄存器AR;然后,从AR所指向的RAM存储单元取出操作数送给DR2由于在取指令操作码时,PC已经自动加1,指向下一字节,该地址就是存放操作数的存储单元的地址。通过执行以下三个步骤,可以从存储器中取出操作数送到DR2A帚PGPOPC+1;以AR的内容作为取操作数的地址BUS-RAMAR-BUS;AR指向存放操作数的RAM单元BUS-RAMDR2-BUS;RAM中的数据通过BUS送DR2将R0中的数据送DR1DR1一R0在ALU中进行加法运算,运算结果送RGRg(DRD+(DR23. STA指令向存储器RAM写数据操作STA以紧跟在操作码后的字节作为存放操作数地址,将R0中的数据

15、存入该地址单元。首先将紧跟在操作码后的字节的内容送给地址寄存器ARA帚PGPG-PC+1;以PC的内容作为存数据的地址BUS-RAMAR-BUS;AR指向存放操作数的RAM单元然后将R0的内容写入该地址的RAM单元中:BUS-RO,RAM-BUS4. OUT指令输出指令out以紧跟在操作码后的字节作为读出数据的地址,将该单元的内容通过DR1输出到OUT端口。首先将紧跟在操作码后的字节的内容送给地址寄存器ARA帚PGPC-PC+1;以PC的内容作为取数据的地址BUS-RAMAR-BUS;AR指向存放操作数的RAM单元然后将RAM单元的内容读出到DR1,并送往/U出端口OUTBUS-RAMDRBU

16、SOUT-DR15. JMP指令无条件转移指令JMP以紧跟在操作码后的字节的内容作为转移地址。将该字节的内容送给程序计数器PC,实现程序的转移:ARPGPC-PC+1;以PC的内容作为取数据的地址BUS-RAMPC-BUS;将RAM内容送PG实现程序转移将每一条指令的微操作编辑在一起,就得到全部指令的微程序流程图,如图2-2所第三章系统设计在本节中将采用EDA技术在FPGA中硬件实现8位模型CPU工程的顶层文件用直观的原理图来表述,设计过程将通过以下步骤来完成:(1)用图形编辑工具设计模型CPU的顶层电路原理图。(2)根据微程序的微操作,对于所需的控制信号,确定微指令,并确定微地址。(3)微程

17、序流程图按微指令格式转化为二进制微代码表。(4)设计控制存储器LPM_RQM(5)对模型CPU的整机硬件电路进行编译、波形仿真和调试。(6)根据仿真波形,查找故障原因,排除故障,重新编译。(7)将编译通过的电路和应用程序下载到实验台上的FPGA中,在实验台上单步跟踪微程序的执行过程。(8)最终完成模型CPU的硬件电路设计以及应用程序及微程序的设计和调试。顶层设计3.1 CPU顶层设计按照图1-1所示的CPU结构框图,在QuartusII环境下用图形编辑工具,基本功能模块,通过内部总线BUS和控制电路连接后,就得到了所要求的基本模型机的整机电路图,如图5-3所示。其中顶层文件全部用原理图表述,各

18、元件用不同方式表述,包括VHDL文本方式、原理图方式、LPM模块、VQM网表等混合方式。在图5-1(附录)中,算术逻辑单元ALU是ALU181,其运算功能与74LS181类似,但用VHDL语言编写,是一个8位的运算器。ALU的两个8位数据输入端的数据暂存器DR1和DR2则用LPM模块数据锁存器lpm_latch构成,为ALU提供运算数据。程序存储器和数据存储器采用统一编址,即程序存储器和数据存储器共用一个存储器。存储器由FPGA中的EAB或M4K构成,通过调用lpm_ram_dq模块来实现。其数据线为8位,地址线也为8位。存储器的数据输入端直接与内部总线相连,数据输出端通过三态缓冲器与内部总线

19、相连,地址总线来自于地址寄存器AR与存储器相关的部件还有地址寄存器AR和程序计数器PG地址寄存器AR向存储器提供地址信号,AR采用锁存器结构,调用lpm_latch实现。程序计数器PC也调用了LPM可预置计数器。其中复位端RST高电平时将PC清零,低电平时允许计数器工作,CLK为计数时钟。数据预置加载控制端为LOAD当LOAD端为低电平时,计数器正常计数;当LOAD端为高电平时,向计数器加载数据。数据输入端d7.0直接与内部总线连接,数据输出端q7.0通过三态缓冲器与内部总线相连。指令寄存器IR和输出锁存器也都采用lpm_latch模块。微指令译码器decoder_A、decoder_B、de

20、coder_C内部都采用3-8译码器结构。具作用是对24位微指令中的AB、C字段进行指令译码。A字段译码后输出的信号主要用于控制向寄存器或锁存器输入数据;B字段译码后输出的信号主要用于控制运算器、寄存器或锁存器,并通过三态门向内部数据总线输出数据;C字段译码后输出的信号主要用于指令分支判断。时序控制电路STEP用于产生程序运行时所需的时钟节拍。图5-1中有两个2-4译码器decoder2-4。其中一个的输入信号为SWASWB用于操作台工作方式选择控制。在此设定为:当(SWBSWA=00时,可以通过操作控制台键盘,从存储器中读出数据;当(SWBSWA=01时,可以通过操作控制台键盘,向存储器中写

21、入数据;当(SWBSWA=11时,可以通过操作控制台上的STEP键,执行程序。另一个2-4译码器是对24位微指令中的第16位和第17位进行指令译码,产生对输入装置SW存储器RAM输出装置LED的输出允许控制信号。3.2 取指令和指令译码一条指令的运行过程可以分为三个阶段:取指令阶段、分析取数阶段和执行阶段。1 .取指令阶段取指令阶段完成的任务是将现行指令从主存中取出来并送至指令寄存器中。具体的操作如下:(1)将程序计数器(PQ中的内容送至存储器地址寄存器(AFL并送往地址总线(AB)。2 2)PC的内容递增,为取下一条指令做好准备。(3)由控制单元(CU经控制总线(CB向存储器发读命令。(4)

22、从主存中取出的指令通过数据总线(DB送到指令寄存器(IR)中。以上这些操作对任何一条指令来说都是必须要执行的操作,所以称为公共操作。完成取指阶段任务的时间称为取指周期,图3-1给出了在取指周期中CPU各部分的工作流程。2.分析取数阶段取出指令后,指令译码器ID可识别和区分出不同的指令类型。此时计算机进入分析取数阶段,以获取操作数。由于各条指令功能不同,寻址方式也不同,所以分析取数阶段的操作是各不相同的。(5)指令寄存器(IR)中的内容送指令译码器(ID)进行指令译码。(6)指令译码器(ID)的内容送操作控制器。(7)操作控制器产生执行指令的微控制。对于无操作数指令,只要识别出是哪条具体的指令,

23、即可以直接转至执行阶段,所以不需进入分析取数阶段。而对于带操作数指令,为读取操作数首先要计算出操作数的有效地址。如果操作数在通用寄存器内,则不需要再访问主存;如果操作数在主存中,则要到主存中去取数。对于不同的寻址方式,有效地址的计算方法是不同的,有时要多次访问主存才能取出操作数(间接寻址)。另外对于单操作数指令和双操作数指令,由于需要的操作数的个数不同,分析取数阶段的操作也不同。3.执行阶段执行指令阶段完成指令规定的各种操作。执行阶段完成任务的时间称为执行周期。计算机的基本操作过程就是取指令、取操作数、执行指令,然后再取下一条指令如此周而复始,直至遇到停机指令或外来的干预为止。3.3设计微代码

24、表微程序流程图是根据每条指令的微操作流程所绘制的,操作框内给出的是该微操作要执行的动作。当拟定“取指”微指令时,该微指令的判别测试字段为P(1)测试,根据P(1)的测试结果将出现多路分支。由于操作码的位数已确定为4位,所以可直接将操作码与微地址码的部分对应。本模型机用指令寄存器(IR7IR0)的高4位(IR7IR4)与微地址码的后4位对应。模型机的微地址码共有六位,微地址码的高三位已固定为001,低三位从000111共有八种状态,现设计了五条指令,需要五个分支入口,因此,将低三位中的000B100B这五个地址分配给这五条指令,就得到五个分支入口微地址。这五个分支入口(以八进制表示)分别是10、

25、11、12、13和14,占用五个固定的微地址单元。其余的微操作单元的微地址设置,可以将还未使用的微地址按照从小到大的顺序依次分配给这些微操作单元,微地址的分配情况见图5-4。微地址标注在每个微操作框的左上角,右上角标注的是微指令码。指令的设计过程可以归纳如下:(1)画微指令流程图。根据每条指令的功能及操作步骤,画微程序流程图,每条指令对应一个微程序。(2)确定微地址。先确定分支处的微地址,然后确定其他后续操作的微地址。(3)确定微指令。根据微指令流程图中每一个步骤所需操作控制信号和下地址,确定微指令代码。微指令代码的设计方法是,首先设计如表5-6所示的微代码空表,然后逐项确定其中的内容。步骤如

26、下:(1)填写微地址。从00开始,按顺序依次填写表中的第一列微地址。(2)确定下地址uA5uAOo根据微指令流程图中设定的微地址,将每一条微指令的下一条微指令的微地址填入该微指令的uA5uA0栏内。(3)确定操作控制信号。根据表5-4和表5-5中规定的24位微代码的定义,确定每一条微指令的操作控制信号字段和AB、C译码字段,将控制信号的编码填入表中对应栏内。(4)确定微指令码。将已确定的24位微代码转换成十六进制形式,写入表中第二列微指令栏内,并将其标注在微程序流程图每一个微操作框的右上角0这样就得到了如图5-4所示完整的微程序流程图和表3.1所示的微代码表。根据微代码表,将微指令码写成存储器

27、初始化文件(.mif),并将其放在LPM_ROM后,就能在该CPU的指令系统范围内设计各种应用程序。例如,此CPU设定的指令系统共由五条指令组成,那么应用程序可以由这五条指令中的任何几条指令组成。表3.1微代码表微地址微指令S3S2S1S0MCNWEA9A8ABC科A5WA0000181100000000110000001000100000101ED820000000111101101100000100200C0480000000011000000010010000300E0040000000011100000000001000400B00500000000101100000000010105

28、01A20600000001101000100000011006919A011001000110011010000000010700E00D000000001110000000001101100010010000000000010000000000011101ED830000000111101101100000111201ED870000000111101101100001111301ED8E0000000111101101100011101401ED96000000011110110110010110150382010000000110000010000000011600E00F000000

29、0011100000000011111700A0150000000010100000000101012001ED920000000111101101100100102101ED940000000111101101100101002201A010000000011010000000010000230180010000000110000000000000012406201100000110001000000001000125010A010000000100001010000000012600D1810000000011010001100000013.4 建立数据通路图3-2是8位模型机CPU的数据

30、通路框图,主要由运算器ALU控制器、存储器和输入/输出装置组成,它们通过内部的数据总线相互连接起来。图5-5中,ALU为运算器;DR0和DR1为其输入端的两个暂存寄存器;R0是数据寄存器,用来保存数据和运算结果;PC为程序计数器;IR和ID分别为指令寄存器和指令译码器;AR和MEMORY别为存储地址寄存器和存储数据寄存器;INPUT为输178现代计算机组成原理入装置;OUTPU叨输出装置。各基本单元模块的输出端通过三态门控制与内部数据总线相连接;微控制器按照时序发生器的节拍,对指令进行译码后产生同步的控制信号。各部件旁边的C是由微指令译码器输出的控制信号,用于控制数据的输入和输出。微控制命令图

31、3-2模型机CPU的数据通路框图3.5 控制执行单元如图3-3所示,微程序控制器主要由控制存储器ROM微指令寄存器uIR和微指令地址形成部件uAR三部分组成。控制存储器用于存放指令系统所对应的全部微程序,可以用FPG冲的嵌入式RA映构成的只读存储器LPM_ROMJ成,其字长由控制命令的多少、微指令的编码格式及下地址字段的宽度而定。微指令寄存器uIR用来存放从控制存储器读出的一条微指令的信息,由下地址字段和控制字段构成。下地址字段指出将要执行的下一条微指令的地址,控制字段则保存一条微指令中的操作控制命令。微指令地址形成部件又称微指令地址发生器,用来形成将要执行的下一条微指令的地址,简称微地址。一

32、般情况下,下一条微指令的地址由上一条微指令的下地址字段直接决定。但当微程序出现分支时,将由状态条件的反馈信息去形成转移地址。当取指令公共操作完成后,可以用操作码去产生执行阶段的微指令入口地址。横地址微指令 地址 形成 部件控制 存砧器 ROM揖令 寄存器下 址 字 段27微指令寄存器图3-3微程序控制的基本原理图第四章模型机具体设计过程4.1 各个主要基本部件设计在设计模型机的主要的顺序是从底层开始设计逐步向上设计最后实现顶层的电路图的设计。本次课程设计组员严格按照模型机设计顺序,从底层开始设计各电路模块,完成底层模块设计后,再设计顶层结构,最后在实验台上调试模型机。4.2 程序计数器部件(P

33、Q程序计数器采用LPM库中的元件lpm_counter来完成的,计数器的数据宽度为8位。程序计数器(PQ是为能够进行主机系统设计实验,控制程序的自动运行而设计的部件。该程序计数器可以提供8位的程序地址,具有自增1和接收转移地址的功能。其具体设计如下图:cader2 4:counter lmbListriQd7.O4 LOAD CLK-!一 RSTI m 曲/ 序不射器图4-1程序计数器元件图p:ount«f>cbckda呵L.Djq7.OmAfirs1CLK图4-2程序计数器功能部件详细设计图4.3 寄存器在该模型机中用到的寄存器主要有数据缓冲寄存器、地址寄存器、工作寄存器和指

34、令寄存器。数据缓冲寄存器是用来存放CPU主存读取的一个指令字或一个数据字,它是采用锁存器结构来实现的,他们都是可以直接从LPM库中调用的。其具体设计过程如下:REGC 2一他用CLKLD_ROLD_R1LD R2R07 ,0R17.0R2(7.0)I :R07: d : i Ipm bustriO :1MlM1MlM1MlM-TTI pm bustriOI pm bustnO :* / 2.:3日1图4-3工作寄存器的元件图Ipm latchO "J1?- data|7.O q?.Q-J里出;ywwww II u rm WWWWMWWWWWMWWWVWMWMWWWWU ariLI 口

35、m 面chO :一 data7,q7.叮 i- (jfiteir=-'::!-Ipm latchO :K(iHts7 J>q7 0J i- gateI mil 1;图4-4工作寄存器的逻辑结构4.4微指令译码器微地址经过伪指令译码器译码后,在控制存储器的对应单元中取得相应的微指 令。伪指令译码器是利用74181芯片实现其功能的,具具体实现电路如下:图4-5微指令译码器元件图7413B图4-6微指令逻辑结构图4.5存储器存储器用于存储微程序的LPM_ROM初始化存储器编辑窗口LPM_RCffl置文件.mif的,其中rom5.mif的数据是微指令码,如下图:AddrTI*?+31TI

36、巾I第11700pisiicO1ED£20OCO48OOE004OOB(X»01A206919AQ4DOEDOOOSD1EDB7_01ED8E03B201W00FOOAQ1510D1ED92DIED”Q1A01001B00106201101001OODIBtQQOOGO18DOQOOOoooooooooooooooooooooooo000000I000000oooooo20OOOOWgoooc00000。Mora000000000000-000000oooooo2B000000oooooo_o«kx»MD0Mococoo000000DOOOQG30WQQ

37、OC000000000000MOOOOQODOOQ(MOW000000'ooocmoi000000OOOODCOODOOOoooooo000000000000DOOODCDoom图4-7rom5.mif中的数据-p I r,41P c:atalIpm ram dqBi I pm bustriO Q :data7.OWbv/renI a fc""j " i' >|j>" iL :'address 7. 0-j>clock地址寄存器::instSii-j . a a i a a> (:-1 >.ai.ii

38、aic ih1- ' iigiu i),.1!图4-8存储器第五章程序测试和指令调试5.1波形仿真电路的设计与仿真在Quartus H 6.0的环境下完成的,硬件测试平台为杭州康芯电 子有限公司“ SOPC/EDA&成原理实验开发系统”上完成的。其中编写的rom5.mif保存在预实验电路cpu5.bdf工程所在的文件夹中,与实验电 路cpu5.bdf 一同编译后得到下载文件cpu5.sof ,设计波形激励文件进行波形的仿真结 果如图4-1。情CPUK.0DF|留CPU5.BDF向SmuhtionRepml-SimdflliDriWanlorniiSimul-kticnncdeT

39、iningMBsterTmeB前0p$>-|Ranier9.42u$Inteivaf9.42usSfait:。骐End-Ops16us6.B2us7.46usHisB.74us938gID.02ui3D.66uii11.3u工I'一'一.I、Harifi 国QDC04B 1 D1BW 1 OOEOH X OQEQO501A2E¥丽STH3R1I2亚亚SS0SSS 0 - 3b0B-L0僦uiruuumwinmuuuuuuuuuiRnnnnnmruuuuuuuinnnnnniuuuuuuuuuinrmnMM7MIDKE&J咕腺图5-1CPU时序仿真图5.2

40、实验调试(一)手动写入(1)使用控制台KW序口KRD散程序将机器指令程序(”实验程序1”:按地址输入指令代码,如地址00、01、02、03、04分别对应指令码00、10、0A、20、0B),装入模型机CPU的程序RAM(LPM_RAM_DQ,并进行检查。根据图2-2控制台微程序流程图,在微指令的控制下,依次输入机器指令代码:表5-1机器指令试验程序存储器地址内容助记符说明00H00HIN“INPUT'-R0,键盘输入数据01H10HADD0AHR0+0AH-R002H0AH03H20HSTA0BHR0一0BH04H0BH05H30HOUTOBH0BH“OUTPUT,显示输出数据06H0

41、BH09H一PG以08H内容为转移地址07H40HJMP08H08H00H09H00H0AH34HDB34H被加数0BHXXH:求和结果以下将数据35、C4依次装入00、01地址为例:选择实验模式NO.0,输入数据显示于数码2、1上; 将控制开关SWBSWA键4、键3)设置为:0、1;模型机的复位控制信号RST(键8)=1;机器指令代码的数据输入由键2、键1输入,先键入35,再按两次键7,即0->1->0,产生一个写入正脉冲,这时观察右上液晶屏上的输入端口IN=35;PC=00(当前将要输入的地址);MC=018110散指令。再按两次键7(地址寄存器加1),根据图3.54控制台微程

42、序流程图,进入到KWE(01)分支,进入并执行了微地址“21”中的操作,这时控制此操作的微指令码MC=01ED94PC自动力口1,PC=1按键7,再产生一个脉冲,进入并执行了微地址“24”中的操作;观察液品,数据35进入总线BUS=3535进入RAM=35此时微指令码MC=062011此时将机器指令代码数据写入了LPM_RAMh 此后每当出现MC=062011时,即可利用键2,键1输入待写入RAM的数据,止匕时如C4,连续按键7,再产生2个脉冲,即将C4写入RAMPC加1,微指令码变成MC=062011 重复一的步骤,将“实验程序1”的全部机器指令代码输入RAM(2)以下是检查RAM中的内容。

43、当全部机器指令代码输入模型机后,在微指令的控制下,依次检查LPM_RA呻已输入的机器指令代码。步骤如下:按复位键8=1,使模型机中的PC复位;将控制开关SWBSWA(键4、键3)设置为:0、0; 复位信号RST(键8)=0; 按键7,每两个2次单步运行(产生2个正脉冲),可读出LPM_RAMfr以写入的数据;根据图6-1的CPU部件和信息流程,对于读出的每一数据,仔细观察液晶上显示的MCPGARIN、BUSRAMDR0DR1的数据变化。重复以上步骤,依次检查LPM_RA呻已输入的机器指令代码。(二)自动酉己置LPM_RAM如果程序量大,手动输入效率太低,可以在计算机上编译好代码文件,并随同模型

44、CPU设计文件一同编译进SOF下载文件中,直接下载进入FPGA(1)在QuartusII环境下,打开工程文件CPU_5.bdf,修改CPU_5.bdf中LPM_RAM_DQ参数,将初始化文件LPM_FILE设置为:”./ram_1.mif”;打开“ram_1.mif”,根据“实验程序”,在ram_1.mif中输入全部机器指令代码。(2)将工程文件重新编译后,下载到实验台中,即完成LPM_RAMJ配置。(3)根据以上的方法,复位信号RST(键8)=1;将控制开关SWBSWA(键4、键3)设置为:0、0,按键7,每两个2次单步运行(产生2个正脉冲),检验配置进入FPG9的程序代码。(三)执行程序(

45、1)按1次系统复位键8,并置键8为高电平,使CPU允许正常工作;(2)控制开关(键4、键3)设置为SWBSWA=1,1处于程序执行方式,观察图3.54控制台:RP(11)(3)对于In-SystemMemoryContentEditor,将读数据选择在循环读数据功能上。按键8,使其低电平,允许程序运行,键2、1输入运算数据11H,连续按键7,即STEP完成整个程序运行后,可以发现RAMfc置0FHII元处出现数字“44H',再键2、1输入运算数据45H,连续按键7,即STEP完成整个程序运行后,可以发现RAMfc置,11H单元处出现数字“45”,再继续按键7即STEP完成整个程序运行后

46、,可以发现RAMfc置12Hm元处出现数字“89”即44Hf45H差,并已经写到RAW的11H单元中。结果图5-3所示。Project MaYigt口 _iJ idEm戈itrC<rhg> 11 k 4Fl KiInfstancc M-arfcagci坪回昌E5捕i”> f proQicw国/Ind cm | Ins-once ID|写1 WdhII DepRh_1 Typ0 ioitiSUrtlo-adino4HAI-11 «am5Unfolding8Z56HAICPUSX匚hWM.tcd 产| ss* lri!-Sv»tem匚。nturk |JTRG

47、匚liWn 二orMiqur酎ion. pTACi »e«ady-Hacdware:O wvice0】EFICEICIhONOSZOD匚File:2J0 HOITlS:0000340003B ooaoicODO40ivsm- 1 y nnNoao oo Doo ooo o口 o n-oon-oo 口a Doo oo 000 n-ooaoo n-oa 0 Do n-n-o n-oo Do01 n-oo n-QQ ooo aoo ooo00D000 QflODClF OO&OlL 0002ID 00003C 0004B 口口口口巧口 G%ClDOOOOOQft ncl口

48、O口O口fl ooooooon 4-uon-ooon 2000000 1口 uon 口口rl aaoa-on-an 3000000- 2ODOOOOH laaooDQn OO0OOOOA 2aon-ODaffl F:口 u 口 口口吟 ooooooon on。口口 o n1HI 1口 DOUQI口 C looooooft loooaaa aaoQQn-an .2-n 0ODOQ 仙 09000000 &ooooo,n FSOOOOQn D 4OOODQ 00口oooorl 20000000 040 口口 Q 104口口 n 0口吗Instance 1: ramS Word: O>

49、:DODOCO Bit: DxDOCIOCIT图5-3器指令试验程序执行结果注意,实验箱上数码管4、3显示的是下一节拍将要执行的微指令的微地址码;下面以列表5-2说明微程序的执行过程,每按2次键7产生一个STEP单步脉冲,执行一个微操作。微地址uA以八进制表示,微指令MC以十六进制表示。表5-4微指令执行情况STEP下址A微指令MCPCIR说明10001811000OO复位之后,第1条微指令是判断控制台命令SMB,SWA223018101SMB,SWA=11转RP自动执行程序30100800140201ED8201第1个指令周期开始51000C04800取RAW的第1条试验程序指令,指令是IN

50、60100100102接收键盘输入数据,放到工作寄存器R070201ED82第2个指令周期开始80900C04810取RAW的第2条试验程序指令,指令是ADD90301ED8303间接寻址,取地址100400E004地址置入AR110500B005从RAW取数据到DR2120601A206R0数据送DR11301919A01(DRD+(DR2送R0140201ED8204第3个指令周期开始151200C04820取RAW的第3条试验程序指令,指令是STA160701ED8705间接寻址取,取地址171500E00D地址置入AR1801038201R0内容送RAM190201ED8206第4个指

51、令周期开始201300C04830取RAW的第4条试验程序指令,指令是OUT第六章心得体会经过这次课程设计,我体会到自己所学的东西太少了,很多都不知道。虽然这次设计的只是一个小程序,但是这其间我还是学到了不少东西。在这次课程设计的过程,有些很基本的知识出现记混淆的现象,通过查书及询问同学,最终明白了。本次课程设计我们要设计一台微程序控制的模型机,以对计算机能有一个整机的概念,完成对计算机组成原理这门课程的综合应用,达到学习本书的作用。作为一个计算机系学生这是必需掌握的,使我们对数据选择器,移位器,加法器,运算器,存储器和微程序控制器,有了比较透彻的认识。由于计算机设计的部件较多,结构原理较复杂,对于我们这样的初设计者来说感到无从

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论