




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、题 目:基于微程序控制器的 简单计算机系统设计与实现 专 业: 计算机科学与技术 班 级: 学 号: 姓 名: 电 话: 邮 件: 计算机科学与技术学院计算机科学与技术学院 计算机组成原理计算机组成原理 课程设计报告课程设计报告 实 验 台: 完成日期: 2012-03-04 周日下午 指导教师: 课程设计课程设计任务书任务书 一、设计题目 基于微程序控制器的简单计算机系统设计与实现基于微程序控制器的简单计算机系统设计与实现 二、设计内容 设计模型机系统的总体结构、指令系统和时序信号。在对该模型机系统中的部件功能利用 eda 软件的仿真功能进行仿真分析和功能验证的基础上,将部分电路下载到 fp
2、ga,并与适当的外 围器件相配合,实现模型机的整机系统。要求所设计的整机系统能支持自动和单步运行方式,能 正确地执行存放在主存中的程序的功能,对主要的数据流和控制流通过 led 适时显示信息。 三、设计要求 1)支持算术运算、逻辑运算、存储器读写、寄存器间数据传送等几类指令; 2)支持立即数寻址、直接寻址、隐含寻址、寄存器寻址等几种基本数据寻址方式和顺序寻 址、跳跃寻址方式; 3)支持 10 条以上的指令; 4)能运行由自己设计的指令系统构成的一段程序,程序执行功能正确。 四、设计流程 1)根据课程设计指导书的要求,制定出设计方案; 2)画出模型计算机系统的原理框图和器件连接图,分析器件连接图
3、中各器件不同引脚的功 能,哪些可以固定连接,哪些需要通过微程序来控制,以及这些控制信号的有效形式; 3)画出各指令的指令周期流程图和所需要的控制信号; 4)设计出实现指令功能的微程序控制器或硬布线控制器; 5)布线、调试、验收; 6)课程设计报告和总结。 五、成绩评定 成绩评定根据考勤、课程设计的过程、课程设计的效果、课程设计报告质量等 进行综合评定;其中设计过程和结果占 70%,课程设计报告占 30%;课程设计的成绩 评定等级为不及格、及格、中、良好、优秀五级;对基本功能进行扩展或设计具有 非常鲜明的特征和一定程度的创新,可根据实际情况加分。 六、设计报告要求 课程设计报告主要内容包括:设计
4、题目、设计目的、设备器材、设计原理及内容、设计步骤、 遇到的问题及解决方法、设计总结、参考文献等。要求在适当位置配合相应的实验原理图、数 据通路图、微程序流程图、实验接线图、微指令代码表等图表进行说明。总结部分主要写设计 工作简介以及设计体会。应做到文理通顺,内容正确完整,书写工整,装订整齐。课程设计报 告采用计算机组成原理专用设计报告模板,a4 纸双面打印,除框图外需附下载的设计图以 及微指令控制点图。 七、时间安排 课程设计的总体时间为 2 周,具体安排如下: 1)第 1 天:到实验室布置任务和集中讲解。 2)第 2 天:学生自己设计,选择并熟悉自己所要的芯片。 3)第 3 天:领导线和芯
5、片,进行芯片功能测试,在此基础上修改完善原设计方案。 4)第 4 天到第 10 天:实验室调试、验收。 八、主要参考文献 1 秦磊华,王小兰. 计算机组成原理实验指导及课程设计指导书(基于 eda 平台). 武汉: 华中科技大学出版社,2010 年. 2 秦磊华,吴非,莫正坤.计算机组成原理. 北京:清华大学出版社,2011 年. 3 david a.patterson(美).计算机组成与设计硬件/软件接口(原书第 3 版).北京:机械工 业出版社. 2007 年. 4 袁春风编著. 计算机组成与系统结构. 北京:清华大学出版社,2011 年. 目 录 1 课程设计概述课程设计概述 .7 1.
6、1 课设目的 .7 1.2 设计任务 .7 1.3 设计要求 .8 2 实验原理与环境实验原理与环境.9 2.1 实验原理 .9 2.2 实验环境 .9 3 总体方案设计总体方案设计.10 3.1 需求分析 .10 3.2 硬件设计 .10 3.3 软件设计 .16 4 详细设计与实现详细设计与实现.18 4.1 选用芯片 .18 4.2 硬件实现 .24 4.3 软件实现 .30 5 实验过程与调试实验过程与调试.48 5.1 仿真 xxx.48 5.2 主要故障与调试 .49 5.3 功能测试 .51 5.4 实验流程图 .53 6 设计总结与心得设计总结与心得.55 6.1 课设总结 .
7、55 6.2 课设心得 .57 参考文献参考文献.59 附录附录 (实验电路大图及部分重要的图)附在纸质档后面(实验电路大图及部分重要的图)附在纸质档后面 1 1、课程设计概述、课程设计概述 1.11.1 课设目的课设目的 计算机组成原理是计算机专业的核心专业基础课,也是作为计算机专业的学生应该要好好掌 握的重要学科。课程设计属于设计型实验,不仅锻炼学生简单计算机系统的设计能力,考验同学 的创新思维,而且通过进行设计及实现,进一步提高分析和解决问题的能力。再者,组成原理课 设也是对学生们一个学期的学习成果的检验和巩固,也是同学们提高分析、定位、排错能力的一 次机会。 1.21.2 设计任务设计
8、任务 计算机系统设计的总体目标是设计模型机系统的总体结构、指令系统和时序信号。在对该模 型机系统中的部件功能利用 eda 软件的仿真功能进行仿真分析和功能验证的基础上,将部分电路 下载到 fpga,并与适当的外围器件(包括部分芯片、输入/输出开关、led 显示等)相配合,实现 模型机的主机系统。 要求所设计的主机系统能支持自动和单步运行方式,能正确地执行存放在主存中程序的功能, 对主要的数据流和控制流通过 led 适时显示信息。 具体如下:具体如下: 设计微程序控制器或硬布线控制器或基于微程序和硬布线相结合方式的 cpu 控制 器; 利用所设计的 cpu 组成一台功能完整的模型机并基于实验平台
9、实现.要求部分功 能利用 fpga 实现,部分功能用芯片连接实现; 所设计的模型机支持加法减运算等基本的算术运算指令、支持逻辑运算类指令、 支持存储器读写指令、支持寄存器间数据传送等几类指令、支持定点数的溢出判 断; 支持立即数寻址、直接寻址、隐含寻址、间接寻址(寄存器寻址)等几种基本的寻 址方式; 能支持 10 条以上的指令; 能运行由自己设计的 cpu 所支持的指令系统构成的一段程序,程序执行功能正确; 根据课程设计指导书和本次课程设计的具体要求,制定出设计方案。确定 cpu 的基本结构是采用总线方式还是采用专用通路方式; 画出自己所设计计算机系统的原理框图和器件连接图,分析器件连接图中各
10、器件 不同引脚的功能,哪些可以固定连接,哪些需要通过微程序来控制,以及这些控 制信号的有效形式; 画出各指令的指令周期流程图和所需要的控制信号; 布线、调试、验收; 鼓励完成上述基本功能的基础上进行适当扩展,比如支持流水线、支持其他寻址 方式等。 1.31.3 设计要求设计要求 根据理论课程所学的至少,设计出简单计算机系统的总体方案,结合 各单元实验积累和课堂上所学知识,选择适当芯片,设计简单的计算机 系统,具体要求如下: 利用各单元实验和课堂上所学知识,选择适当的芯片,设计简单的计算机系 统; 在完成数据通路设计并验证数据通路功能的基础上增加指令和微指令控制的 功能; 以手动方式产生各指令执
11、行过程中所需要的微命令,控制指令的执行; 以自己所设计的计算机系统为硬件环境,设计出完成指定功能的各指令周期 流程图,并设计出相应的微命令; 设计时序列电路,产生满足指令周期和指令执行所需要的多级时序信号; 设计控存,将各指令的微程序存放在 cm 中,经过适当的时序控制,通过微程序 自动控制指令的执行(当采用微程序控制器时)。 2 2、实验原理与环境实验原理与环境 2.1 实验原理 计算机组成原理,数字逻辑, fpga(field programmable gate array)现场可编程门阵列 、quartus 仿真等 2.2 实验环境 jzylii 型计算机组成原理试验台,windows
12、xp 系统,512m 内存电脑电脑一台,quartus ii 6.0 版软件,导线若干。 3、总体方案设计 3.1 需求分析 在这次计算机系统设计中,我们需要根据计算机的各个部件先画出总的框图,然后在框图的 基础上选择适当的芯片实现各自的功能,主要先实现运算器部分,保证运算的正确性,然后设计 存储部分,选择主存和控存是合并还是分开,然后设计对应的微指令,用手动操作检验后,进行 设计时序电路,转成自动执行。 3.2 硬件设计 3.2.1 总体设计 本次我们采用的方案是微程序控制,且主、控存分开的方案,即采用微程序控 制方式,实现主存储器(mm)和微程序控制存储器(cm)不共用一个存储器的方 式完
13、成方案的设计。同时在实施的过程中,采用部分电路用 fpga 方式下载、部分 电路用硬件搭建的方式完成,其中运算器和存储器部分由硬件搭线完成,主存使用 6116 芯片实现,控存与主存分开,使用 2816 芯片实现,然后时序控制部分选择用 fpga 方式下载,最后汇总在一起,形成实现所有功能的整体计算机系统。 总体结构图如 图 3.1 所示。 dr2(373) 181 181 ac(373)dr1(373) down244 up244 mm(6116) pc(161 ) 244 cm(2816 ) cm(2816 ) pc(395) ir(373) 157 输 出 控 制 信 号 图 0.1 总体
14、结构图 3.2.2 运算通路 由 181 作运算,373 锁存组合成的电路,其中包括了 ac,dr1,dr2 等设计 如图 3.2 所示几点说明(包括选择芯片的理由及引脚连接情况): dr2(373) 181 181 ac(373)dr1(373) down244 up244 mm(6116) 244 157 图 0.2 运算器图 图 0.3 存储器图 3.2.4 选择电路 如图 3.4 所示 为方便置数,直接让指令的数据部分与 161 的输入相连 图 0.4 选择通路图 3.2.5 时序控制:通过各种控制点设计而出 如图 3.5 所示 pc(161 ) 157 图 0.5 时序控制图 3.3
15、 软件设计 3.3.1 机器指令系统设计机器指令系统设计 本次指令设计格式遵循常见指令格式设计原则,机器指令共占 8 位,其中高四位 为操作码 op,低四位为操作数地址 addr,见下表描述: 74 位30 位 opaddr 指令寻址方式设计 顺序寻址:根据 pc(74ls161)计数器自动增 1,顺序读取下一条指令; 跳跃寻址:根据 pc(74ls161)的 pc-set 功能,依照跳跃指令内容往计 数器 中预置打入数据,从而跳转到相应地址。 操作数寻址方式设计 寄存器寻址:利用 ac(74ls373)寄存器进行寻址; 直接寻址:根据指令中的 addr 所指向的地址得到主存相应数据; 隐含寻
16、址:利用 ac(74ls373)寄存器,对于需要双操作数的机器指令只提供一 个操作数,另一操作数隐含在 ac 中。 3.3.23.3.2 微指令设计微指令设计 微指令设计思想:此次设计共决定选取 12 条指令,分别是取址公操作、store 存 储指令、load 导入指令、jump 跳转指令、加、减、与、或、非、地址非、异或等运 算指令,以及最后的停机指令。指令采用双周期、自动执行。 微指令设计方案:根据具体的电路原理决定采取 16 个微程序控制点,然后通过 对各个控制点的值来实现对微指令的编码(即各个控制点的值取 0 或 1) ,不同的指 令所对应的各个控制点的编码会有不同。 微指令设计流程:
17、因为事先必须确定好电路才能得出各个控制点,因此根据完整 的电路的各个可控信号确定了 16 个控制点,在这个过程中,实际有的控制点不止 16 个,因此我们采取了一些措施,部分控制点合并,另外一些改成了直接采用节拍控 制,最终将控制点的数目控制在了 16 个,然后设计了取址公操作部分各个控制点的 值,形成了取址公操作的编码,然后在此基础上修改各个控制点的值,形成了一个 大概的指令编码表,然后在实践中检验、纠错、修改,最后得到完整的微指令设计 表。 微程序设计微程序设计 对于每条指令都设计了相应的汇编程序来进行检验,将汇编程序设计好,然后改 写成计算机所能识别的二进制形式,事先将二进制程序存入内存的
18、芯片中,然后开 始执行检验即可。 对于各条指令的微程序要考虑到指令的控制点编码,以及控制它的地址,还有内 存中的存储数据的部分。将微程序分为两段,一段是所执行的操作,另一段是操作 数。 而每一行代码又可分为 3 部分,比如我们设计的微程序地址四位,数据八位,指令 八位,因此我们的程序中,前四位二进制数字表示程序执行的地址,即 pc 计数器的 内容,后八位是指令,指令的前四位对应的是操作码,需送入控存译码,进而得到 具体操作,后四位是数据地址,返送回内存读取数据。 各个指令所对应的微程序具体还是不同的,在后面会有详细说明。 4、详细设计与实现 4.1 所选用芯片 1.74ls181 系统使用了2
19、片181芯片作为alu,用于8位的运算器,负责执行阶段的各种运算。 181芯片引脚图及引脚说明如error! reference source not found. 表 4.1 74181 芯片引脚及其引脚说明 2、74ls157 如图 4.2 所示 表 4.2 74167 芯片引脚及其引脚说明 3、74ls161 如图 4.3 所示 表 4.3 74161 芯片引脚及其引脚说明 4、74ls395 如图 4.4 所示 表 4.4 74181 芯片引脚及其引脚说明 5、6116 如图 4.5 所示 表 4.5 6116 芯片引脚及其引脚说明 6、2816 如图 4.6 所示 表 4.6 281
20、6 芯片引脚及其引脚说明 7、74ls244 如图 4.7 所示 表 4.7 74ls244 芯片引脚及其引脚说明 8、74ls373 如图 4.8 所示 表 4.8 74181 芯片引脚及其引脚说明 4.2 硬件实现 4.2.1 硬件原理图 本次我们采用的方案是微程序控制,且主、控存分开的方案,即采用微程序控 制方式,实现主存储器(mm)和微程序控制存储器(cm)不共用一个存储器的方 式完成方案的设计。同时在实施的过程中,采用部分电路用 fpga 方式下载、部分 电路用硬件搭建的方式完成,其中运算器和存储器部分由硬件搭线完成,主存使用 6116 芯片实现,控存与主存分开,使用 2816 芯片
21、实现,然后时序控制部分选择用 fpga 方式下载,最后汇总在一起,形成实现所有功能的整体计算机系统。具体的电 路设计图如图 4.9 所示: s3s0 4d 8 3d 74 2d 2 1d 4q 3q 2q 1q 9852 gnd 10 8d 18 7d 17 14 6d 13 5d 8q 7q 6q 5q 19 16 15 12 vcc 20 373 b3 18 b2 20 23 b1 2 b0 f1 f0 10 9 m 12 a3 19 a2 21 23 a1 2 a0 f3 f2 13 11 vcc1 24 alu181 4d 8 3d 74 2d 2 1d 4q 3q 2q 1q 985
22、2 gnd 10 8d 18 7d 17 14 6d 13 5d 8q 7q 6q 5q 19 16 15 12 vcc 373 4d 8 3d 74 2d 2 1d 4q 3q 2q 1q 9852 gnd 10 8d 18 7d 17 14 6d 13 5d 8q 7q 6q 5q 19 16 15 12 vcc 373 ia3 8 ia2 6 4 ia1 2 ia0 ya3 ya2 ya1 ya0 12 14 16 18 gnd 10 ib3 11 ib2 13 16 ib1 17 ib0 yb3 vn2 yb1 yb0 9 7 5 3 vcc1 20 回 存 244 ia3 8 ia2
23、 6 4 ia1 2 ia0 ya3 ya2 ya1 ya0 12 14 16 18 gnd 10 ib3 11 ib2 13 16 ib1 17 ib0 yb3 vn2 yb1 yb0 9 7 5 3 vcc1 20 输 入 244 a3 5 a2 67 a1 8 a0 i/ 04 i/ 03 i/ 02 i/ 01 13 11 109 gnd 12 a7 1 a6 23 a5 4 a4 i/ 08 i/ 07 i/ 06 i/ 05 17 16 15 14 vcc 6116 d2 5 d3 67 cep 8 gnd q2q3 cet pe 1211109 mr 1 cp 23 d0 4 d
24、1 vcv tcq0q1 16151413 161 a3 10 a2 136 a1 3 a0 yb ya 7 4 gnd 8 b3 11 b2 145 b1 2 b0 yd yc 9 12 vcc1 16 ls157 a3 10 a2 136 a1 3 a0 yb ya 7 4 gnd 8 b3 11 b2 145 b1 2 b0 yd yc 9 12 vcc1 ls157 ia3 8 ia2 6 4 ia1 2 ia0 ya3 ya2 ya1 ya0 12 14 16 18 gnd 10 ib3 11 ib2 13 16 ib1 17 ib0 yb3 vn2 yb1 yb0 9 7 5 3
25、vcc1 20 输 入 244 a3 5 a2 67 a1 8 a0 i/ 04 i/ 03 i/ 02 i/ 01 13 11 109 gnd 12 a7 1 a6 23 a5 4 a4 i/ 08 i/ 07 i/ 06 i/ 05 17 16 15 14 vcc 20 2816 ia3 8 ia2 6 4 ia1 2 ia0 ya3 ya2 ya1 ya0 12 14 16 18 gnd 10 ib3 11 ib2 13 16 ib1 17 ib0 yb3 vn2 yb1 yb0 9 7 5 3 vcc1 20 输 入 244 a3 5 a2 67 a1 8 a0 i/ 04 i/ 03
26、 i/ 02 i/ 01 13 11 109 gnd 12 a7 1 a6 23 a5 4 a4 i/ 08 i/ 07 i/ 06 i/ 05 17 16 15 14 vcc 20 2816 a3 10 a2 136 a1 3 a0 yb ya 7 4 gnd 8 b3 11 b2 145 b1 2 b0 yd yc 9 12 vcc1 16 ls157 d2 5 d3 67 pe 8 gnd q3q3cpoe 1211109 gnd mr 1 ds 23 d0 4 d1 vcv q0q1q2 16151413 395 a3 10 a2 136 a1 3 a0 yb ya 7 4 gnd 8
27、 b3 11 b2 145 b1 2 b0 yd yc 9 12 vcc1 ls157 4d 8 3d 74 2d 2 1d 4q 3q 2q 1q 9852 gnd 10 8d 18 7d 17 14 6d 13 5d 8q 7q 6q 5q 19 16 15 12 vcc 373 输入主存内容 iraar 开始 pc+1pc irbmm 取指公操作 m1 m2 4.17 load 指令流程图 2、 store 指令,如图 4.18 所示 m1 ar 清零 pcmm rd、ldir ; iraar 开始 pc+1pc irbmm 传数 a lddr2 busbus wr 取指公操作 m2 图
28、 4.18 store 指令流程图 3、 jmp 指令如图 4.19 所示 ar 清零 pcmm rd、ldir iraar 开始 pc+1pc irbpc 取指公操作 m1 m2 图 4.19 jmp 指令流程图 4、end 指令如图 4.20 所示 m2 ar 清零 pcmm rd、ldir ; iraar 开始 pc+1pc stop 停止 m1 图 4.20 end 指令流程图 5、add 指令如图 4.21 所示 注:所有的双操作数运算指令均和 add 相同 m1 ldac ar 清零 pcmm rd、ldir ; iraar 开始 pc+1pc irbmm rd busbus ld
29、dr1 add lddr2 取指公操作 m2 图 4.21 add 指令流程图 6、not (a)指令如图 4.22 所示 注:所有单操作数指令均同此,如 a 加 a m2 ar 清零 pcmm rd、ldir ; iraar 开始 pc+1pc not a lodr2 ldac 取指公操作 m1 图 4.22 not(a) 指令流程图 4.3.2 微指令实现 1、 控制信号选择 运算器部分:如表 4.23 所示 名称功能所属芯片 dr2_g 使能端,控制 dr2 是否为锁状态 74ls373 dr2_ctrl dr2 输出控制 74ls373 m 运算器运算控制 74ls181 s0 运算器
30、运算控制 74ls181 s1 运算器运算控制 74ls181 s2 运算器运算控制 74ls181 s3 运算器运算控制 74ls181 ac_g 使能端,控制 ac 是否为锁状态 74ls373 dr1_g 使能端,控制 dr1 是否为锁状态 74ls373 up_244 上行 244 输出控制端 74ls244 down_244 下行 244 输出控制端 74ls373 表 4.23 运算器部分控制点选择 主、控存部分:如表 4.24 所示 名称功能所属芯片 we 控制主存 mm 的读写状态cmos 静态 ram 6116 ir_g 使能端,控制 ir 是否为锁状态 74ls373 s1
31、 控制选择 ir 的 ira(高)或 irb(b) 74ls157 pc_ 控制 pc 的预置功能 74ls161 pc_cp 控制 pc 的时钟,实现计数功能 74ls161 ar_cp 控制 ar 的时钟,实现装入数据 74ls395 ar_ 控制 ar 的清零端 74ls395 表 4.24 主控存部分控制点选择 默认部分:如表 4.25 所示 名称状态功能所属芯片 ac_ctrl l(常接低)ac 输出控制有效 74ls373 dr1_ctrl l(常接低)dr1 输出控制有效 74ls373 ir_ctrl l(常接低)ir 输出控制有效 74ls373 mm_ l(常接低)输出控制
32、 6116 mm_ l(常接低)片选有效 6116 157_ l(常接低)使能有效 74ls157 pc_ 或开关手自动控制清零 74ls161 pc_cep/cet 与 pc_ 连接协同控制 74ls161 ar_pe h(常接高)置数功能有效 74ls395 cm_ l(常接低)片选有效 2816 cm_ h(常接高)常读状态 2816 表 4.25 默认部分控点 h/l 控制 时序部分: stop ,控制时序停止 2、指令周期设计 每条指令包含两个机器周期,其中第一个用于取指令,用 m1 标识,第二个用于 执行指令,用 m2 标识;每个机器周期包含 4 个 t 周期,分别为 t1、t2、
33、t3、t4,对 于所有的指令,设计了取指公操作,则其第一个机器周期都一样,即进行取指公操 作,第二个机器周期则执行对应的指令功能。 3、时序产生设计 选择 jzyl型计算机组成原理实验台左半边的时序电路部分,通过其中的 t1、t2、t3、t4 来作为时序控制中的 t1t4,同时通过一片正沿 双 d 触发器 74ls74 和一片反相器 74ls04 作为产生时序控制中所需的 m1 与 m2(其中 =m2) ;其 时序部分的接线如下: t1、t2、t3、t4:接逻辑控制电路的输入; start:接脉冲 p1; stop:接微指令设计中的第一位 c0; clk:接某一频率控点; sel:接地,持续产
34、生 t1、t2、t3、t4; m1、m2:接逻辑控制电路的输入。如图 4.26 所示 clk t4 7404 q m1m2 74ls74 d 触发器 clr d 图 4.26 双周期实现 4、微指令流程设计 :取指公操作:处于 m1 内(其中表内 l 为低,h 为高) ;如表 4.27 t t 节拍节拍功能或所需数据流向功能或所需数据流向所需控制信号值所需控制信号值 t1t1ar 清零r_395=l t2t2pcmms1=l t3t3rd; ldir; pc+1pc; =h; ir_g=h; pc_cp=() ; t4t4iraars2=l,ar_() 表 4.27 取指公操作设计流程 :lo
35、ad 指令(m1 同取指公操作,只列出 m2 的设计):如表 4.28 t t 节拍节拍功能或所需数据流向功能或所需数据流向所需控制信号值所需控制信号值 t1t1irbmms2=s1=h t2t2rd; busbus; ldac; =h; up_244=l; ac_g=h; t3t3空空 t4t4空空 表 4.28 load 指令设计流程 :store 指令(m1 同取指公操作,只列出 m2 的设计):如表 4.29 t t 节拍节拍功能或所需数据流向功能或所需数据流向所需控制信号值所需控制信号值 t1t1irbmms2=s1=h t2t2空空 t3t3传操作数 a; lddr2; (s3,s
36、2,s1,s0,m, )=(lllllh) ; dr2_g=h,dr2_ctrl=l; t4t4dr2out; busbus; wr; dr2_g=l,dr2_ctrl=l; down_244=l; =l; 表 4.29 store 指令设计流程 :jmp 指令(m1 同取指公操作,只列出 m2 的设计):如表 4.30 t t 节拍节拍功能或所需数据流向功能或所需数据流向所需控制信号值所需控制信号值 t1t1irbpcpc_ =l(pc_cep/cet=l) t2t2空空 t3t3空空 t4t4空空 表 4.30 jmp 指令设计流程 :add 指令(m1 同取指公操作,只列出 m2 的设计
37、):如表 4.31 注:所有双操作数指令(sub,and,fab,not d,等)流程均同 add,区别只 是(s3,s2,s1,s0,m, )序列值不同而已,此处不再赘述,类比即可。 t t 节拍节拍功能或所需数据流向功能或所需数据流向所需控制信号值所需控制信号值 t1t1irbmms2=s1=h t2t2rd; busbus; lddr1; =h; up_244=l; dr1_g=h; t3t3add; lddr2; (s3,s2,s1,s0,m, )=(hllhlh) ; dr2_g=h,dr2_ctrl=l; t4t4dr2out; ldac; dr2_g=l,dr2_ctrl=l;
38、ac_g=h; 表 4.31 add 指令设计流 :not(a)指令(m1 同取指公操作,只列出 m2 的设计):如表 4.32 注:所有单操作数指令(乘 2 等)流程均同该指令,区别只是 (s3,s2,s1,s0,m, )序列值不同而已,此处不再赘述,类比即可。 t t 节拍节拍功能或所需数据流向功能或所需数据流向所需控制信号值所需控制信号值 t1t1空空 t2t2空空 t3t3not a; lddr2; (s3,s2,s1,s0,m, )=(llllhl) ; dr2_g=h,dr2_ctrl=l; t4t4dr2out; ldac; dr2_g=l,dr2_ctrl=l; ac_g=h;
39、 表 4.32 not(a)指令设计流 :end 指令(m1 同取指公操作,只列出 m2 的设计):如表 4.33 t t 节拍节拍功能或所需数据流向功能或所需数据流向所需控制信号值所需控制信号值 t1t1stopc0(stop)=1 t2t2空空 t3t3空空 t4t4空空 表 4.33 end 指令设计流 5、逻辑表达式 因为很多符号无法直接打出(如作为非的上划线等),在这里直接用纸质上的截图来 作为参考: 4.3.3 微程序的设计 :微指令格式:如表 4.34 微指令共设计了 16 位,并且全部投入使用,共有 16 位微指令控制信号,微地 址为 4 位,可以存放 16 位微指令,满足使用
40、需求,具体设计如下: 序 列 c15c14c13c12c11c10c9c8c7c6c5c4c3c2c1c0 功 能 stopload161_置数dr2_contdr2_gac_gdr1_gdown_244up_244s3s2s1s0mcn6116-we 有 效 值 001100011xxxxxx0 表 4.34 微指令格式设计 :控制存储器内容:如表 4.35 指令存入主存和控存中,如下所示 指令地址 c15 stop c14 load c13 161 _置 数 c12 dr2_ cont c11 dr2 _g c10 ac_ g c9 dr1 _g c8 down_2 44 c7 up_24
41、4 c6 s3 c5 s2 c4 s1 c3 s0 c2 m c1 cn c0 6116 _we 取址00000 011000110000010 load00010111010100000010 store00100010100010000011 jmp00110001000110000010 add01000010111101001010 sub01010010111100110000 and01100010111101011110 或01110010111101110110 notd10000010111100101110 not10010010110110000110 异或1010001
42、0111100110110 乘 210110010111111100010 end11001011000100000010 表 4.35 存储的指令表 4.3.4 测试程序 1、检测逻辑运算(1+2-2)&3 load 1 0000 0001 0101 加 2 0001 0100 0110 减 2 0010 0101 0111 and 3 0011 0110 1000 end 0100 1100 1111 操作数 a =1 0101 0000 0001 操作数 b =2 0110 0000 0010 操作数 c =2 0111 0000 0010 操作数 d =3 1000 0000 0011
43、 最后结果为 1 2、检测 store/jump load 0000 0001 1100 store 0001 0010 1111 jump 0010 0011 0111 store 0111 0010 1110 end 1000 1100 1111 地址原来存的数 1100 1010 1010 1110 0000 0000 1111 0000 0000 指令执行完后 地址存的新数据: 1100 1010 1010 1110 1010 1010 1111 1010 1010 并且成功看到 pc 数值的变化,即完成了跳转! 5、实验过程与调试 5.1 仿真 实验中的时序电路部分采用了波形仿真,主
44、要用于检验电路能否实现预期的效 果,出现问题也主要是根据波形仿真去发现错误然后改正,对于时序电路的仿真图 5.1 所示: 图 5.1 时序仿真图 5.2 主要故障与调试 5.2.1 故障 1双周期运行不正常 解决:当初在时序设计中,我们决定采用的是双周期来实现指令,并且在波形 仿真时得到了完全正确的结果,但是在下载后具体连线检验时,发现了问题,双周 期的运行并不对,m1 周期比 m2 周期长很多,准确是 m2 很短,然后我们仔细对比 后,发现是 m2 没有实现完整的 4 个节拍,经过一系列排错,发现是时序电路的信 号有问题,t0 节拍并不灵敏,单独用灯检测是发现 t0 节拍的灯并不是蓝红交错的
45、 闪烁,而是蓝一下,然后暗了,后来换了一个节拍,发现双周期待运行正常了! 5.2.2 故障 2 ac 累加器显示灯有信号冲突 当我们连接完整个运算器部分,然后检测电路的正确性时,发现了 ac 的接出 灯的红灯很暗,而蓝灯很正常,因此认为产生了信号冲突,于是开始对整个电路进 行检查,发现电路连接正常,并且 373 的使能端和 244 的高阻端控制也很正确,但 是信号冲突一直存在着,即使是换过一些数据结果也会出现相应的情况,最后检测 芯片时,发现时 181 芯片的输入端有信号输出,于原来的输入产生了冲突,最后问 老师才知道 181 芯片在通电时偶尔会出现这样的情况,换了 181 芯片后问题终于得
46、到了解决! 5.2.3 故障 3 load 指令导致其他指令运行不正确 我们设计指令时,因为得到的控制点数目超过了 16,所以有一些控制点选择了 接到节拍信号上,所以随着节拍信号,一些开关也是随之每条指令都会打开,我们 的 load 指令的微程序控制便是因为连接的节拍,导致了一些运算指令因为 373 的使 能和 244 的高阻打开的不是时候而出现了一系列问题,最后重新合并了一些控制结 点,将 load 单独做了一个控制位才使问题解决! 5.2.4 故障 4quartus 无法编译原理图 在设计完原理图,用 quartus 编译时,发现有错误,发现是因为已经过了使用 期限,因此无法正常使用,最后
47、发现了两个办法解决问题:第一、使用教程中的破 解方法生成一个 license。dat 文件进行破解,具体操作见教程;第二种方法较简单, 就是直接修改计算机的时间,向前调一段很长的时间,这样软件可以正常进行编译 了。 5.2.5 故障 5fpga 下载出问题 在设计完时序电路后用 fpga 进行下载,但是出现了一些问题,修改过原理图后 还是无法将其下载进去,实际运行的还是原来的原理图,这让我们百思不得其解, 老师对这个也不是很拿手,最后细心的同学提示是 quartus 中下载要修改一些文件, 比如 q6.0&dsp&mega 这个文件,就要将文件中的序列号改成我们主机中 quartus 的 序列
48、号,这样才能正常下载。 5.2.6 故障 6执行 store 指令时,数据无法正常写入 在依次检查各条指令的执行情况时,发现有两条指令的执行有问题,其中之一 就是 store 指令,发现数据无法正常写入,例如本来想向 0000 地址写入数据 10001001,但是在检查时发现 0000 地址存的并不是 100001001,而是 11111111,而 后发现无论往该地址存什么数据,结果都是 11111111 不变,于是我们觉得是数据并 没有写入,于是检查了指令的执行过程,最后发现在微程序的控制上有问题,当 6116 在写时,373 置成了高祖状态,因此才会写入的是 11111111,最后修改了微
49、程 序的执行节拍,将其分开,然后发现结果正确! 5.2.6 故障 7执行 jump 指令时,并没有跳转 我们设计的指令中有两条出了问题,另外一条便是 jump 指令了,无法跳转, 从仿真图上来看,应该是可以正常跳转的,但是结果就是不对,这让我和搭档非常 郁闷,单独将芯片接出来检测,发现手动控制可以实现直数功能,即芯片本身并没 有问题,但自动执行的时候会出错,仔细研究了 161 芯片后,我们发现关于跳转的 实现是要两个信号控制一个是 cp 脉冲,一个控制开关,于是我们讨论是不是上升沿 给的不是时候,于是将 cp 信号由本来的一个节拍延长到两个节拍,让其可以完全覆 盖到整个控制开关的变化,最后结果
50、正确了 5.3 功能测试 在本次课程设计中,我们能够根据具体的运算式写出系统运行的程序,一般要 求所设计的机器指令中包含了运算式的所有运算要求,倘若没有包含的话(如异或 运算等等) ,需要重新写控存 cm,操作比较麻烦,但是其实现思路非常简单,只需 通过两个 74ls244 直接操作对 2816 进行写入即可,写完再调整 2816 为读状态,便 可实现后续功能。经过测试,完全能够实现此项操作。 下面就以本次课程设计中检查时老师给我出的测试题目为例,分析程序设计的 过程和方法。其余程序均可按照下述方法和步骤进行设计,不在赘述。 题目:(8+7 非)加 8 + 9 异或 6 乘 2 与 6 减 7
51、 程序流程为:如表 5.2 所示 地址顺序所执行的指令 0 开始 1load 8 2fab 7 3add 8 4 或 9 5 异或 6 6 乘 2 7 与 6 8 减 7 9end 表 5.2 内存内容为:如表 5.3 所示 内存地址内存数据解释 00000000 0000 开始 00010001 1010load 8 00101101 1011fab 7 00110100 1010add 8 01000111 1100 或 9 01011010 1101 异或 6 01101011 1110 乘 2 01110110 1101 与 6 10000101 1011 减 7 10011100 1
52、110end 10100000 1000 操作数 8 10110000 0111 操作数 7 11000000 1001 操作数 9 11010000 0110 操作数 6 11100000 0010 操作数 2 1111 表 5.3 程序运行结果 运行完成后,最后在 ac 里面的结果为 :1111 1111 5.4 实验流程图 1、2 月 27 周一: 熟悉实验要求,并阅读相关资料开始准备。 2、2 月 28 周二: 设计实验图,并完成运算器和存储器部分的设计 3、2 月 29 周三: 开始连线,完成了运算器部分的连线,并检验正确 4、3 月 1 周四 开始设计控存和微指令 5、3 月 2
53、周五 对微指令进行修改 6、3 月 34 周六周日 开始设计时序电路部分 7、3 月 5 周一 通过波形仿真对时序检验,并进行修改 8、3 月 67 周二,周三 将电路全部连接,进行排错和优化 9、3 月 8 日 周四 老师电路检查 6、设计总结与心得 6.1 课设总结 基于对象的存储是为了克服当前基于块的存储存在的诸多难题,在存储接口和 结构层次的重要发展。可以根据应用负载选择优化的存储策略。作了如下几点工作: 1)完成方案总结: 本次组成原理课程设计难度还是相对较大的,在老师的指导和帮助以及我们自 己的努力下,最终成功的设计出了一台基于微指令设计和 fpga 的支持自有指令系统 的简单计算
54、机系统。我们所设计的系统能在基于 eda 的实验平台上运行一段基于自 有指令的程序,并能够根据设计的程序计算出正确的结果,且在 jzyl型计算机 组成原理实验台的 led 灯(或数码管)上显示出结果,此次设计的系统为全自动执 行!完成了本次组成原理课程设计的基本任务与要求,虽然没有剩余时间去进行功 能的扩展,但至少所设计的系统的各项指标均符合设计要求。 同时,在这个过程中, 我们也确实通过努力、学习与设计,锻炼了我们自身对于简单计算机系统的设计、 系统的故障分析与定位以及系统调式的能力,更进一步提高了我们分析和解决问题 的能力。 2)功能总结: 在本次课程设计中,我们完成的设计工作和我们设计的
55、系统具有的功能如下所 示: 具有准确无误的数据通路,且在其基础上具有指令和微指令控制的功能; 设计了完成指定功能的各指令相对应的微命令; 设计了时序列电路,能够产生满足指令周期和指令执行所需要的两级时序信 号; 可以手动方式产生各指令执行过程中所需要的微命令,控制指令的执行; 设计控存,将各指令的微程序存放在 cm(用 2816 实现)中,经过适当的时 序控制,通过微程序可以完成自动控制指令的执行功能; 对该模型机系统中的运算器模块功能和微程序逻辑控制电路部分利用 quartus 6.0 软件仿真功能进行仿真分析和功能验证,且将该部分电路下 载到 fpga,并与适当的外围器件(包括部分芯片、输
56、入/输出开关、led 显示 等)相配合,实现模型机的主机系统; 所设计的主机系统能支持自动和单步运行方式,能正确地执行存放在主存中 程序的功能,对主要的数据流和控制流通过 led 适时显示结果; 所设计的模型机支持加、减运算等基本的算术运算指令,支持与、或、非等 逻辑运算类指令,支持存储器写的回存指令,支持寄存器间数据传送的 load 指令,支持跳转指令等几类指令; 支持直接寻址、隐含寻址等几种基本的寻址方式; 能支持 12 条以上的指令; 能运行由自己设计的 cpu 所支持的指令系统构成的一段程序,程序执行功能 正确且能够稳定输出结果; 所设计的主机系统在运行期间和修改程序期间不需要拆拔一根导线,完全可 以通过开关和脉冲或控制信号控制。 3)其他需要总结的内容: 在本次课程设计,我们采用的方案是微程序控制,且主、控存分开
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 高层建筑结构设计试题及答案
- 电动汽车的库存管理与财富管理研究试题及答案
- 测量员证试题及答案
- 经济知识经典试题及答案
- 知识架构2025年大学物理试题及答案
- 空间感的设计与家具布局的研究试题及答案
- 劳务设备租赁合同样本
- 3人股合同范例
- 出售银行岗位合同样本
- 电池性能优化对电动车的影响试题及答案
- 国家助学贷款还款救助归档材料清单
- 11《杠杆》教学设计-2023-2024学年科学五年级下册人教鄂教版
- 2024版恶性肿瘤患者营养治疗指南解读课件
- 2025届四川省成都市高三上学期毕业班摸底测试(零诊)历史试题(解析版)
- YB 4019-1991 轻烧菱镁矿粉化学分析方法柠檬酸法测定轻烧菱镁矿粉的活性
- 路面工程练习试卷1(共101题)
- DL∕T 802.8-2014 电力电缆用导管技术条件 第8部分:埋地用改性聚丙烯塑料单壁波纹电缆导管
- DL∕T 1901-2018 水电站大坝运行安全应急预案编制导则
- 教育公平问题案例
- DL∕T 1630-2016 气体绝缘金属封闭开关设备局部放电特高频检测技术规范
- 2024年北京卫生职业学院高职单招笔试历年职业技能测验典型例题与考点解析含答案
评论
0/150
提交评论