收藏 分销(赏)

东北大学秦皇岛分校计算机组成原理优秀课程设计.doc

上传人:a199****6536 文档编号:2727105 上传时间:2024-06-05 格式:DOC 页数:22 大小:1.07MB 下载积分:10 金币
下载 相关 举报
东北大学秦皇岛分校计算机组成原理优秀课程设计.doc_第1页
第1页 / 共22页
东北大学秦皇岛分校计算机组成原理优秀课程设计.doc_第2页
第2页 / 共22页


点击查看更多>>
资源描述
东北大学秦皇岛分校 计算机和通信工程学院 计算机组成原理课程设计 指令设计及工作寄存器设计 专业名称 班级学号 学生姓名 指导老师 设计时间 课程设计任务书 专业:计算机和通信工程学院 学号: 学生姓名(署名): 设计题目:指令系统及工作寄存器设计 1、设计试验条件 综合楼808试验室 硬件:PC机 软件:Xilinx ISE ModelSim 编程语言:VHDL 2、设计任务及要求 1. 指令:7、20、47、60号指令; 2. 工作寄存器W; 3. 二-十进制编码器; 要求:•总线结构:单总线,数据总线位数8位、地址总线8位; •存放器:内存容量64K*8bit •控制器:用硬联线控制器实现26位微操作控制信号 •运算器:单累加器,实现加、减等8种操作 •外设: –输入:用开关输入二进制量 –输出:7段数码管和LED显示 •指令系统规模:64条指令,7种类型,5种寻址方法 3、设计汇报内容 (1)设计目标: 1、 融会贯通计算机组成原理课程内容,经过知识综合利用,加深对计算机系统各个模块工作原理及相互联络认识; 2、 学习利用VHDL进行FPGA/CPLD设计基础步骤和方法,熟悉EDA设计、模拟调试工具使用,体会FPGA/CPLD技术相对于传统开发技术优点; 3、 培养科学研究独立工作能力,取得工程设计和组装调试实践经验。 (2)设计主体: 图1 整机逻辑结构框图 图2 芯片引脚 图3 cpu逻辑结构框图 【设计指令系统】 (1) 设计指令 指令编号 指令助记符 机器码1 机器码2 指令功效 7 ADD A, EM 000110 MM 将存放器MM地址值加入累加器A中 20 SUB C A, #II 010011 II 从累加器A中减去立即数II,减进位 47 _INT_ 101110 试验机占用,不可修改,进入中止时,试验机硬件产生_INT_指令 60 RETI 111011 中止返回 表1 指令类型、寻址方法 第7条指令: ADD A, EM 指令类型:算术运算指令 寻址方法:寄存器寻址和直接寻址 第20条指令: SUB C A, #II 指令类型:逻辑运算指令 寻址方法:存放器直接寻址 第47条指令: _INT_ 指令类型:转移指令 寻址方法:寄存器间接寻址 第60条指令: RETI 指令类型:转移指令 寻址方法:寄存器直接寻址 (2)控制信号 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做何种运算。 (3)指令实施步骤: 表2 指令分解和微操作对应控制信号 编号 助记符 功效 机器码 周期 总数CT 节拍数 微操作 控制信号 1 _FATCH_ 取指令 000000XX T2 PC→MAR PCOE, MAREN 010 T1 EM→W EMEN, EMRD, WEN T0 W→IR PC + 1→PC IREN 20 SUBC A, #II 从累加器A中减去间址存放器值,带进位 010011XX T5 PC→MAR PCOE MAREN 101 T4 EM→DBUS→W PC+1→PC EMEN EMRD WEN T3 A,W→ALU→F ALU→A FEN AEN 7 ADD A, EM 将存放器EM地址值加入累加器A中 000110XX T7 PC→MAR PCOE, MAREN T6 EM→W PC+1→PC EMEN EMRD WEN 111 T5 W→MAR MAREN T4 EM→W PC+1→PC EMEN EMRD WEN T3 A+W→A S=001 X=100 AEN 47 _INT_ 产生中止 101110XX T4 PC→DBUS→ST PCOE, X=011,STEN PC,IA,ST,IR T3 Z→PC PC,IA,ST,IR 60 RETI 中止返回 111011XX T3 ST→PC ST,DBUS,PC,IR 步骤图: 1、第7条指令 ADD A, EM PCOE, MAREN T7 PC→MAR EMEN EMRD WEN T6 EM→W PC+1→PC W→MAR MAREN T5 EM→W PC+1→PC EMEN EMRD WEN T4 S=001 X=100 AEN T3 A+W→A 2、第20条指令SUBC A, #II PCOE MAREN EMEN EMRD WEN FEN AEN T3 T5 T4 A,W→ALU→F ALU→A EM→DBUS→W PC+1→PC PC→MAR DI 3、第47条指令 PCOE, X=011,STEN PC,IA,ST,IR PC,IA,ST,IR T4 PC→DBUS→ST PC,IA,ST,IR T3 Z→PC 4、第60条指令 ST,DBUS,PC,IR T3 ST→PC 【模型及实现(工作寄存器W)】 (1)逻辑电路图形符号表示: 图4 工作寄存器逻辑电路图 图5 工作寄存器RTL逻辑电路图 图5 工作寄存器FDC逻辑电路图 (2)逻辑电路功效:暂存和传送数据 (3)仿真测试: 图6 波形分析图 图7 结果显示图 结果分析: D为数据输入、R为数据输出、CLK为时序控制、EN为读写控制端、RST为复位端、R为数据输出。所以因为RST为1,即使D端输入数据为:1011,输出端仍为0(从波形能够看出来),EN为0,表示写数据。 (4)VDHLM描述以下: library IEEE; use IEEE.STD_LOGIC_1164.ALL; use IEEE.STD_LOGIC_ARITH.ALL; use IEEE.STD_LOGIC_UNSIGNED.ALL; ---- Uncomment the following library declaration if instantiating ---- any Xilinx primitives in this code. --library UNISIM; --use UNISIM.VComponents.all; entity REG is PORT (CLK : IN STD_LOGIC ; D : IN STD_LOGIC_VECTOR(15 DOWNTO 0); EN : IN STD_LOGIC; RST : IN STD_LOGIC; R: OUT STD_LOGIC_VECTOR(15 DOWNTO 0)); end REG; architecture Behavioral of REG is SIGNAL Q1 : STD_LOGIC_VECTOR(15 DOWNTO 0); --类似于在芯片内部定义一个数据暂存节点 begin PROCESS (CLK,Q1) BEGIN IF (RST = '1') THEN Q1 <= "0000"; ELSE IF (CLK'EVENT AND CLK = '1' )THEN IF(EN = '0') THEN Q1 <= D ; ELSE Q1 <= "XXXXXXXXXXXXXXXX"; END IF; END IF; END IF; END PROCESS ; R <= Q1 ; end Behavioral; 【逻辑功效实现(二-十进制编码器)】 (1)二-十进制功效表以下所表示:  (2)逻辑电路设计  逻辑电路图形符号表示、功效 : 图8 二-十进制编码器功效将输入数字信号变成对应输出二进制信号 系统实现   LIBRARY IEEE;  USE IEEE.STD_LOGIC_1164.ALL;  USE IEEE.STD_LOGIC_UNSIGNED.ALL; entity SY3is Port ( d : in STD_LOGIC_VECTOR (9 downto 0); clk : in STD_LOGIC; e : in STD_LOGIC; q : out STD_LOGIC_VECTOR (3 downto 0)); end SY3; architecture Behavioral of SY3 is begin p1:process(d) begin if (d(0)='0' AND e='0') THEN Q<="0000"; ELSIF (d(1)='0' AND e='0') THEN Q<="0001"; ELSIF (d(2)='0' AND e='0') THEN Q<="0010"; ELSIF (d(3)='0' AND e='0') THEN Q<="0011"; ELSIF (d(4)='0' AND e='0') THEN Q<="0100"; ELSIF (d(5)='0' AND e='0') THEN Q<="0101"; ELSIF (d(6)='0' AND e='0') THEN Q<="0110"; ELSIF (d(7)='0' AND e='0') THEN Q<="0111"; ELSIF (d(8)='0' AND e='0') THEN Q<="1000"; ELSIF (d(9)='0' AND e='0') THEN Q<="1001"; ELSIF ( e='1') THEN Q<="1111"; END IF; END PROCESS P1; end Behavioral; (3)仿真测试 仿真过程以下: (1) 在sources窗口处右击,加入新源文件 (2)创建波形仿真激励文件.tbw:选Test Bench Waveform,并输入文件名  (3)初始化时钟周期及相关参数→finish (4)右侧会出现 .tbw文件窗口,设置输入引脚值,存盘 (5)左侧sources窗口选择“behavioral simulation”,下面processes窗口会自动出现"Modelsim Simulator"  (6)双击其中“Simulate behavioral model”会自动调用“Modelsim ”进行仿真,观察波形窗口,观察是否正确 图9 波形显示图  图10  二-十进制编码器结果分析图  仿真证实:所设计二-十进制编码器能将输入数字信号变成对应输出二进制信号。   (4)RTL级逻辑电路 图11 RTL级逻辑电路 四.心得和体会 经过此次课程设计我学习到了利用VHDL进行FPGA/CPLD设计基础步骤和方法,熟悉EDA设计、模拟调试工具使用,体会FPGA/CPLD技术相对于传统开发技术优点,同时培养科学研究独立工作能力,取得工程设计和组装调试实践经验。  不过在此过程中也碰到了很多困难,比如在设计开始阶段对于XILINX ISE 和Modelsim SE这两个软件就不会用,经过和同学交流我大约了解了软件使用方法,学习到了很多知识。 五.参考资料 [1]袁静波.计算机组成和结构[M].北京:机械工业出版社,.8. [2]程晓荣,翟学明,王晓霞. 计算机组成和结构[M].北京:中国电力出版社,.  [3]陈耀和.VHDL语言设计技术[M]. 北京:电子工业出版社,.  [4]汉泽西.EDA技术及其应用[M]. 北京:北京航空航天出版社,  [5]李云松,宋锐.Xilinx FPGA 数据基础(VHDL)版[M] .陕西:西安电子科技大学出版社,.
展开阅读全文

开通  VIP会员、SVIP会员  优惠大
下载10份以上建议开通VIP会员
下载20份以上建议开通SVIP会员


开通VIP      成为共赢上传

当前位置:首页 > 学术论文 > 其他

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        抽奖活动

©2010-2026 宁波自信网络信息技术有限公司  版权所有

客服电话:0574-28810668  投诉电话:18658249818

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :微信公众号    抖音    微博    LOFTER 

客服