组成原理实验报告.doc_第1页
组成原理实验报告.doc_第2页
组成原理实验报告.doc_第3页
组成原理实验报告.doc_第4页
组成原理实验报告.doc_第5页
已阅读5页,还剩42页未读 继续免费阅读

下载本文档

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

文档简介

题 目 基于微程序控制器的 简单计算机系统设计与实现 专 业 计算机科学与技术 班 级 学 号 姓 名 电 话 邮 箱 计算机科学与技术学院 2013 计算机组成原理计算机组成原理 课程设计报告课程设计报告 实 验 台 完成日期 指导教师 I I 目 录 1 课程设计概述课程设计概述 3 1 1 课设目的 3 1 2 设计任务 3 1 3 设计要求 4 2 实验原理与环境实验原理与环境 5 2 1 实验原理 5 2 2 实验环境 5 3 总体方案设计总体方案设计 6 3 1 需求分析 6 3 2 硬件设计 6 3 3 软件设计 9 4 详细设计与实现详细设计与实现 11 4 1 选用芯片 11 4 2 硬件实现 12 4 3 软件实现 15 5 实验过程与调试实验过程与调试 20 5 1 仿真 XXX 20 5 2 可自行安排章节 20 5 3 主要故障与调试 20 5 4 功能测试 20 5 5 实验流程图 21 II II 6 设计总结与心得设计总结与心得 22 6 1 课设总结 22 6 2 课设心得 22 参考文献参考文献 23 3 3 1课程设计概述 1 1课设目的 计算机组成原理是计算机专业的核心专业基础课 也是作为计算机相关专业的学 生应掌握的重要学科 课程设计属于设计型实验 不仅锻炼学生简单计算机系统的 设计能力 而且通过进行设计及实现 考验同学的创新思维 进一步提高同学们对 于计算机组成的理解 组成原理课程设计实验还有如下几个目的 1 掌握计算机硬件系统的各个组成部分的工作原理 组成方法及相互关系 2 弄清硬件与软件之间的接口界面 建立起一个完整的计算机系统的层次概念 熟悉一些典型计算机系统硬件结构 3 确定指令集的结构 分析计算机数据通路 采用微指令 或硬布线的方法 并通过时序控制 完成设计并实现一个简单的CPU 微程序 硬布线 二者结合 流 水线控制器 4 锻炼 动手能力 设计 分析 定位和排除故障的能力 1 2设计任务 计算机系统设计的总体目标是设计模型机系统的总体结构 指令系统和时序信 号 利用各单元实验和所学知识 选择适当芯片 设计简单CPU 1 完成数据通路设计并验证数据通路功能 确定CPU 的基本结构是采用总线 方式还是采用专用通路方式 2 完成指定功能的各指令周期流程图 表 和所需要的控制信号 把所有指令的 状态进行综合 并归纳成最终需要的若干个状态 画出指令流程的状态图 根据状 4 4 态图设计状态机 3 完成时序列电路设计 通过画出带控制信号的多周期数据通路图 列出指令 译码表 设计控制译码器 最后将控制译码器信号与多周期数据通路图上的控制信 号对应相连 1 3设计要求 根据理论课程所学的至少 设计出简单计算机系统的总体方案 结合各单元实 验积累和课堂上所学知识 选择适当芯片 设计简单的计算机系统 具体要求如下 画出原理框图和器件连接图 分析器件连接图中个器件不同引脚的功能 控制信 号的有效形式 及哪些可以固定连接 哪些可通过微程序来控制 1 数据位数至少8bit 2 至少支持读数 向内存回存数据 加 减 二条转移指令以及3条逻辑操作指 令 3 至少支持隐含寻址 立即数寻址和直接寻址 4 支持自动和单步方式 并在不改变连接数的情况下通过开光自由切换 5 5 2 实验原理与环境 2 1实验原理 2 1 1 CPU 的基本知识 a CPU 的组成 运算器 算术运算 逻辑运算 控制器 从内存取出一条指令 并指出下条指令的地址 对指令进行译码 产生相应的控制信号 指挥并控制 CPU 内存和 I O 设备之间的数据传送 b CPU 的功能 取出指令并执行指令的部件 CPU 数据加工 ALU 算术 逻辑运算 指令控制 指令执行的顺序控制 操作控制 产生各种操作信号 时间控制 控制操作信号的发生时间 c CPU 中的主要寄存器 PC Program Counter 程序计数器 AR Address Register 地址寄存器 DR Data Register 数据缓冲寄存器 IR Instruction Register 指令寄存器 AC Accumulate Count 累加寄存器 PSW Program Status Word 程序状态字 6 6 d 控制器基本组成 PC Program Counter 程序计数器 IR Instruction Register 指令寄存器 ID Instruction Decoder 指令译码器 OC Operate Controller 操作控制器 TG Timer Generator 时序发生器 e 操作控制器 根据指令操作码和地址码 产生各种控制信号序列 建立正确的数据通路 从而 完成取指令和执行指令的控制 硬布线控制器 时序逻辑型 硬件实现 微程序控制器 存储程序型 软件实现 数据通路 执行部件间传送信息的通路 f 时序产生器 产生各种时序信号 电位 脉冲 对各种操作实施时间上的控制 CPU 基本框图如下 见图 2 1 图 2 1 CPU 组成框图 7 7 2 1 2 指令周期的基本概念 I 时钟周期 T 节拍脉冲 II CPU 周期 机器周期 从内存读出一条指令的最短时间 III 指令周期 从内存取一条指令并执行该指令所用的时间 A 由若干个 CPU 周期组成 B CPU 周期又包含若干时钟周期 节拍脉冲 相关图示如下 见图 2 2 图 2 3 图 2 2 指令周期 1 8 8 图 2 3 指令周期 2 2 1 3 微指令格式与控制 1 微程序控制概念 a 一条指令的处理包含许多微操作序列 b 这些操作可以归结为信息传递 运算 c 将这些操作所需要的控制信号以多条微指令表示 d 执行一条微指令就给出一组微操作控制信号 e 执行一条指令也就是执行一段由多条微指令组成的微程序 f 将指令系统功能实现所需的控制信号以微指令为单位存储 微指令中的每一位 对应一根控制信号线 g 每条指令对应一段微程序 h 微程序由若干条微指令构成 i 机器执行指令时逐条取出微指令执行 使得相应部件执行规定的操作 执行完 9 9 微程序 也就给出了该指令所需要的全部控制信号 从而完成一条指令的执行 微程序控制器组成原理框图如下 见图 2 4 图 2 4 微程序控制器组成原理框图 2 微指令格式 a 操作控制字段 b 操作控制字段直接给出多种微操作的控制信号 c 顺序控制字段 d 用于控制微程序的执行顺序 e 包括判断逻辑字段和直接地址字段 f 直接地址字段存放下一条微指令的地址 g 判断逻辑非零 则按约定好的规则 根据状态修正直接地址字段 从而得到下一 条微指令的地址 微指令基本格式如下图 见图 2 5 10 10 图 2 5 微指令基本格式 3 微指令周期 微指令周期图示如下 见图 2 6 图 2 6 微指令周期 2 2实验环境 JZYL 型计算机组成原理实验仪一台 如图 2 7 各部分的说明如下 拨动开关及 LED 显示部分 单脉冲电路部分 运算器部分 FPGA 部分 11 11 时序电路部分 产生 T1 T5 时序发生器用于控制命名的运行次序 时间及次数 共有九个引脚 包括频率控制 端CLK 启动端START 启停端STOP 置位端SEL和五个时序输出端 如表2 1所示为时序控制端输出端说明表 起 CLKSTARTSELSTOP 止接固定频率 P0K0K1 表2 1 时序控制端输出说明表 SEL 为单脉冲与连续脉冲选择信号 SEL 为 1 时 信号为单脉冲 SEL 为 0 时 信号为连续脉冲 START 为启动控制端 当给 START 一个高电平触发信号时 时序电路将开始 产生时序信号 T0 T4 STOP 为停止控制端 STOP 为高电平时 时序电路将停止产生时序 但不论 STOP 何时为 1 最后一个时序将完整地输出 T0 T4 时钟电路部分 产生一组固定频率的方波 8 位 8 段码显示部分 图 2 7 12 12 3 总体方案设计 3 1需求分析 我们选用传统布线方式 数据要求为八位 故使用一个 6116 芯片 2 个 181 芯 片 微指令有 16 个控制信号 故使用 2 片 2816 芯片 其他芯片详见下表表 3 1 芯片名称芯片名称数目数目功能功能 28162存储器 61161存储器 74LS1812运算器 74LS37358 个 D 锁存器 74LS24458 个三态输出缓冲器 74LS1611四位计数器 74LS15714 个二选一数据选择器 74LS3951四位移位寄存器 74LS0822 输入端四与门 74LS041六反相器 74LS0012 输入端四与非门 3 1 1 总体设计 本次我们采用的方案是微程序控制 且主 控存分开的方案 即采用微程序控 制方式 实现主存储器 MM 和微程序控制存储器 CM 不共用一个存储器的方 式完成方案的设计 整个 CPU 分为存储设备 运算器 和控制器 前三次的实验已 13 13 经让我们对存储设备和运算器有了比较深刻的了解 在这次试验中 我们只要把控 制信号 控存接好 回存电路接好就可以了 为了方便 我们设计控存的地址有 4 位 16 个微指令 每条微指令有 16 位 分别表示不同的控制信号 数据和指令都 是八位 地址四位 存储大小为 16 8bit 控制信号和时序逻辑操纵后 转换为最终 的控制信号 总体结构图如下 总体结构图如图 3 1 所示 图 3 1 总体结构图 G 6116 MM A244 写回 C373 AC A373 DR B373 A181 HB181 L A157 G G S S M 高低 CE WE OE G G OE G C157 B157 395 193 PC D373 IR 2816 2 CM G S S C P 信号输 出 PC 1 G 14 14 3 1 2 运算通路 运算器部分电路采用传统布线方式 用到了两片 181 与两片 373 两片 181 串 联从而可以执行两个 8 位数据的运算 一片 373 作为结果缓存器 一片 373 作 为累加器同时也存储当前运算结果 以作为下一步计算的隐含操作数 相关图 示如下图 3 2 控制信号 控制信号 控制信号 输入 B7 B0 结果接灯显示 DR 373 AC 373 ALU 181 ALU 181 图 3 2 运算器通路框图 3 1 3存储通路 此部分通路中 主要为一片 6116 做主存 其 IO 输出数据通过一片指令寄存器 373 输入由一片 157 选择是由 PC产生地址还是以 IR 的低四位作地址 相关框图见图 3 3 15 15 MM 157 PC IR 图 3 3 存储通路框图 3 1 4 选择通路 通过 157 选择内存的地址输入 寻址方式的选择 A 157 的使能端选择 0 是立即数寻址 因为指令的低四位 位为数据 高四位自动补零 A 157 的使能端选择 1 就是直接寻址 低四位 表示指令所要操作的地址 如图 3 4 A 181 C 373B 373 B 181 A 157 使能控制 地 图 3 4 寻址方式的选择框图 16 16 3 1 5 程序计数器 用一个 161 芯片实现 先将其清零 然后利用其技术功能使其周期性加 1 以用 作程序计数器 PC 3 1 6 寄存器 根据总体的设计 我们用到了以下的寄存器 情况见表 3 1 表 3 1 寄存器信息 寄存器类型寄存器类型选用芯片选用芯片功能功能 指令寄存器指令寄存器 IR74LS373存储指令 结果缓存器结果缓存器 DR74LS373暂存计算结果 PSW74LS373状态寄存器 记录溢出状态 累加器累加器74LS373存放操作数和结果 微程序地址寄存器微程序地址寄存器395存储微程序地址 两片控制信号锁存器两片控制信号锁存器74LS373锁存从 CM 出来的信号 3 1 7 时序控制 时序控制是本次设计的重要部分 也是难点 通过分析微指令的功能流程与控 制信号的变化情况 将控制信号与时序做相应的逻辑送到相应部件的控制端来 达到目的 具体如何与时序做逻辑请参见后面的章节 见 Error Reference source not found 3 1 8 译码电路 指令存在 D 373 中 高四位是操作码 直接连接 C 157 这四位也当做微指令在 控存 2816 中的地址 当取指令时 要有一个取指公操作 使 C 157 输入到 395 中的 为微指令工操作的地址 0000 所以要使 C 157 的 B 端接地 当使能端接高时 就 输出 B 地址 0000 微指令从 2816 中读出后 和时序组合后就转化为最终的微控制信 17 17 号 D 373 C 157 395 28162816 A 244D 244 地 使能 图 3 5 3 2软件设计 3 2 1 机器指令系统设计 指令的格式设计是 8 位指令 高四位为操作码 低四位为地址或者立即数 OP地址或立即数 指令的寻址方式是直接寻址 立即数寻址和隐含寻址 直接寻址和立即数寻址 是有 OP 所决定的 隐含寻址的实现是通过 AC 每次运算器操作的一个数由指令所 决定 另一个数就是 AC 指令有三种 运算操作指令 包含立即数寻址 直接寻址和隐含寻址 载入指 令和回存指令 跳转指令 后两种都是直接寻址 3 2 2 微指令设计 微指令的设计思想 微指令存放于控存 CM 中 每一个地址对应一个 16 位的微 18 18 指令 根据微指令的基本格式 按照微指令周期的模式 在控制信号与时序的控制 使相关芯片执行相应的操作 实现相应的功能 微指令的设计方案 采用直接编码方式编码微指令 将控制信号与时序做适当 的逻辑然后接到相应芯片的控制端 设计的微指令流程 通过分析机器指令的执行流程 进而分析相应微指令的功 能及其在相应周期各个节拍的操作 确定对应的控制信号应如何变化 进而确定该 微指令具体的设计 相关位是 0 还是 1 然后结合时序控制对应芯片的控制端 3 2 3 微程序设计 一条机器指令用两个周期来完成 这两个周期分别是取指周期和执行周期 取值 周期执行的微指令是公操作 执行周期执行的微指令与相应的机器指令对应 微指令集存放在控存中 0000 号单元存放取指微指令 其他单元存放与机器指 令实现功能相对应的微指令 以对应机器指令的 OP 部分为地址存取与读取 所以 对于一条特定的机器指令 微程序的首地址是 0000 号单元 执行完后跳到与该机器 指令对应的某个单元执行相应的微指令 这样这条机器指令就执行完了 然后执行 下一条机器指令的微程序 控制好控存地址的输入以读出正确的微指令是非常重要 的 这里我们用了一片 395 芯片用作 uPC 执行一条机器指令前已清零 当取指周 期完成时已将当前机器指令的 OP 即微程序的下地址读入到 uPC 中 这样下个周期 执行的就是正确的微指令 在执行周期完成前将 uPC 清零 PC 1 以读取内存中的 下一条机器指令 循环执行上面的过程 这样就可以实现顺序执行存于内存中的机 器指令了 更加具体的实现将在下一章进一步阐述 19 19 4 详细设计与实现 指令周期流程图要在此部分出现 微程序流程图 微指令代码表 实验接线图 等均需要在适当的位置和模块中表达出来 本章具体实现细节尽量多用图表方式展 示 但要做到图文并茂 不能全文都是图 4 1选用芯片 4 1 1 74LS181 系统使用了2片181芯片作为ALU 用于8位的运算器 负责执行阶段的各种运算181芯片引 脚图及引脚说明如表 4 1 表 4 1 181 芯片引脚图及引脚说明 4 1 2 6116 系统使用了 1 片 6116 芯片作为主存 存放机器指令和数据 6116 芯片的引脚图及引脚说明 20 20 见表 4 2 表 4 2 6116 芯片的引脚图及引脚说明 引 脚说 明6116 引 脚 图 A0 A10地址输入 I O0 I O7数据输入 输出 CE 选择工作方式 OE WE 控制读写操作 VCC电源正极 GND接地 4 1 3 2816 系统使用了 2 片 2816 芯片作为控存 用于存放微指令 2816 芯片的引脚图与 6116 相同 具体参见表 4 2 4 1 4 74LS373 系统使用了 5 片 373 芯片 1 个作为结果缓存器 DR 用于暂时存储计算结果 1 个作为累 加器 AC 用于存储上一步计算的结果 用以实现连续运算 1 个作为指令寄存器 IR 用于存储 当前的机器指令 另外 2 片用于锁存控制信号 373 芯片引脚图及引脚说明如表 4 3 21 21 表 4 3 373 芯片引脚图及引脚说明 引 脚说 明373 引 脚 图 D0 D7八位输入 Q0 Q7八位输出 OE输出控制 G CP 使能端 VCC电源正极 GND接地 4 1 5 74LS244 系统使用了 5 片 244 芯片 1 个向 MM 写入初始数据 2 片向 CM 写入数据 2 个用于实 现寻址方式的选择 74LS244 芯片引脚图及引脚说明如表 4 4 表 4 4 244 芯片引脚图及引脚说明 引 脚说 明244 引 脚 图 1A1 1A4 Ia0 Ia3 A a 四位输入 2A1 2A4 Ya0 Ya3 A a 四位输出 1Y1 1Y4 Ib0 Ib3 Y b 四位输入 2Y1 2Y4 Yb0 Yb3 Y b 四位输出 1 GOEA A a 控制使能端 2 GOEB Y b 控制使能端 4 1 6 74LS161 系统使用了 1 片 161 芯片用作程序计数器 PC 74LS161 芯片的引脚图及引脚说明见表 4 5 22 22 表 4 5 161 芯片引脚图及引脚说明 引 脚说 明161 引 脚 图 A D D0 D3 输入 QA QD Q0 Q3 输出 CLRMR 选择总清或置数 计数 CLK CP 时钟脉冲 ENP CEP ENT CET 计数时两者同为H LOADPE 选择置数或计数 4 1 7 74LS157 系统使用了 1 片 157 芯片 用于选择主存中的地址输入 74LS157 芯片的引脚图及引脚说明 见表 4 6 表 4 6 157 芯片引脚图及引脚说明 引 脚说 明157 引 脚 图 S BA 选择控制端 1A 4A I0a I0d A输入 1B 4B I1a I1d B输入 1Y 4Y Ya Yd 输出 GE 使能端 4 1 8 74LS395 系统使用了 1 片 395 芯片作为 uPC 为 CM 提供地址输入 74LS395 芯片的引脚图及引脚说 明见表 4 7 23 23 表 4 7 395 芯片的引脚图及引脚说明 引 脚说 明395 引 脚 图 P0 P3 D0 D3 输入 Q0 Q3输出 MR 总清端 S PE 写入功能时为H OE 选择输出或高阻 CP 时钟脉冲下降沿有效 4 1 8 其他简单逻辑门芯片 包括 74LS08 2 输入端四与门 74LS04 六反相器 74LS00 2 输入端四与非门 这几个芯 片比较简单 参照 Error Reference source not found 的描述 三者的引脚图见 74LS08引脚图74LS04引脚图74LS00引脚图 4 2硬件实现 4 2 1 硬件原理图 本次我们采用的方案是微程序控制 且主 控存分开的方案 即采用微程序控 制方式 实现主存储器 MM 和微程序控制存储器 CM 不共用一个存储器的方 24 24 式完成方案的设计 硬件原理如图 4 1 所示 25 25 26 26 图 4 1 硬件原理图 4 2 2 运算通路实现 运算器部分电路采用传统布线按照电路图连接 两个 181 芯片串联扩展为 8 位数据的算术 和逻辑运算 用到了一个数据缓存器 DR 一个累加器 AC 便于连续做多步的运算 还 有一个 195 目的是立即数寻址 高位补零 相关框图如图 4 2 图 4 2 运算通路部分具体实现 27 27 4 2 3存储通路实现 此部分通路中 主要为一片 6116 做主存 其 IO 输出数据通过指令寄存器 IR 同时 IO 输出数据通过一个 373 与运算通路相连 其地址输入端用一片 157 选择输入 的是 PC 的值还是 IR 的低四位 同时 还有两个 244 一个用于程序指令回存 另 一个运作初始化往 6116 中存入数据和指令 相关框图见 Error Reference source not found 图 4 3 存储通路部分实现 4 2 4 选择通路实现 有 3 个选择通路 一个是在访问主存时 由 157 来实现地址输入选择 看是选择 PC 的值 还是 DR 的低四位 也相当于选择读出 MM 的指令还是数据 在取指周期选择读出 MM 的指令 在执行指令周期读出数据 这个单纯地用到了 157 的选择功能 如图 4 4 1 28 28 图 4 4 1 第二个是寻址方式的选择 由低到高第 4 位同时作为寻址方式的判断位 若该位为 1 则采用直接寻址 低四位一起作为操作数的地址 若为 0 则采用立即数寻址的方式 若是 立即数寻址则低三位作为立即数低三位 从低到高第四位取反后即为 1 作为立即数的第四 位 寻址方式选择详细实现见 Error Reference source not found 2 图 4 4 2 第三个是控存地址选择 执行取指公操作时需要把控存地址选为 0000 其他时 候根据指令而定 如图 4 4 3 29 29 图 4 4 3 4 2 5 程序计数器实现 程序计数器 PC 由一个 161 实现 程序默认从 0000 号内存单元开始执行 所以 首先将 161 清零 然后在每执行一条机器指令后使其自加 1 指向下一条机器指令 以此实现技术功能 可参见 161 的说明如图 4 5 图 4 5 4 2 6 寄存器实现 根据需要的功能 我们用到了 5 片 373 与 1 片 395 它们各自的应用于功能详见表 4 1 表 4 1 寄存器信息 寄存器类型寄存器类型选用芯片选用芯片功能功能 指令寄存器指令寄存器 IR74LS373存储指令 30 30 状态寄存器状态寄存器74L373寄存运算溢出指示 结果缓存器结果缓存器 DR74LS373暂存计算结果 累加器累加器74LS373存放操作数和结果 微指令地址寄存器微指令地址寄存器74L395寄存微指令地址寄存器 微程序地址寄存器微程序地址寄存器395存储微程序地址 两片控制信号锁存器两片控制信号锁存器74LS373锁存从 CM 出来的信号 4 2 7 时序控制实现 时序是本实验的重难点之一 我们组在做该实验时选择两个周期 一个取指周 期 另一个是执行周期 每个周期有三个时序 1 PC LOAD 4011 n PCLOADCPCT 是运算器输出的溢出指示寄存在状态寄存器中的值 是指令操作码的 4n C 0 P 最低位 2 PC 1 20 1PCCT 3 6116 的使能控制和回存 244 的使能控制 03 MEMWETC 4 结果缓存器 两片 181 上边的 373 还有状态寄存器的使能控制 41 PSWGDRGCT 5 X 使能控制 6116 上面的 373 50 XGCT 6 AC 使能控制 最左边的 373 61 ACGCT 7 IR 使能控制 70 IRGCT 8 其他的控制位直接连接相应的使能端 在一个周期内有效 31 31 C8立即数选路 157 C9PC 1 或者直接跳转 157 C10微指令地址选择 157 C11STOP C12S3 C13S2 C14S1 C15S0 C16M 4 2 8译码电路实现 我们组在做实验时 选用两块 2816 存储微指令 并同时选用两块 244 方便往 2816 存入数据 指令的操作码 4 为就是微指令在控存中地址 方便译码 译码通路 实现如图 4 6 32 32 图 4 6 4 3软件实现 4 3 1 机器指令系统实现 1 指令的格式与寻址方式设计 8 位定长指令 高四位是指令的操作码 OP 以 OP 字段作为地址访问控存以读取相应的控 制信号 低四位为地址位 地址位由低到高第四位为寻址方式判断位 指令格式见表 4 2 高四位低四位 OP地址或立即数的低四位 表 4 2 机器指令格式 机器指令的详细编码见表 4 6 33 33 表 4 2 机器指令编码 指令指令OP字段4位地址位说明 NOOP取指公操作0000取出指令 STOP停机0001停机 时序停止 ADD0010立即数寻址 立即数立即数或地址所指数加上AC ADD 0011直接寻址 地址地址所指数加上AC SUB0100立即数寻址 立即数立即数或地址所指数加上AC SUB 0101直接寻址 地址地址所指数加上AC AND0110立即数寻址 立即数立即数或地址所指数加上AC AND 0111直接寻址 地址地址所指数加上AC OR1000立即数寻址 立即数立即数或地址所指数加上AC OR 1001直接寻址 地址地址所指数加上AC XOR1010立即数寻址 立即数立即数或地址所指数加上AC XOR 1011直接寻址 地址地址所指数加上AC WRITE回写1100直接寻址 地址AC中的数写入6116的地址 LOAD载入1101直接寻址 地址6116地址中的数载入AC JUMP无条件跳转1110直接寻址 地址跳转到地址 JZ有条件跳转1111直接寻址 地址当算术运算溢出时 跳转到地址 算术加 算术减 逻辑与 逻辑或 逻辑异或 2 指令周期流程图 设计微指令时 先考虑两个周期 然后再考虑相容相斥的控制信号 一条机器指令的指令 周期流程图见图 4 7 34 34 开始 PC AR MM IR RD STORE JUMP STOP 其他指令 取 指 周 期 T0 T2 T3 PC 1 ALU DR 0000 uPC DR MM PC 置数 ALU DR 0000 uPC Stop ALU DR PC 1 0000 uPC DR AC T1 执 行 周 期 ALU 计算 图 4 7 指令流程 35 35 4 3 2 微指令实现 最终的微指令采用直接表示法 因为多余 16 的控制信号 为了把控制信号位控 制在 16 位 有些信号通过其他的信号裸机操作产生 故其 16 位微指令格式如下 直接表示法 C1C2C3C4C5C6C7C8C9 C10 C11 C12C13 C14 C15 C16 C1 控制 PC LOAD 使可以执行跳转指令 C2 控制 PC 1 使 PC 自加 1 C3 控制 MEM I O 控制 6116 读写和 B 244 的使能端 C4 控制 DR1 控制 A 373 和 E 373 PSW R C5 控制 DR2 控制 B 373 C6 控制 AC 控制 C 373 C7 控制 IR 控制 D 373 C8 控制 MUL1 控制 A 157 C9 控制 MUL2 控制 B 157 C10 控制 MUL3 控制 C 157 C11 产生 STOP 信号 C12 控制 181 的 S3 C13 控制 181 的 S2 C14 控制 181 的 S1 C15 控制 181 的 S0 C16 控制 181 的 M 另外 uAR 即 395 的控制端接在第一周期的最后一个时序上 36 36 微指令编码如下 C1C2C3C4C5C6C7C8C9 C10 C11 C12 C13 C14 C15 C16 编码PC LOADPC 16116A373B373C373D373A157B157C157stop S3S2S1S0M 公操作00000010101000000000 STOP00010100000000100000 ADD00100111010101010010 ADD 00110111110011010010 SUB01000111010101001100 SUB 01010111110011001100 AND01100111010101010111 AND 01110111110011010111 OR10000111010101011101 OR 10010111110011011101 XOR10100111010101001101 XOR 10110111110011001101 WRITE 11000100000011000000 LOAD11010111110011000000 JMP11101110000001000000 JZ11111110000001000000 4 3 3 微程序 我们自测所用的微程序如下表 地址指令 二进制表示AC 理论值AC 实验值说明 0000LOAD 10101101 10101110 01001110 0100 1010 数据 LOAD 到 AC 0001ADD 00010010 00011110 01011110 0101AC 加立即数 0001 0010ADD 10100011 10101100 10011100 1001AC 加地址中数据 0011JZ 10101111 10101100 10011100 1001溢出 跳转到 1010 0100SUB 00010100 0001 0011 10000011 1000立即数 0001 减 AC 0101SUB 00010101 00011110 10011110 1001地址 0001 减 AC 0110AND 11110110 11110000 10010000 1001AC 与立即数 1111 37 37 0111AND 00010111 00010000 00010000 0001AC 与地址 0001 1000WRITE 00011100 0001 0000 00010000 0001AC 回存地址 0001 1001STOP0001 00000000 00010000 0001停止 1010JUMP 01001110 01001100 10011100 1001跳转到地址 0100 初始 PC 值为 0000 从第一条 LOAD 指令开始 LOAD 和算术运算 逻辑运算 的结果都写入 AC 中 4 3 4 测试程序 最终测试程序以及说明 38 38 addresscommandmeaning binary representat ion theoretical result experimenta l result 0000LOAD 1110 load地址1110 的数据到AC 1101 11101100 00101100 0010 0001JUMP 0010调转到00101110 01001100 00101100 0010 0010DATA数据1100 0000 0011ADD 0001 AC加上立即数 00000001 0010 00011100 00111100 0011 0100ADD 0010 AC加上地址 0010的数据 0011 00101000 00111000 0011 0101JZ 0111 溢出 跳转到 0111 1111 01111000 00111000 0011 0110SUB 0001 立即数 00000001减去 AC 0100 00011000 00011000 0001 0111SUB 0101 地址0101的数 据减去AC 0101 01010111 01010111 0101 1000AND 1111 AC逻辑与立即 数00001111 0110 11110000 01010000 0101 1001AND 1000 AC与地址1000 的数据 0111 10000000 01010000 0101 1010OR 0000 AC逻辑或立即 数00000000 1000 00000000 01010000 0101 1011OR 1010 AC或地址1010 的数据 1001 10101000 01011000 0101 1100XOR 1010 AC异或立即数 00001010 1010 01011000 11111000 1111 1101XOR 1100 AC异或地址 1100的数据 1011 11000010 10100010 1010 1110WRITE 0010 AC写入地址 0010 1100 00100010 10100010 1010 1111STOP停机0001 00000010 10100010 1010 初始 PC 值为 0000 从第一条 LOAD 指令开始 LOAD 和算术运算 逻辑运算的结 果都写入 AC 中 39 39 5 实验过程与调试 5 1 实验过程 1 熟悉实验要求和芯片功能 2 跟据实验要求 设计总体逻辑框图 3 熟悉试验台 验证逻辑图所需的芯片的完好性及 LED 灯与开关的完好性 4 根据前几次的实验 快速连接好存储器和运算器部分 5 设计指令 根据各个指令的周期图所需要的控制信号 设计微程序 并手工验 证每条指令指令执行情况 如出现故障 重新设计直到在两个周期内完成移交指令 6 根据微程序设计控存电路 然后把微指令写入控存中 7 设计汇编程序并写入 6116 中 单步执行汇编程序的每条指令 验证试验结果 是否与理论结果相同 如若不同 分析微指令 或重新设计 或手工验证每一处的 结果的正确性 排除故障 8 老师检查 在设计的微型计算机上跑老师设计的最终程序 9 拆线 整理试验台 5 2 主要故障与调试 本次试验我们组总共用了 500 多根线 至少 20 个芯片 实验台上几乎所有的开 关和 LED 灯我们都使用了 在这么复杂的情况下 不出现故障是不可能的 不出现 连线错误是不可能的 一步设计好微指令的逻辑关系也是很困难的 所以出现了故障 需要调试 调试方法是先看各个插头是否插紧 然后用一根 完好的导线测试看相关同路的芯片的一条通路的一个线路 看实验结果与理论结构 40 40 是否相同 若出现错误 分析是连线错误还是逻辑设计错误 若连线错误 拆掉相 关的线 再连接测试 若是逻辑设计错误 分析逻辑关系 设计不同的逻辑 拆线 连线直到故障排除 以下是实验中出现的故障 5 2 1 故障 1 试验台 在做实验前我们对试验台的开关和 LED 等进行了测试 发现因 VCC 端接触不 良 LED 等时亮时不良 或者 LED 不是纯红色或者纯蓝色 我们换了个实验台测试 发现是好的 在实验中 随着电路的复杂度提高 一个实验台上布满了密密麻麻的线 找线 头 理线 拆线都是一件非常麻烦且危险的事 不知道哪个线头会因此而被拔出 试验中花在找不经意间拔出的线头就花了不少时间 因为我们组是在手工测试好微 指令后 再把微指令写入控存中 所以为了方便 我们把控存电路连在另一实验台 上 显然 VCC 和接地端要连在一起 5 2 2 故障 2 芯片 实验前我们把总体设计中所需要的 芯片都测试了一遍 换掉出现问题的 但是 在最后的连接中 仍然发现了芯片出现故障 检查了好久才检查出是芯片的问题 好在换了一个芯片故障就解决了 我们在实验中总共有一个 373 和一个 2816 坏掉了 换掉 373 后故障解决 但是 2816 换了 n 块芯片仍然没有解决 最后 我们在另一实 验台上连接 2816 控存电路的一部分 可见故障一 所有使用的芯片有的有高低位 有的没有高低位 181 6116 2816 有高低位之分 其他的芯片就没有 实现中出现了 高低位连错的地方 特别是 6116 出来经过 373 连入 181 我们组在这里出现了故障 5 2 3 故障 3 时序错误 在前面提到过时序设计是本实验中的一个重难点 所以出现时序错误是难免的 本实验用两个周期来操作一条指令 每个周期有四个脉冲 在第一周期即取指周期 41 41 内完成取指令 在第二个周期内完成运算和 PC 1 我们组在实验中 把 181 出来的 DR 的使能控制和 AC 的使能控制放在第二个周期的同一个时序内 发现结果严重不

温馨提示

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

评论

0/150

提交评论