东北大学秦皇岛分校组成原理课程设计-指令系统及累加器_第1页
东北大学秦皇岛分校组成原理课程设计-指令系统及累加器_第2页
东北大学秦皇岛分校组成原理课程设计-指令系统及累加器_第3页
东北大学秦皇岛分校组成原理课程设计-指令系统及累加器_第4页
东北大学秦皇岛分校组成原理课程设计-指令系统及累加器_第5页
已阅读5页,还剩14页未读 继续免费阅读

下载本文档

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

文档简介

东北大学秦皇岛分校 计算机与通信工程学院 计算机组成原理课程设计 专业名称 计 算 机 科 学 与 技 术 班级学号 2133625 学生姓名 储 蓉 蓉 指导教师 赵 媛 设计时间 2015.12.282016.01.08 课程设计任务书 专业:计算机科学与技术 学号:2133625 学生姓名(签名): 设计题目:指令系统及累加器设计 一、设计实验条件 地点:808 实验室; 硬件:PC 机; 软件:Xilinx ISE,ModelSim; 编程语言:VHDL。 二、设计任务及要求 1. 18、24、34、49 号指令; 2. 累加器 A; 3. 8 位数(含 1 位符号位)原码乘法器。 三、设计报告的内容 1. 设计题目与设计任务(设计任务书) 题目:指令系统及累加器设计 任务: 1. 18、24、34、49 号指令; 2. 累加器 A; 3. 8 位数(含 1 位符号位)原码乘法器。 2. 前言(绪论) 本次课程让每个人独立设计一台模型计算机中的部分指令及一些数字电路部件,旨在帮 助同学们融会贯通计算机组成与结构课程的内容,通过知识的综合运用,加深对计算机系统 各个模块的工作原理及相互联系的认识。 还要学习运用 VHDL 进行 FPGA/CPLD 设计的基本步骤和方法,熟悉 EDA 的设计、模 拟调试工具的使用,体会 FPGA/CPLD 技术相对于传统开发技术的优点;培养科学研究的独 立工作能力,取得工程设计和组装调试的实践经验。 3. 设计主体 【模型机设计】 1. 指令系统设计: 18 号指令:助记符:SUBC A, R? 指令类型:算术运算指令 格式:操作码和地址码。 操作码:SUBC 地址码:A,R? 功能:从累加器 A 中减去寄存储器 R?的值,带进位。 寻址方式:寄存储器间接寻址方式。 24 号指令:助记符:AND A, #II 指令类型:逻辑运算指令 格式:操作码和地址码。 操作码: AND 地址码:A,#II 功能:累加器 A“与”立即数 II。 寻址方式:存储器直接寻址方式。 34 号指令:助记符:MOV R?, A 指令类型:数据传送指令 格式:操作码和地址码。 操作码:MOV 地址码:R?, A 功能:将累加器 A 的值送入间址存储器中 寻址方式:寄存器间接寻址方式。 49 号指令:助记符:IN 指令类型:输入指令 格式:操作码。 操作码:IN 功能:从输入端口读入数据到累加器 A 中 寻址方式:与 I/O 端口有关的寻址方式。 2. 模型机硬件设计: 题目:累加器 AC 功能:累加器又称累加器 AC,用于暂存操作数据和操作结果,当需要输出时再进行输 出。例如一个加法操作,AC 的内容作为一个操作数与另一操作数相加,结果送回 AC。 3. 逻辑电路设计: 题目:8 位数(含 1 位符号位)原码乘法器 功能:两个原码数相乘,其乘积的符号为相乘两数符号的异或值,数值则为两数绝对值 之积。例如:X=0.1101,Y= -0.1011 求 X*Y 图 1 两数相乘步骤 由于在计算机内多个数据不能同时相加,一次加法操作只能求出两数之和,因此每 求得一个相加数,就与上次部分积相加,每次计算时,相加数逐次向左偏移一位,由于 最后的乘积位数是乘数的两倍,因此加法器也需增加到两倍。部分积右移时,乘数寄存 器同时右移一位,所以用乘数寄存器的最低位来控制相加数取被乘数或者零,同时乘数 寄存器接受部分积右移出来的一位,完成运算后,部分积寄存器保存乘积的高位部分, 乘数寄存器保存乘积的低位部分。 【系统设计】 1. 模型机逻辑框图 图 2 整机逻辑框图 图 3 芯片引脚逻辑框图 图 4 CPU 逻辑框图 2. 指令系统设计 表 1 本次要设计的指令 指令编号 助记符 指令类型 功能 寻址方式 18 SUBC A,R? 算术运算指令 从累加器 A 中减去寄存 器 R?的值,带进位 寄存器间接寻址 24 AND A,#II 逻辑运算指令 累加器 A“与”立即数 II 立即数寻址 34 MOV R,A 数据传送指令 将累加器 A 的值送入间 址存储器中 寄存器间接寻址 49 IN 输入指令 从输入端口读入数据到 累加器 A 中 与 I/O 端口有关 的寻址方式 3. 微操作控制信号 1、XRD :外部设备读信号,当给出了外设的地址后,输出此信号,从指定外设读数据。 2、EMWR:程序存储器 EM 写信号。 3、EMRD:程序存储器 EM 读信号。 4、PCOE:将程序计数器 PC 的值送到地址总线 ABUS 上 (MAR)。 5、EMEN:将程序存储器 EM 与数据总线 DBUS 接通,由 EMWR 和 EMRD 决 是将 DBUS 数据写到 EM 中,还是从 EM 读出数据送到 DBUS。 6、IREN:将程序存储器 EM 读出的数据打入指令寄存器 IR。 7、EINT :中断返回时清除中断响应和中断请求标志,便于下次中断。 8、ELP:PC 打入允许,与指令寄存器 IR3、IR2 位结合,控制程序跳转。 9、FSTC:进位置 1,CY=1 10、FCLC :进位置 0,CY=0 11、MAREN:将地址总线 ABUS 上的地址打入地址寄存器 MAR。 12、MAROE:将地址寄存器 MAR 的值送到地址总线 ABUS 上。 13、OUTEN:将数据总线 DBUS 上数据送到输出端口寄存器 OUT 里。 14、STEN:将数据总线 DBUS 上数据存入堆栈寄存器 ST 中。 15、RRD:读寄存器组 R0-R3,寄存器 R?的选择由指令的最低两位决定。 16、RWR:写寄存器组 R0-R3,寄存器 R?的选择由指令的最低两位决定。 17、CN:决定运算器是否带进位移位,CN=1 带进位,CN=0 不带进位。 18、FEN:将标志位存入 ALU 内部的标志寄存器。 19、WEN :将数据总线 DBUS 的值打入工作寄存器 W 中。 20、AEN :将数据总线 DBUS 的值打入累加器 A 中。 21-23: X2 X0 : X2、X1 、X0 三位组合来译码选择将数据送到 DBUS 上的寄存 器。 24-26: S2 S0 : S2、S1、S0 三位组合决定 ALU 做何种运算。 4. 指令执行流程 (1)指令 18:SUBC A,R? 功能:从累加器 A 中减去寄存器 R?的值,带进位 寻址方式:寄存器间接寻址 指令格式: 操作码 操作数 (2)指令 24:AND A,#II 功能:累加器 A“与” 立即数 II 寻址方式:立即数寻址 指令格式: 010001 R? 第 1 个字节 操作码 第 2 个字节 8 位立即数 II (3)指令 34:MOV R,A 功能:将累加器 A 的值送入间址存储器中 寻址方式:寄存器间接寻址 指令格式: 操作码 操作数 (4)指令 49:IN 功能:从输入端口读入数据到累加器 A 中 指令格式: 操作码 表 2 指令简介 010111 XX 如 27 : 00011011 100001 A 110000XX 编 号 助记符 功能 机器码 周期 总数 CT 节拍数 微操作 控制信号 涉及的硬件 T2 (010) PCMAR PCOE MAREN T1 (001) EMW EMEN EMRD WEN1 _FATCH _ 取指令 000000 XX 010 T0 (000) WIR PC + 1PC IREN PC, MAR , EM, W , IR T5 (101) R?DBUS MAR RRD, MAREN, X=111 T4 (100) EMW EMEN,EMRD,WEN 18 SUBC A, R? 从累加器 A 中 减去寄存器 R? 的值,带进位 010001 XX 101 T3 (011) ALU(A,W) A S2S1S0=101,CN=1,F EN,X=100,AEN R, DBUS, MAR, EM, W, A,ALU, F T5 (101) PCMAR PCOE ,MAREN T4 (100) EMW PC+1PC EMEN EMRD WEN24 AND A, #II 累加器 A“与” 立即数 II 010111 XX 101 T3 (011) ALU(A,W) A S2S1S0=011,FEN,X= 100,AEN PC, MAR, EM, W, A,ALU, F T5 (101) R?DBUS MAR RRD, MAREN, X=111 T4 (100) AW WEN,X=100 34 MOV R?, A 将累加器 A 的 值送入间址存 储器中 100001 XX 101 T3 (011) W EM(MAR) EMEN,EMWR R, MAR, EM, W, A,DBUS T4 (100) INDBUS W X=000,WEN 49 IN 从输入端口读 入数据到累加 器 A 中 110000 XX 110 T3 (011) WA AEN IN, DBUS, W, A 以流程图表示如下: T2 PCOE ;MAREN T1 EMEN;EMRD;WEN T0 IREN AND A, #II MOV R?, A IN T5 T5 T5 T4 T4 T4 T3 T3 【系统实现】 1. 模型机实现 (1)逻辑电路的图形符号表示、功能 PCMAR EMW WIR PC + 1PC 译码或测试 R?DBUS MAR EMW WEM(MAR) AW R?DBUS MAR WA IN DBUSWPC MAR EMW PC+1PC ALU(A,W)A 开始 T5 SUBC A, R? T4 T3 ALU(A,W)A 功能:一个加法操作,AC 的内容作为一个操作数与另一操作数相加,结果送回 AC。 (2)系统实现 - - Company: - Engineer: - Create Date: 19:39:12 01/07/2015 - Design Name: - Module Name: spydianlu - Behavioral - Project Name: - Target Devices: - Tool versions: - Description: - Dependencies: - Revision: - Revision 0.01 - File Created - Additional Comments: - library IEEE; use IEEE.STD_LOGIC_1164.ALL; use IEEE.STD_LOGIC_ARITH.ALL; use IEEE.STD_LOGIC_UNSIGNED.ALL; entity trans is port(input:in std_logic_vector(1 downto 0); oc,clk:out std_logic_vector(3 downto 0); end trans; architecture behav of trans is signal c:std_logic_vector(3 downto 0); begin oc=c; clk=c; process(input) begin if (input=“00“) then c=“1110“; elsif input=“01“ then c=“1101“; elsif input=“10“ then c=“1011“; elsif input=“11“ then c=“0111“; end if; end process; end behav; - Uncomment the following library declaration if instantiating - any Xilinx primitives in this code. -library UNISIM; -use UNISIM.VComponents.all; 2.逻辑电路设计 (1) 逻辑电路的图形符号表示、功能 功能:两个原码数相乘,其乘积的符号为相乘两数符号的异或值,数值则为两数绝对值之积。 (2) 系统实现 - - Company: - Engineer: - Create Date: 16:54:11 01/07/2015 - Design Name: - Module Name: SPY - Behavioral - Project Name: - Target Devices: - Tool versions: - Description: - Dependencies: - Revision: - Revision 0.01 - File Created - Additional Comments: - library IEEE; use IEEE.STD_LOGIC_1164.ALL; use IEEE.STD_LOGIC_ARITH.ALL; use IEEE.STD_LOGIC_UNSIGNED.ALL; entity biaojue is PORT(SW : IN std_logic_vector(4 DOWNTO 1); L : OUT std_logic_vector(2 DOWNTO 1); end biaojue; architecture Behavioral of biaojue is begin WITH SW SELECT L = “10“ WHEN “0111“, “10“ WHEN “1011“, “10“ WHEN “1101“, “10“ WHEN “1110“, “10“ WHEN “1111“, “00“ WHEN OTHERS; end Behavioral; 【系统测试】 (1)模型机测试 1、功能仿真 2、RTL 级逻辑电路 (二)硬件测试 1.功能仿真 2.RTL 级逻辑电路 【总结】 本次课程设计的时间虽然有点短,但是自己却收获了很多。一开始拿到本组课程设计题 目的时候由于相关知识的缺乏,而且没有很好的设计思路,在通过和同学的探讨以及查阅相 关资料之后,才逐渐找到了方向。本次课程设计的目的是让我们增加自己的动手能力,真正 的达到理论与实际的结合。经过本次课程设计,真正的发现理论与实际结合得重要性,有时 并不是理论知识学得好动手能力就会高,当真正动起手来发现自己需要学得知识还是很多的, 在以后的学习中,自己一定会加强理论与实际的结合,让自己达到新型社会需要人才的标准。 【心得体会】 这次的课程设计使我体会到了编程的乐趣和成就感,懂得了理论与实际相结合的重要性, 只有把所学的理论知识与实践相结合起来,从理论中得出结论,才能真正为社会服务,从而 提高自己的实际动手能力和独立思考的能力。在整个设计过程中,构思是

温馨提示

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

评论

0/150

提交评论