东北大学秦皇岛分校标志寄存器设计_第1页
东北大学秦皇岛分校标志寄存器设计_第2页
东北大学秦皇岛分校标志寄存器设计_第3页
东北大学秦皇岛分校标志寄存器设计_第4页
东北大学秦皇岛分校标志寄存器设计_第5页
已阅读5页,还剩10页未读 继续免费阅读

下载本文档

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

文档简介

1、东北大学秦皇岛分校计算机与通信工程学院计算机组成原理课程设计指令系统及标志寄存器设计专业名称计算机科学与技术班级学号学生姓名指导教师设计时间2014.12.262015.1.8课程设计任务书专业:计算机科学与技术 学号: 学生姓名(签名): 设计题目:1、设计实验条件808实验室硬件:PC机软件:Xilinx ISE ModelSim 编程语言:VHDL2、设计任务及要求 11号指令的设计; 22号指令的设计; 36号指令的设计; 53号指令的设计; 标志寄存器F; 模为60,具有异步复位、同步置数功能的8421BCD码计数器3、设计报告的内容3.1设计题目与设计任务(设计任务书)题目:1、1

2、6位模型机设计指令系统及标志寄存器设计表1 指令系统设计表指令编号指令助记符机器码指令功能11ADDC A, EM001010XX将存储器EM地址的值加入累加器A中带进位22AND A, R?010101XX累加器A“与”间址存储器的值36MOV R?, #II100011XX将立即数II送到寄存器R?中53RR A110100XX累加器A右移2、模型机硬件设计:标志寄存器F3、逻辑电路设计:模为60,具有异步复位、同步置数功能的8421BCD码计数器3.2 前言(绪论)(设计的目的、意义等)1.融会贯通计算机组成原理课程的内容,通过知识的综合运用,加深对计算机系统各个模块的工作原理及相互联系

3、的认识; 2.学习运用VHDL进行FPGA/CPLD设计的基本步骤和方法,熟悉EDA的设计、模拟调试工具的使用,体会FPGA/CPLD技术相对于传统开发技术的优点; 3.培养科学研究的独立工作能力,取得工程设计与组装调试的实践经验。3.3 设计主体(各部分设计内容、分析、结论等)图1芯片引脚: 图1 整机逻辑结构框图图2 芯片引脚图CPU逻辑结构框图:图3【设计指令系统】图2 芯片引脚图图3 CPU逻辑框图1、指令系统设计表2 指令类型、寻址方式表第11条指令: ADDC A, EM指令类型:算术运算指令寻址方式:存储器直接寻址第22条指令: AND A, R?指令类型:逻辑运算指令寻址方式:

4、寄存器间接寻址第36条指令: MOV R?, #II指令类型:数据传送指令寻址方式:立即数寻址第53条指令: RR A指令类型:移位操作指令寻址方式:寄存器直接寻址 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读出的数据打

5、入指令寄存器IR。7、EINT: 中断返回时清除中断响应和中断请求标志,便于下次中断。8、ELP: PC打入允许,与指令寄存器IR3、IR2位结合,控制程序跳转。9、FSTC:进位置1,CY=110、 FCLC:进位置0,CY=011、MAREN:将地址总线ABUS上的地址打入地址寄存器MAR。12、MAROE:将地址寄存器MAR的值送到地址总线ABUS上。13、OUTEN:将数据总线DBUS上数据送到输出端口寄存器OUT里。14、STEN: 将数据总线DBUS上数据存入堆栈寄存器ST中。15、 RRD: 读寄存器组R0-R3,寄存器R?的选择由指令的最低两位决定。16、 RWR: 写寄存器组

6、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、 指令执行流程表3 指令分解与微操作对应控制信号表编号助记符功能机器码周期总数CT节拍数微操作控制信号1_FATCH_取指令00

7、0000XXT2PCMARPCOE, MAREN010T1EMWEMEN, EMRD, WENT0WIRPC + 1PCIREN11ADDC A, EM将存储器EM地址的值加入累加器A中001000XXT7PCMARPCOE, MARENT6EMMARPC+1PCEMEN EMRD MAREN111T5EMWEMEN EMRD WENT4ALU(A+W) DS2S1S0=000 FSTCT3DAAEN22AND A, R?累加器A“与”间址存储器的值010101XX101T5R?MARRRD MARENT4EMDBUSWPC+1PCEMEN EMRD WENT3ALU (A,W)AS2S1S0

8、=011 FEN AEN 36MOV R?, #II将立即数II送到寄存器R?中100011XXT5PCMARPCOE, MAREN101T4EMDBUSWPC+1PCEMEN EMRD WENT3WR?RWR 53 RR A累加器A右移110100XX 100 T4RDBUSW RRD WEN T3ALU (A,W)A AEN FEN CN指令执行流程图: ADDC A, EM AND A, R? MOV R?, #II RR APCMAR RDBUSW PCMAR R?MAREMMAR,PC+1PC EMDBUSWPC+1PCALU(A,W)AEMDBUSWPC+1PC EMW ALU(A

9、+W)AALU(A+W)D WR? DA图4 指令执行流程图【模型及实现(标志寄存器F)】(1) 逻辑电路的图形符号表示、功能图4 标志寄存器逻辑电路图形符号图(2)初始化的波形图:图5 初始化的波形图(3) RTL级逻辑电路: 图6 RTL级逻辑电路图(4)功能仿真:图7 仿真图 (5)实验代码: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

10、 instantiating- any Xilinx primitives in this code.-library UNISIM;-use UNISIM.VComponents.all;entity abc is Port(OFC:in STD_LOGIC; SF:in STD_LOGIC;ZF:in STD_LOGIC;PF:in STD_LOGIC;CF:IN STD_LOGIC;CLK:IN STD_LOGIC;COFC:OUT STD_LOGIC;CSF:OUT STD_LOGIC;CZF:OUT STD_LOGIC;CPF:OUT STD_LOGIC;CCF:OUT STD_LO

11、GIC);end abc;architecture Behavioral of abc isbeginPROCESS(CLK)ISBEGINIF(CLK'EVENT AND CLK='1')THEN IF(OFC='1')THEN COFC<='1' ELSE COFC<='0' END IF; IF(SF='1')THEN CSF<='1' ELSE CSF<='0' END IF; IF(ZF='1')THEN CZF<=&#

12、39;1' ELSE CZF<='0' END IF; IF(PF='1')THEN CPF<='1' ELSE CPF<='0' END IF; IF(CF='1')THEN CCF<='1' ELSE CCF<='0' END IF; END IF;END PROCESS;end Behavioral;【模型及实现(模为60,具有异步复位、同步置数功能的8421BCD码计数器)】(1) 逻辑电路的图形符号表示、功能图8 计数器逻辑电路图(2)

13、初始化的波形图:图9 初始化波形图( 3 ) RTL级逻辑电路:图10 RTL 级逻辑电路图(4)功能仿真:图11 功能仿真图 (5)实验代码:LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;USE IEEE.STD_LOGIC_UNSIGNED.ALL;ENTITY cntm60 IS PORT(ci:IN STD_LOGIC; nreset:IN STD_LOGIC; load:IN STD_LOGIC; d:IN STD_LOGIC_vector(7 downto 0); clk:IN STD_LOGIC; co:OUT STD_LOGIC; qh:BU

14、FFER STD_LOGIC_VECTOR(3 DOWNTO 0); ql:BUFFER STD_LOGIC_VECTOR(3 DOWNTO 0);END cntm60;ARCHITECTURE behave OF cntm60 ISBEGIN co<='1' WHEN(qh="0101" AND ql="1001" AND ci='1')else'0' process(clk,nreset) BEGIN IF(nreset='0')THEN qh<="0000&quo

15、t; ql<="0000" ELSIF(clk'EVENT AND clk='1')THEN IF(load='1')THEN qh<=d(7 downto 4); ql<=d(3 downto 0); ELSIF(ci='1')then IF(ql=9)then ql<="0000" IF(qh=5)then qh<="0000" else qh<=qh+1 end if;elseql<=ql+1; end if; end if; en

16、d if; end process; end behave;3.4 结束语(设计的收获、体会等)这次课程设计,让我再次回顾了指令和标志寄存器的作用和功能。设计最初,我们不知道如何设计实现标志寄存器的功能。在设计的过程中也发现了自己的不足之处,对以前所学过的知识理解得不够深刻,掌握得不够牢固。这次课程设计中用到了Xilinx ISE和ModelSim两个软件,还用到了一种新的编程语言VHDL,在课设之前我是没有接触过的,所以一切都是从头学起,通过和同学交流以及查阅一些资料,大致上掌握了运用VHDL进行FPGA/CPLD设计的基本步骤和方法,熟悉了EDA的设计、模拟调试工具的使用,在使用过程中体会

17、到了FPGA/CPLD技术相对于传统开发技术的优点,总体上是积累了很多实践经验。在整个设计过程中,关于内容一,相关指令的执行流程的设计,相对来说比较容易,按着老师课上讲的内容也比较容易设计出来指令流程以及需要的控制信号,但是在做内容二,标志寄存器,它涉及到ALU的各种运算、中断系统及其他一些不常见的功能,由于涉及面比较广,我们在有限的时间内没法完成,最终只能实现标志寄存器简单的储存与输出。不过最后在努力下还是完成了,其实在整个过程中,最大的难题还是需要用到的两个软件还有VHDL语言,由于时间短而且之前也没有接触过,所以在开始时,还是花了很多时间熟悉这两个软件,而对于VHDL这种硬件编程语言,它不同于以前学习的软件编程语言,通过课设也只是了解了皮毛,要想真正的掌握还需要课下更多的学习。3.5 参考资料1 李云松,宋锐Xilin

温馨提示

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

评论

0/150

提交评论