1、东秦组成原理课设报告东北大学秦皇岛分校计算机与通信工程学院计算机组成原理课程设计专业名称计算机科学与技术班级学号学生姓名指导教师设计时间2014.12.232015.1.3课程设计任务书专业:计算机与通信工程学院 学号: 学生姓名: 设计题目:一、设计实验条件808实验室二、设计任务及要求1. 7号指令;2. 14号指令;3. 28号指令;4. 33号指令;5. 机器周期产生电路;6. 74ls139译码器。设计要求独立设计一台模型计算机中的部分指令及一些数字电路部件。三、设计报告的内容1. 设计题目与设计任务题目:指令系统及ALU设计1. 7号,14号,28号,33号指令设计;2. 机器周期
2、产生电路;3. 74LS139译码器。2. 前言(绪论) 加强对计算机组成原理的理解,并将理论和时间结合在一起,在实践中体会设计和学习的乐趣,并进一步了解计算机各个模块的原理。3. 设计主体【课程设计内容】1. 指令系统设计第7号指令: 助记符:ADD A,EM 格式:操作码和地址码 操作码:ADD 地址码:A,EM 功能:将存储器EM地址的值加入累加器A中 寻址方式:直接寻址第14号指令: 助记符:SUB A, R? 格式:操作码和地址码 操作码:SUB 地址码:A,R? 功能:从累加器A中减去间址存储器的值 寻址方式:寄存器间接寻址第28号指令: 助记符:OR A, #II 格式:操作码和
3、地址码 操作码:OR 地址码:A,#II 功能:累加器A“或”立即数II 寻址方式:立即数寻址第33号指令: 助记符:MOV R?, A 格式:操作码和地址码 操作码:MOV 地址码:R?,A 功能:将A中的值送入R?中 寻址方式:寄存器间接寻址2. 模型机硬件设计: 题目:机器周期产生电路 功能:设计电路,实现A、B类指令分别有2和4个机器周期。 3. 逻辑电路设计:题目:74LS139译码器。功能:实现双二四译码器机器周期ABCYACYBCYACYBCYACYBCYACYBM0 00110001M10110M21011M311001110【系统设计】1.模型机逻辑框图 图1 图2 图32.
4、 指令系统设计第7号指令: ADD A,EM 指令类型:算术运算指令 寻址方式:直接寻址 指令格式: 001110 XX操作码及寻址类型 第14号指令: SUB A, R? 指令类型:算术运算指令 寻址方式:寄存器间接寻址 指令格式:001101XX 操作码及R?的选择00,01,10,11 第28号指令: OR A, #II 指令类型:逻辑运算指令 寻址方式:立即数寻址 指令格式:010111XX操作码第33号指令: MOV R?, A 指令类型:数据传送指令 寻址方式:寄存器间接寻址 指令格式:001001XX操作码及R?的选择00,01,10,113. 微操作控制信号1、XRD :外部设
5、备读信号,当给出了外设的地址后,输出此信号,从指定外设读数据。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=110、FCLC:进位置0,C
6、Y=011、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、
7、AEN:将数据总线DBUS的值打入累加器A中。21-23: X2 X0 : X2、X1、X0三位组合来译码选择将数据送到DBUS上的寄存器。 24-26: S2 S0 : S2、S1、S0三位组合决定ALU做何种运算。4. 指令执行流程编号助记符功能机器码周期总数CT节拍数微操作控制信号涉及的硬件1_FATCH_取指令000000XX10T2PCMARPCOE,MARENPC, MAR, EM, W , IRT1EMWEMEN,EMRD,WENT0WIRIRENPC + 17ADD A, EM将存储器EM地址的值加入累加器A中001110XX111T7PCMARPOCE,MARENPC, MA
8、R,EM,W, A, ALU, F T6EMWPCPC+1EMEN,EMRD,WENT5WMARWEN,WARENT4EMWEMEN,WENT3A+WDBUSAS2 S0,AEN,FEN14SUB A,R从累加器A中减去间址存储器的值001101XX101T5R?DBUSMARRRD,MAREN,X2 X0R, DBUS, MAR, EM, A, W, ALU,FT4EMWEMEN,EMRD,WENT3ALU(A-W)DBUSAS2 S0,AEN,FEN28OR A,#II累加器A“或”立即数II011011XX101T5PCMARPCOE MARENPC, MAR, EM, W,A,ALU,
9、FT4EMW,PCPC+1EMEN, EMRD WENT3W OR ADBUSA S2 S0,AEN33MOV R?,A将A中的值送入R?中100000XX011T3ADBUSR?AENA, DBUS, A 流程图如下: 图4 7号指令流程图图5 第14号指令 图6 28号指令 图7 第33号指令指令周期安排: 图8 分3号指令【系统实现】1.模型机实现1)逻辑电路的图形符号表示、功能 图9(2)系统实现library IEEE;use IEEE.STD_LOGIC_1164.ALL;- Uncomment the following library declaration if using-
10、 arithmetic functions with Signed or Unsigned values-use IEEE.NUMERIC_STD.ALL;- Uncomment the following library declaration if instantiating- any Xilinx primitives in this code.-library UNISIM;-use UNISIM.VComponents.all;entity cycle is Port ( A : in STD_LOGIC; B : in STD_LOGIC; CYA : in STD_LOGIC;
11、CYB : in STD_LOGIC; CLK : in STD_LOGIC; cya1:OUT STD_LOGIC; cyb1:OUT STD_LOGIC); end cycle;architecture Behavioral of cycle isbegin PROCESS(CLK) IS BEGIN IF(CLKEVENT AND CLK=1)THEN IF(A=1) THEN IF(CYA=0 AND CYB =0) THEN cya1=1; cyb1=1; END IF; IF(CYA=1 AND CYB =1) THEN cya1=0; cyb1=0; END IF; END IF
12、; IF(B=1) THEN IF(CYA=0 AND CYB =0) THEN cya1=0; cyb1=1; END IF; IF(CYA=0 AND CYB =1) THEN cya1=1; cyb1=0; END IF; IF(CYA=1 AND CYB =0) THEN cya1=1; cyb1=1; END IF; IF(CYA=1 AND CYB =1) THEN cya1=0; cyb1 Y1 Y1 Y1 Y1 Y1 Y2 Y2 Y2 Y2 Y2 =1111; END CASE; END PROCESS;end Behavioral;【系统测试】(一)、模型机测试1.功能仿真:
13、仿真过程如下: 在sources窗口处右击,加入新的源文件 创建波形仿真激励文件.tbw:选Test Bench Waveform,并输入文件名 test_74ls 初始化时钟周期及相关参数finash 右侧会出现 .tbw文件窗口,设置输入引脚的值,存盘 左侧sources窗口选择“behavioral simulation”,下面processes窗口会自动 出现Modelsim Simulator 双击其中的“Simulate behavioral model”会自动调用“Modelsim ”进行仿真,观察波形窗口,观察是否正确A=1,B=0,CYA=1,CYB=1;输出结果为:cya1
14、=0,cyb1=0 图112. 级RTL逻辑电路 图12(二)硬件测试1、功能仿真仿真过程如下: 在sources窗口处右击,加入新的源文件 创建波形仿真激励文件.tbw:选Test Bench Waveform,并输入文件名 test_74ls 初始化时钟周期及相关参数finash 右侧会出现 .tbw文件窗口,设置输入引脚的值,存盘 左侧sources窗口选择“behavioral simulation”,下面processes窗口会自动 出现Modelsim Simulator 双击其中的“Simulate behavioral model”会自动调用“Modelsim ”进行仿真,观察
15、波形窗口,观察是否正确A=11,B=00,输出:y1=1110,y2=0111 图13A=01,B=10,输出:y1=1011,y2=1101 图142、RTL级逻辑电路 图15【总结】 在模拟机的设计中,周期a,b同时为1时,也就是当指令同时为2个周期和4个周期时,输出应为EOF,但是这段程序中输出为00.由于时间关系,我并没有解决这个问题。 在硬件设计实验中,可以在硬件中加入两个使能端控制A,B的输入。【心得体会】 通过这次课程设计,我学习了VHDL进行FPGA/CPLD设计的基本步骤和方法,可以熟练的掌握xilinx设计程序的使用和modelsim模拟器的模拟方法。 当在这次课设中遇到困
16、难时,在和同学的交流中加深了同学的友谊,同时也让我知道了自己知识的不足。遇到问题并解决问题是一件很愉快的事情。在三天时间完成这次课设是一件很艰巨的任务,但我还是尽自己的能力完成了这次课设,虽然程序在设计中还是会有一些问题和瑕疵,但是任务书中的要求全部完成并进行了调试。 在这次实践中我增长了知识,在解决问题的途中学会了自我寻找问题的答案。将理论和实践结合在一起,为以后工作,科研做下基础。【参考文献(资料)】1 袁静波等.计算机组成与结构.北京:机械工业出版社,2011.2刘福奇。基于VHDL的FPGA和Nios实例精炼,北京航空航天大学出版社,20113 陈耀和.VHDL语言设计技术M. 北京:电子工业出版社,2004.4 汉泽西.EDA技术及其应用M. 北京:北京航空航天出版社,20045 程晓荣,翟学明,王晓霞. 计算机组成与结构M.北京:中国电力出版社,2007.
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1