您好,欢迎来到华佗小知识。
搜索
您的当前位置:首页计算机硬件课程设计--简单模型机设计

计算机硬件课程设计--简单模型机设计

来源:华佗小知识


计算机硬件综合课程设计报告

简单模型机设计

一、设计要求

硬件:TDN-CM+计算机组成原理实验系统一台,PC机一台,排线若干,串口线一根。 软件:CMP软件

二、设计目的

1. 通过对一个简单计算机的设计,对计算机的基本组成、部件的设计、部件间的连接、 微

程序控制器的设计、微指令和微程序的编制与调试等过程有更深的了解,加深对理论课程的理解。

2. 通过这次课程设计,建立整机的概念,对程序进行编辑,校验,锻炼理论联系实际的能

力。

3. 通过本次课程设计熟悉和训练设计思路与实现方法。

4. 通过本次课程设计锻炼团队合作的能力和团队问题的解决。

三、设计电路及连线

设计电路及连线实验图如下图1-1所示。

图 1-1 简单模型机连线图

四、设计说明

本次课程设计将能在微程序控制下自动产生各部件单元控制信号,实现特定指令的功能。这里,计算机数据通路的控制将由微程序控制器来完成,CPU从内存中取出一条机器指令到指令执行结束的一个指令周期全部由微指令组成的序列来完成,即一条机器指令对应一个微程序。

本次课程设计采用五条机器指令:IN(输入)、ADD(二进制加法)、STA(存数)、OUT(输出)、JMP(无条件转移),其指令格式如下(前4位为操作码):

助记符 机器指令码 说 明 微程序入口地址 IN 0000 0000 “INPUT DEVICE”中 10 的开关状态→R0 addr 0001 0000 ×××× ×××× R0+[addr]→R0 11 ADD

addr 0010 0000 ×××× ×××× R0→[addr] 12 STA

addr 0011 0000 ×××× ×××× [addr]→BUS 13 OUT

addr 0100 0000 ×××× ×××× addr→PC 14 JM P

其中,IN为单字长(8位),其余为双字长,×××× ××××为addr对应的二进制地址码。 设计数据通路框图如图1-2所示。微代码定义如表1-1所示。

BUSALU-B地址总线S3S2S1S0AR(74273)ALU(74181)MLDARCNPC-BW/RLOADPC(74161)LDPCT4数据总线W/R时序微控器T3CECEOUTPUTCELED-BW/RMEM(6116)LDDR1T4DR1(74273)LDDR2T4DR2(74273)R2-BR2(74374)R0-BR0(74374)R1-BR1(74374)LDR2LDR1LDR0T4T4T4SW-BCS0CS1CS2CEINPUTIR(74273)LDIRT3CPU图 1-2 数据通路图

表1-1

24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 S3 S2 S1 S0 M Cn 15 0 0 0 0 1 1 1 WE

6 5 4 3 2 1 A9 A8 A B C uA5 uA4 uA3 uA2 uA1 uA0 A字段 B字段

13 0 1 0 1 0 1 0 选择 LDDRi LDDR1 LDDR2 LDIR LOAD LDAR 12 0 0 0 0 1 1 1 11 0 0 1 1 0 0 1 10 0 1 0 1 0 1 0

选择 RS-B

9 0 0 0 0 1 1 1

C字段

8 0 0 1 1 0 0 1 7 0 1 0 1 0 1 0 选择 P(1) P(4)

LDPC 14 0 0 1 1 0 0 1 ALU-B PC-B 五、设计步骤

1. 设计微程序流程图,如图1-3所示。

运行微程序

01 PC→AR PC+1 02 RAM→BUS BUS→IR 10 P(1) IN ADD STA OUT JMP 10 11 12 13 14 PC→AR PC→AR PC→AR SW→RPC→AR PC+1 PC+1 PC+1 PC+1 03 07 16 RAM → BUS RAM → BUS 26 RAM→BUS RAM→BUS 01 BUS→AR BUS→AR BUS→AR BUS→PC 04 15 RAM → BUS 17 BUS DR2 R0 → BUS RAM → BUS 01 →BUS→RAM 05 BUS→DR1 R0 → D R1 25 06 01 DR1→LED (DR1)+(DR2) →06 R0 01 01 控制台 00 八进制微地址

20

P( 4 ) (SWB ,SWA) KWE(01) RP(11) KRD(00) 21 20 23 PC→AR PC→AR

PC+1 24 22 PC+1 CSWD → BUS RAM → BUS 01 BUS DR1 BUS → DR1 → 30 27 DR1→RAM DR1→LED

图 1-3 微程序流程图 2. 微指令代码化,如下表1-2所示。

表1-2

微地址 S3 S2 S1 S0 M 0 0 0 1 0 2 0 3 0 4 0 5 0 6 0 7 1 0 1 1 1 2 1 3 1 4 1 5 1 6 1 7 2 0 2 1 2 2 2 3 2 4 2 5 2 6 2 7 3 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 Cn 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 1 1 WE A9 A8 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 1 1 1 1 0 0 0 1 1 0 0 1 1 1 1 0 0 0 1 1 0 1 0 1 0 1 0 1 1 1 1 1 1 1 1 0 1 1 1 1 1 1 1 1 1 1 1 0 0 1 0 1 A 000 110 100 110 011 010 001 110 001 110 110 110 110 000 110 010 110 110 010 000 010 000 101 000 000 B 000 110 000 000 000 001 101 000 000 110 110 110 110 001 000 000 110 110 000 000 000 101 000 101 101 C 100 110 001 000 000 000 000 000 000 110 110 110 110 000 000 000 110 110 000 000 000 000 110 000 000 uA5…uA0 010000 000010 001000 000100 000101 000110 000001 001101 000001 000011 000111 001110 010110 000001 001111 010101 010010 010100 010111 000001 011000 000001 000001 010000 010001 3. 设计验证程序的内存映像(装入起始地址00H)如下表1-3所示。 表1-3 地址(二进制) 0000 0000 0000 0001 0000 0010 0000 0011 0000 0100 0000 0101 0000 0110 0000 0111 0000 1000 0000 1001 0000 1010 0000 1011 4. 建立联机操作文件。 内容(二进制) 0000 0000 0001 0000 0000 1010 0010 0000 0000 1011 0011 0000 0000 1011 0100 0000 0000 0000 0000 0001 助记符 IN ADD [0AH] STA [0BH] OUT [0BH] JMP [08H] 说 明 将输入数据送R0寄存器 R0+[0AH]→R0 R0→[0BH] [0BH]→LED 00H→PC 输入自定的数据 求和结果的存储单元 为了从PC机下载工作程序和微程序,需要建立联机操作文件,该文件是普通的文本文件,扩展名为TXT,可用记事本来建立。

源程序如下: $P0000 $P0110 $P020A $P0320 $P040B $P0530 $P060B $P0740 $P0800 $P0A01

$M00018110 $M0101ED82 $M0200C048 $M0300E004 $M0400B005 $M0501A206 $M06959A01 $M0700E00D $M08001001 $M0901ED83 $M0A01ED87 $M0B01ED8E $M0C01ED96 $M0D028201 $M0E00E00F $M0F00A015 $M1001ED92 $M1101ED94 $M1200A017 $M13018001 $M14002018 $M15070A01 $M1600D181 $M17070A10 $M18068A11

5. 调试、执行程序。

首先打开CMP软件,测试端口是否连接成功,然后装入联机操作文件,接着测试程序,测试值R0=FEH,置数据开关状态11111110,根据提示拨动总清开关CLR(0→1)适时清零。在调试过程中,出现了一些问题,例如,出现提示窗口,提示源程序第几行错误,经检查原来是数字0写成了字母O;观察数据流通图,有支路不通,就检查该支路的连线,排查错误。

六、设计结果和体会

1、设计结果

当R0=FEH时,求和结果为FFH,即[0BH]单元中存储值为FFH,LED显示FF。 2、设计体会

此次课程设计,让我对计算机的基本组成、简单运算器的数据传送通路组成、存储器RAM工作特性及数据的读写方法、时序信号发生电路的组成原理、微程序控制器的设计思路和组成原理、微程序的编制、写入过程有了进一步的了解,也让我觉得自己的动手能力有 很大的提高;自信心也增强了,在课程设计过程中通过仔细查阅资料解决了遇到的问题,做到了理论与实践相结合,巩固和深化了自己的知识结构,收获颇多。

七、建议

课程设计可以体现出团队合作程度,紧密合作加上明确分工,,能够大大地提高设计速度,在动手设计之前,最好将设计所需要的数据,程序准备好,为了判断设计结果是否正确,有必要在准备阶段计算理论值。仔细分析指令的每一位,以及微程序流程图,理清思路,在设计时做到胸有成竹。

复杂模型机设计

一、设计要求

硬件:TDN-CM+计算机组成原理实验系统一台,PC机一台,排线若干,串口线一根。 软件:CMP软件

二、设计目的

1. 通过对一个简单计算机的设计,对计算机的基本组成、部件的设计、部件间的连接、 微

程序控制器的设计、微指令和微程序的编制与调试等过程有更深的了解,加深对理论课程的理解。

2. 通过这次课程设计,建立整机的概念,对程序进行编辑,校验,锻炼理论联系实际的能

力。

3. 通过本次课程设计熟悉和训练设计思路与实现方法。

4. 通过本次课程设计锻炼团队合作的能力和团队问题的解决。

三、设计电路及连线

设计电路及连线实验图如下图2-1所示。

图 2-1 复杂模型机连线图

四、设计说明

在简单模型机的基础上搭接移位控制电路,实现移位控制运算。 新增4条移位运算指令:RL(左环移)、RLC(带进位左环移)、RR(右环移)、RRC(带进位右环移),其指令格式如下:

助记符 操作码 RR 0101 0000 RRC 0110 0000 RL 0111 0000 RLC 1000 0000 指令格式如表2-1所示。

表2-1 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 S3 S2 S1 S0 M Cn WE 6 5 4 3 2 1 A9 A8 A B C uA5 uA4 uA3 uA2 uA1 uA0 15 0 0 0 0 1 1 1 A字段 B字段

13 0 1 0 1 0 1 0 选择 LDDRi LDDR1 LDDR2 LDIR LOAD LDAR 12 0 0 0 0 1 1 1 11 0 0 1 1 0 0 1 10 0 1 0 1 0 1 0

选择 RS-B

9 0 0 0 0 1 1 1 C字段

8 0 0 1 1 0 0 1 7 0 1 0 1 0 1 0 选择 P(1) P(4)

LDPC 14 0 0 1 1 0 0 1 299-B ALU-B PC-B 数据通路图如图2-2所示。

BUS地址总线299-B ALU-B74299 S3S2S1T4 S0ALU(74181)MCNAR(74273)LDART3PC-BW/RLOADPC(74161)LDPCT4数据总线W/R时序微控器CECEOUTPUTCELED-BW/RMEM(6116)LDDR1T4DR1(74273)LDDR2T4DR2(74273)R2-BR2(74374)R0-BR0(74374)R1-BR1(74374)LDR2LDR1LDR0T4T4T4SW-BCS0CS1CS2CEINPUTIR(74273)LDIRT3CPU图 2-2 数据通路图

五、设计步骤

1. 设计微程序流程图,如图2-3所示。

运行微程序 01 PC→AR PC+1 02 RAM→BUS BUS→IR 20 P(1) IN ADD STA OUT JMP RR RRC RL RLC 20 21 22 23 24 25 26 27 30 PC→AR PC→AR R0→299 R0→299 R0→299 PC→AR PC→AR SW→R0 PC+1 PC+1 PC+1 35 37 41 R0→299 PC+1 03 07 34 带进位 43 左环移 右环移 右环移 RAM→BUS RAM → 31 带进位 BUS RAM→BUS →01 BUS → AR BUS AR RAM BUS BUS → PC 36 40 42 左环移 → 04 17 BUS → AR 299 299 → R0 44 →R0 299→R0 RAM → BUS 32 01 299→R0 R0→BUS BUS → RAM → BUS 01 01 DR2 05 BUS → RAM BUS → DR1 01 R0 → D R1 33 01 06 01 DR1→LED (DR1)+(DR2)→R0 01 01 控制台 00 八进制微地址 20 P( 4 ) (SWB ,SWA) KWE(01) RP(11) KRD(00) 11 10 13 PC→AR PC→AR PC+1 14 12 PC+1 CSWD → BUS RAM → BUS 01 BUS DR1 BUS → DR1 → 15 16 DR1→RAM DR1→LED 图 2-3 微程序流程图

2. 微指令代码化(十六进制表示),写入操作文件后面。

3. 设计验证程序的内存映像(装入起始地址00H)如下表2-2所示。

表 2-2

地址(二进制) 0000 0000 0000 0001 0000 0010 0000 0011 0000 0100 0000 0101 0000 0110 0000 0111 0000 1000 0000 1001 0000 1010 0000 1011 0000 1100 0000 1101 0000 1110 内容(二进制) 0000 0000 0001 0000 0000 1101 1000 0000 0000 0000 0110 0000 0111 0000 0010 0000 0000 1110 0011 0000 0000 1110 0100 0000 0000 0000 0000 0001

4. 建立联机操作文件。

为了从PC机下载工作程序和微程序,需要建立联机操作文件,该文件是普通的文本文件,扩展名为TXT,可用记事本来建立。

源程序如下: $P0000 $P0110 $P020D $P0380 $P0400 $P0560 $P0670 $P0720 $P080E $P0930 $P0A0E $P0B40 $POC00 $P0D01

助记符 IN ADD [0DH] RLC IN RRC RL STA [0EH] OUT [0EH] JMP 00H 说 明 将输入数据送R0寄存器 R0+[0DH]R0 将R0寄存器中的数据带进位循环左移一位 “INPUT DEVICE”→R0 将R0寄存器中的数据带进位循环右移一位 将R0寄存器中的数据 循环左移一位 R0→[0EH] [0EH]→LED 00H→PC 输入自定的数据 求和结果的存储单元 $M00018108 $M0101ED82 $M0200C050 $M0300E004 $M0400B005 $M0501A206 $M06959A01 $M0700E00F $M0801ED8A $M0901ED8C $M0A00A00E $M0B018001 $M0C00200D $M0D068A09 $M0E070A08 $M0F028201 $M10001001 $M1101ED83 $M1201ED87 $M1301ED99 $M1401ED9C $M1531821D $M1631821F $M17318221 $M18313223 $M1900E01A $M1A00A01B $M1B070A01 $M1C00D181 $M1D21881E $M1E019801 $M1F298820 $M20019801 $M21118822 $M22019801 $M23198824 $M24019801

5. 调试、执行程序。

首先打开CMP软件,测试端口是否连接成功,然后装入联机操作文件,接着测试程序,定义0DH单元中内容为01H,测两个数据R0=FEH 和R0=FFH,根据提示拨动总清开关CLR(0→1)适时清零。在调试过程中,出现了一些问题,例如,由于粗心,插线不仔细,尤其是地址连线和数据连线高地位颠倒,使得数据输入颠倒,此接线错误导致结果错误,经过排查,问题得以解决。

六、设计结果和体会

1、设计结果

当R0=FEH时,LED显示结果FF; 当R0=FFH时,LED显示结果FE; 2、设计体会

通过本次的课程设计我进一步熟悉了计算机组成原理的基本知识,同时也加深了解了模型机设计的基本过程,掌握了一些基本的软硬件设计知识并对其进行了基本的运用,在模型机的设计中运用了很多知识,譬如计算机的基本组成、简单运算器的数据传送通路组成、存储器RAM工作特性及数据的读写方法、时序信号发生电路的组成原理、微程序控制器的设计思路和组成原理、微程序的编制、写入过程等,也学习了许多设计技巧。

两周的课程设计,提高了我的实际操作能力,从以前所学理论上升到实践,真正做到了学有所用,设计中关键是要理解微指令格式,对其每一位的正确判断决定着结果的正确与否,通过此次设计,对微指令理解的更加透彻,自己受益匪浅。

七、建议

课程设计可以体现出团队合作程度,紧密合作加上明确分工,,能够大大地提高设计速度,在动手设计之前,最好将设计所需要的数据,程序准备好,为了判断设计结果是否正确,有必要在准备阶段计算理论值。仔细分析指令的每一位,以及微程序流程图,理清思路,在设计时做到胸有成竹。

因篇幅问题不能全部显示,请点此查看更多更全内容

Copyright © 2019- huatuo0.cn 版权所有 湘ICP备2023017654号-2

违法及侵权请联系:TEL:199 18 7713 E-MAIL:2724546146@qq.com

本站由北京市万商天勤律师事务所王兴未律师提供法律服务