logo资料库

华科计算机组成原理课程设计--扩展指令.doc

第1页 / 共17页
第2页 / 共17页
第3页 / 共17页
第4页 / 共17页
第5页 / 共17页
第6页 / 共17页
第7页 / 共17页
第8页 / 共17页
资料共17页,剩余部分请下载后查看
06 级计算机科学与技术 班 姓名: 2009/1/15 华 北 科 技 学 院 课程设计说明书 计算机 B06 沈旭辉 200607014223 班级: 姓名: 学号: 设计题目:TEC-2000A 汇编指令设计及验证 设计时间: ___2008-12-22 至 2009-1-15 指导教师: 席振元、余生晨、赵竞雄、邵铁军 语:_______________________________ ________________________________________ ________________________________________ ________________________________________ ________________________________________ 评阅成绩:___________评阅教师: ___________ 评 1
06 级计算机科学与技术 班 姓名: 2009/1/15 课程设计报告 1. 课程设计目的 通过对《计算机组成原理》的课程设计,进一步熟练掌握计算机各功能部 件的内部构造和相互之间的联系(部件配置、相互连接和作用)、各功能部件的 性能参数的相互匹配、机器指令级的各种功能和特性。将所学知识融会贯通、进 一步系统化,进一步提高硬件系统设计的能力,为以后更高的一级硬件设计打下 坚实基础。 2. 课程设计任务 在现有的 TEC-2000 教学机系统上,扩展 2 条 CPU 的机器指令,并在系 统监控程序中扩充相应的汇编指令,使软硬件均支持扩展的指令。 3. 系统组成原理及实现 (1) 运算器 这部分的逻辑图见图 3-1。从图中可以看到,运算器部件主要包括两组独立 的 8 位字长的运算器,各自由 2 片位片结构的运算器 AM2901 组成;还有状态标 志(CZVS)寄存器和教学实验所需的相关逻辑部件。AM2901 的结构如图 3-1 所示。 图 3-1 运算器部件 2
06 级计算机科学与技术 班 姓名: 2009/1/15 十六位教学机运算器的设计与实现: 十六位教学机的运算器是用 4 片 AM2901 芯片组成的,最低位芯片的 RAMO 与 Q0 是该 16 位的运算器的最低位的移位入/出信号,最高位芯片的 RAM3 与 Q3 是 16 位的运算器最高位的移为入/出信号,它们通过短路子与 SHIFT GAL 相连。 最低位芯片的 CN 是整个 16 位运算器的最低位进位输入信号,最高位芯片 的 CN+4 是整个 16 位运算器的最低位进位输入信号,它们通过短路子与 SHIFT GAL 相连。同理,只有最高位芯片的 F3 和 OVR 有意义,低位的三个芯片的 F3 和 OVR 不被使用。 B55 ~ 微下地址 B40 B39 ~ B48 B32 SCC3~0 0/MIO/REQ/WE 0 I2~I0 (2)微指令格式 B47 CI3~CI0 B31 SA I8~I6 B15 ~ ~ ~ 0 SST SSH ① 对运算器部件的控制 B24 B23 SB I5~I3 B 口 ~ ~ B16 A 口 B0 B8 SCI B7 0 DC2 0 DC1 I2~I0 数据来源 例如:运算功能,数据来源,结果处理等。详见下表 控制码编 码 000 001 010 011 100 101 110 111 寄存器结 果选择 无 无 F->B F->B F/2->B F/2->B 2*F->B 2*F->B I8~I6 Q 结果的 选择 F 无 无 无 Q/2->Q 无 2*Q->Q 无 Y 输出选 I5~I3 运算功能 择 F F A F F F F F 选择 R+S S-R R-S R∪S R∩S /R∩S R⊕S /(R⊕S) R A A 0 0 0 D D D ② 对主存和输入输出接口(设备)的控制 S Q B Q B A A Q 0 3
06 级计算机科学与技术 班 姓名: 2009/1/15 例如: 是主存读、写还是入出设备读、写 对内存和 I/O 接口的读写 /MIO(0:有内存或串口读写 1:无) REQ(0:读写内存 1:读写穿行口) /WE(0:写操作 1:读操作) ③ 对几个特定的寄存器的接收操作控制 即在此时刻让哪一个寄存器接收发送给它的输入信息 16 位机 8 位机 编码 SA SB 0 1 0 1 A 口 B 口 微指令 A 口 IR 的 SR 字段 IR 的 SR 字段 微指令 A 口 微指令 B 口 IR 的 DR 字段 IR 的 DR 字段 微指令 B 口 ④ 一般微程序的最后一条微指令为向下条指令跳转,而其余指令为顺序执 行,这些条件控制码由 CI3~0 决定。 CI3~0 0000(0#) 0010(2#) 0011(3#) 1110(14#) 功能 初始化 MAPROM 译码 条件微转移 顺序执行 4. GAL 芯片编程 FLAG、SHIFT、SCC 等辅助逻辑 GAL 芯片的逻辑功能的实现。包括逻辑设计源 程序.PLD 的编辑、编译以及写入芯片所涉及的内容以及 SUPERPRO 编程器和 FM 软件的使用。 下面是 FLAG GAL 的表达式: GAL20V8 FLAG 2001.5 1 10 12 6 7 8 9 11 2 3 4 5 4
06 级计算机科学与技术 班 姓名: 2009/1/15 CLK SST2 SST1 SST0 IB7 IB6 IB5 IB4 CY ZR OV GND F3 NC CO C Z V S Q0 RAM0 RAM3 VCC OE C0 :=CY C :=/SST2*/SST1*/SST0*C +/SST2*/SST1*SST0*CY +/SST2*SST1*/SST0*IB7 + SST2*/SST1*/SST0 + SST2*/SST1* SST0*RAM0 +SST2*SST1*/SST0*RAM3 +SST2*SST1*SST0*Q0 Z := /SST2*/SST1*/SST0*Z +/SST2*/SST1*SST0*ZR +/SST2*SST1*/SST0*IB6 + /SST2*SST1*SST0*Z +SST2*Z V := /SST2*/SST1*/SST0*V +/SST2*/SST1*SST0*OV +/SST2*SST1*/SST0*IB5 +/ SST2*SST1*SST0*V +SST2*Z S := /SST2*/SST1*/SST0*S +/SST2*/SST1*SST0*F3 +/SST2*SST1*/SST0*IB4 + /SST2*SST1*SST0*S +SST2*S DESCRIPTION 生成 PLD 文件以后再用 FM 进行编译生成 JED 文件就可写入 GAL 芯片了 。 5.扩展 2 条汇编指令 (1)自行设计 4 条指令 序号 指令名称 1 2 3 4 NINC DERC NINR HORH 功能 加 1 取反 减 1 右移 加 1 取反 右移 DR 和 SR 寄存器 中的内容相与 格式 操作码编码 入口地址 /(DR+1)-DR (DR-1)/2--DR /(DR+1)/2--->DR DR^【SR】-DR 10100001 10100010 11100001 10101010 90 92 96 99 5
06 级计算机科学与技术 班 姓名: 2009/1/15 (2)指令所对应的微程序 指令 操作码 微 址 NINC 90 DERC 92 NINR 96 HORH 99 CM 1 下 址 00 30 00 30 00 00 30 00 00 00 30 CM2 CM3 CM4 CM5 CM6 CM7 CI 3~0 SCC 3~0 0 0 MRW I2~0 SA I8~6 SB I5~3 B 口 A 口 0 SST SSH~ Sci DC2 DC1 1110 0000 0100 0011 0011 1000 0000 0000 0001 0001 0000 0000 0011 0000 0100 0011 0011 1111 0000 0000 0001 0000 0000 0000 1110 0000 0100 0011 0011 1001 0000 0000 0001 0000 0000 0000 0011 0000 0100 0011 0101 1000 0000 0000 0101 0000 0000 0000 1110 0000 0100 0011 0011 1000 0000 0000 0001 0001 0000 0000 1110 0000 0100 0011 0011 1111 0000 0000 0001 0000 0000 0000 0011 0000 0100 0011 0101 1000 0000 0000 0101 0000 0000 0000 1110 0000 0100 0100 1001 0000 0000 0000 0000 0000 0011 0000 1110 0000 0100 0011 0000 1000 0000 0000 0000 0000 0000 0000 1110 0000 0001 0000 0011 0000 0000 0000 0000 0000 0000 0000 0011 0000 0000 0010 0001 0000 0000 0000 0000 0000 0000 0001 (3)指令的实现过程: 第一步 下地址 CI3~0 SCC3~0 0 MRW 0 I2~I0 SA I8~6 SB I5~3 ①.第 1 条指令 NINC 编码 00 1110 0000 0100 0011 0011 0011 0000 0000 B 口 A 口 意义 指令执行完后执行得下一条指令的地址 顺序执行 程序执行方式 无读写操作 数据来源于 B 寄存器 累加器:F->B;Y 输出结果 运算功能 R V S 不使用指定寄存器 不使用指定寄存器 6
06 级计算机科学与技术 班 姓名: 2009/1/15 0 SST SSH、SCI DC2 DC1 第二步 下地址 CI3~0 SCC3~0 0 MRW 0 I2~I0 SA I8~6 SB I5~3 B 口 A 口 0 SST SSH、SCI DC2 DC1 0001 0001 0000 0000 编码 30 0011 0000 0100 0011 0011 1111 0000 0000 0001 0000 0000 0000 第一步 下地址 CI3~0 SCC3~0 0 MRW 0 I2~I0 SA I8~6 SB I5~3 ②. 第 2 条指令 DERC 编码 00 1110 0000 0100 0011 0011 1001 0000 0000 0001 0000 0000 0000 B 口 A 口 0 SST SSH、SCI DC2 DC1 接收标志位输出得值 无移位,运算 cn+1 寄存器接受信息不用 内部总线信息来源来自开关 意义 指令执行完后执行得下一条指令的地址 条件转移执行 程序执行方式 无读写操作 数据来源于 B 寄存器 累加器:F->B;Y 输出结果 选择指令中的寄存器,数据进行/(R⊕S)处理 不使用指定寄存器 不使用指定寄存器 接收标志位输出得值 加 0,通用寄存器逻辑移位 寄存器接受信息不用 内部总线信息来源来自开关 意义 指令执行完后执行得下一条指令的地址 顺序执行 程序执行方式 无读写操作 数据来源于 B 寄存器 累加器:F->B;Y 输出结果 选择指令中的寄存器,数据处理方式进行减操作 不使用指定寄存器 不使用指定寄存器 接收标志位输出得值 加 0,通用寄存器逻辑移位 寄存器接受信息不用 内部总线信息来源来自开关 第二步 下地址 CI3~0 SCC3~0 0 MRW 0 I2~I0 编码 30 0011 0000 0100 0011 意义 指令执行完后执行得下一条指令的地址 条件转移执行 程序执行方式 无读写操作 数据来源于 B 寄存器 7
06 级计算机科学与技术 班 姓名: 2009/1/15 SA I8~6 SB I5~3 B 口 A 口 0 SST SSH、SCI DC2 DC1 0101 1000 0000 0000 0101 0000 0000 0000 累加器:F/2->B;Y 输出结果 选择指令中的寄存器,数据处理方式进行加操作 不使用指定寄存器 不使用指定寄存器 接收标志进位输出得值 加 0,通用寄存器逻辑移位 寄存器接受信息不用 内部总线信息来源来自开关 ③.第 3 条指令 NINR 第一步 下地址 CI3~0 SCC3~0 0 MRW 0 I2~I0 SA I8~6 SB I5~3 B 口 A 口 0 SST SSH、SCI DC2 DC1 第二步 下地址 CI3~0 SCC3~0 0 MRW 0 I2~I0 SA I8~6 SB I5~3 B 口 A 口 0 SST SSH、SCI DC2 DC1 编码 00 1110 0000 0100 0011 0011 1000 0000 0000 0001 0001 0000 0000 编码 00 1110 0000 0100 0011 0011 1111 0000 0000 0001 0000 0000 0000 意义 指令执行完后执行得下一条指令的地址 顺序执行 程序执行方式 无读写操作 数据来源于 B 寄存器 累加器:F->B;Y 输出结果 选择指令中的寄存器,数据处理方式进行加操作 不使用指定寄存器 不使用指定寄存器 接收标志位输出得值 无移位,运算 cn+1 寄存器接受信息不用 内部总线信息来源来自开关 意义 指令执行完后执行得下一条指令的地址 顺序执行 程序执行方式 无读写操作 数据来源于 B 寄存器 累加器:F->B;Y 输出结果 选择指令中的寄存器,数据进行/(R⊕S)处理 不使用指定寄存器 不使用指定寄存器 接收标志位输出得值 加 0,通用寄存器逻辑移位 寄存器接受信息不用 内部总线信息来源来自开关 8
分享到:
收藏