东北大学秦皇岛分校组成原理课设2015年_第1页
东北大学秦皇岛分校组成原理课设2015年_第2页
东北大学秦皇岛分校组成原理课设2015年_第3页
东北大学秦皇岛分校组成原理课设2015年_第4页
东北大学秦皇岛分校组成原理课设2015年_第5页
已阅读5页,还剩12页未读 继续免费阅读

下载本文档

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

文档简介

1、东北大学秦皇岛分校计算机与通信工程学院计算机组成原理课程设计专业名称计算机科学与技术班级学号学生姓名指导教师设计时间2013.12.232014.1.3专业:计算机与通信工程学院 学号: 姓名(签名): 设计题目:指令系统及地址译码器一、 设计实验条件808实验室二、设计任务及要求 1. 指令:19、27、32、36号指令; 2. 地址译码器; 3. 带异步清零和计数使能的十进制计数器。三、设计报告的内容1设计题目与设计任务题目:指令系统及地址译码器设计任务:1. 指令:19、27、32、36号指令;2. 地址译码器;3. 带异步清零和计数使能的十进制计数器。2前言融会贯通计算机组成原理课程的

2、内容,通过知识的综合运用,加深对计算机系统各个模块的工作原理及相互联系的认识;学习运用VHDL进行FPGA/CPLD设计的基本步骤和方法,熟悉EDA的设计、模拟调试工具的使用,体会FPGA/CPLD技术相对于传统开发技术的优点;培养科学研究的独立工作能力,取得工程设计与组装调试的实践经验。3设计主体3.1模型机设计1. 指令系统设计:第19号指令:助记符:SUBC  A,  MM 格式:操作码和地址码。 功能:从累加器A中减去寄存器MM地址的值,减进位。 寻址方式:寄存器直接寻址。 第27号指令:助记符:OR A, MM 格式:操作码和地址码。 功能:累加器A“或”存储器M

3、M地址的值 寻址方式:寄存器直接寻址。第32号指令:助记符:MOV A, #II 格式:操作码和地址码。 功能:将立即数II送到累加器A中 寻址方式:立即数寻址第36号指令:助记符:MOV R?, #II 格式:操作码和地址码。 功能:将立即数II送到寄存器R?中 寻址方式:立即数寻址2. 模型机硬件设计:题目:地址译码器图 Error! Main Document Only. 地址译码器功能:是将二进制代码所表示的相应信号“翻译”出来并且制定改址区域。3. 逻辑电路设计:题目:带异步清零和计数使能的十进制计数器图 Error! Main Document Only. 带异步清零和计数使能的十

4、进制计数器功能:输出端cout根据Q(计数00001001)而判断是否进位,从而实现十进制计数器功能。3.2系统设计3.2.1 模型机逻辑框图图 Error! Main Document Only. 整体逻辑框图图 Error! Main Document Only. 芯片引脚逻辑框图图 5 CPU 逻辑框图3.2.2 微操作控制信号1、XRD : 外部设备读信号,当给出2了外设的地址后,输出此信号,从指定外设读数据。2、EMWR: 程序存储器EM写信号。3、EMRD: 程序存储器EM读信号。4、PCOE: 将程序计数器PC的值送到地址总线ABUS上(MAR)。5、EMEN: 将程序存储器EM

5、与数据总线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,CY=011、MAREN:将地址总线ABUS上的地址打入地址寄存器MAR。12、MAROE:将地址寄存器MAR的值送到地址总线ABUS上。13、OUTEN:将数据总线DBUS上数据送到输出端口寄存器OUT里。14、STEN:

6、 将数据总线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三位组合

7、决定ALU做何种运算。3.2.3 指令执行流程第19、27、32、36号指令用表格表示如下:表 1 指令流程表编编号助 记 符功 能机 器 码周 期 总 数 CT节 拍 数微 操 作控 制 信 号涉 及 的 硬 件1_FATCH_取指令000000XX010T2PCMARPCOE MARENPC, MAR , EM, W , IRT1EMWEMEN EMRD WENT0WIRPC + 1IREN19SUBC A, EM从累加器A中减去存储器的值,带进位010010XX110T6PCMARPC+1PC PCOE,EMRD, MARENPC, MAR, EM, W, A,ALU, FT5 EMMA

8、REMEN,EMRD,MARENT4EMWEMEN,EMRD,WENT3ALU(A-W)AS=101,AEN,CN=1,FEN27OR A, EM累加器A“或”存储器EM地址的值011010XX110T6 PCMARPCOE,MARENPC, MAR, EM, W, A,ALU, FT5EMMARPC+1PC EMEN,EMRD, MARENT4EMWEMEN,EMRD,WENT3ALU(A-W)AS=010,AEN,CN=1,FEN32MOV A, #II将立即数II送到累加器A中011111XX101T5PCMARPCOE MARENPC, MAR, EM, W, A,ALUT4EMWEM

9、EN,EMRD,WENT3WAAEN36MOV R?, #II将立即数II送到寄存器R?中100011XX101T5PCMARPCOE MARENPC, MAR, EM, W, DBUS, RT4EMWPC+1PCEMEN,EMRD,WENT3WRX2X0,RWD图 Error! Main Document Only. 第1号指令流程图图 Error! Main Document Only. 第19号指令图图 Error! Main Document Only. 第27号指令流程图图 10第36号程图图 9 第32流程图3.3系统实现模型机实现(1)逻辑电路的图形符号表示、功能图 Error!

10、 Main Document Only. 地址译码器、功能描述:是将二进制代码所表示的相应信号“翻译”出来并且制定改址区域。(2)系统实现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.VC

11、omponents.all;entity addressDecoder is Port ( address : in STD_LOGIC_VECTOR(15 DOWNTO 0); ram : out STD_LOGIC; rom : out STD_LOGIC);end addressDecoder;architecture Behavioral of addressDecoder isbeginRAM <='1' WHEN( address >= x"0000" and address <= x"3FFF")else

12、'0'ROM <='1' when(Address >= x"4000" and Address <= x"FFFF")else '0'end Behavioral;图 Error! Main Document Only.带异步清零和计数使能的十进制计数器2. 逻辑电路设计(1)逻辑电路的图形符号表示、功能功能:输出端cout根据Q(计数00001001)而判断是否进位,从而实现十进制计数器功能。(2)系统实现library IEEE;use IEEE.STD_LOGIC_1164.ALL

13、;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 counter is Port ( clk : in STD_LOGIC; rst : in STD_LOGIC; en : in STD_LOGIC; Q : BUFFER

14、STD_LOGIC_VECTOR (3 downto 0); cout : out STD_LOGIC);end counter;architecture Behavioral of counter isbeginprocess(clk,rst,en)beginif (rst = '1') then Q <="0000"elsif (clk'event and clk='1')thenif (en = '1') thenif (Q < "1001") then Q <= Q + 1

15、;else Q <= "0000"end if;end if;end if;end process;cout <= '1' when Q <= "1001"else '0' end Behavioral;3.3系统测试(一)模型机测试(地址译码器)1. 功能仿真仿真过程如下:l 在sources窗口处右击,加入新的源文件l 创建波形仿真激励文件.tbw:选Test Bench Waveform,并输入文件名test_addressl 初始化时钟周期及相关参数finashl 右侧会出现 .tbw文件窗口,设

16、置输入引脚的值,存盘l 左侧sources窗口选择“behavioral simulation”,下面processes窗口会自动出现"Modelsim Simulator"图 Error! Main Document Only.地址译码器仿真线输出结果l 双击其中的“Simulate behavioral model”会自动调用“Modelsim ”进行仿真,观察波形窗口,观察是否正确通过仿真证实:上述程序能够实现地址译码器当address(150)=0000 0000 0000 0001时,图中可以看出RAM=1,此时地址传到了RAM中。当address(150)=01

17、11 0100 0000 0000时,图中可以看出ROM=1,此时地址传到了ROM中。图 Error! Main Document Only. 地址译码器RTL级逻辑电路2. RTL级逻辑电路(二)硬件测试(带异步清零和计数使能的十进制计数器)1、功能仿真仿真过程如下:l sources窗口处右击,加入新的源文件l 创建波形仿真激励文件.tbw:选Test Bench Waveform,并输入文件名 test_counterl 初始化时钟周期及相关参数finashl 右侧会出现 .tbw文件窗口,设置输入引脚的值,存盘l 左侧sources窗口选择“behavioral simulation”

18、,下面processes窗口会自动 出现"Modelsim Simulator"l 双击其中的“Simulate behavioral model”会自动调用“Modelsim ”进行仿图 Error! Main Document Only.十进制计数器仿真线输出结果真,观察波形窗口,观察是否正确仿真证实:所设计的十进制计数器能实现计数功能,并且能够实现异步清零并带有使能端。例如图中,当rst 1,Q = 0000,当重置 rst = 0 ,使能 en = 1,每当上升沿时,便有Q 自加 1。2、RTL级逻辑电路图 14 十进制计数器RTL级逻辑电路4结束语通过此次课程设计我学习到了运用VH

温馨提示

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

评论

0/150

提交评论