资源描述:
《青岛理工大学过程控制器设计》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、青岛理工大学实验报告实验课程:计算机组成原理I实验日期:2014年11月7日,交报告日期:2014年11月日,成绩:实验地点:现代教育技术中心305(计算机实验室)计算机工程学院,计算机科学与技术专业,班级:计算122班实验指导教师:龚玉玺批阅教师:龚玉玺同组学生姓名郝兴明徐鹏学号201207051201207065一、实验课题按照题目要求设计计算机控制器的基本逻辑(不包括微操作信号产生电路),决定外部的端口(名称、有效电平)和内部各元件的连接,画出系统框图和逻辑图,设计仿真数据,用VHDL编程和仿真。实验内容:用层次结构设计的方法设计控制器的指令部件。下层
2、元件的设计已经在实验3中完成。包括:程序计数器、指令寄存器、数据寄存器、地址寄存器、指令译码器等。本实验只需要做顶层设计。顶层设计功能要求:具有控制器的部分基本功能,能够控制取指令操作、控制访存取数据操作、控制访存存数据操作、指令译码,等。取指令机器周期:把程序计数器的内容送到地址总线,延迟一段时间后把从存储器中读出的指令(通过数据总线读入),送到指令寄存器;每取一个指令字程序计数器加1。取数据机器周期:把地址寄存器的内容送到地址总线,延迟一段时间后把从存储器中读出的数据(通过数据总线)送到数据寄存器。存数据机器周期:把地址寄存器的内容送到地址总线,把数据寄
3、存器中的数据送到数据总线,延迟一段时间后结束。指令译码:假设操作码在指令字的最高3位。提示1:控制器内部数据通路,可以是总线结构,也可以是直接连接结构。提示2:控制器与系统总线的连接方法,有两种结构可以考虑:①程序计数器、指令寄存器、数据寄存器、地址寄存器都与系统总线有直接连接。②只有数据寄存器和地址寄存器与系统总线连接。程序计数器和指令寄存器不与系统总线连接。程序计数器内容必须先送到地址寄存器,然后才能到地址总线。从存储器中读出的指令必须先送到数据寄存器,然后才能到指令寄存器。仿真设计仿真波形数据,模拟取指令、访存取数据、访存存数据等操作。要考虑到所有可能
4、的情况。在实验报告中必须清楚说明仿真波形数据是怎样设计的。二、逻辑设计控制器系统框图…….…….zpc控制器LoadqetrldzaLoaddLoadaLoadid0d7ic0ic7qa7…….qa0qd0qd7zqzdclkCot1Cot0端口说明:Loadq,loadd:数据寄存器的同步置数端口Loada:地址寄存器的同步置数端口Loadi:指令寄存器的同步置数端口zq,zd;数据寄存器的三态控制端口Clk:时钟信号Zpc:程序计数器的三态控制端口Za:地址寄存器的三态控制端口ld:程序计数器的同步置数端口r:程序计数器的同步清零端口et:程序计数器的加
5、1控制端口cot:cot(0),cot(1)分别控制数据寄存器和程序计数器向地址寄存器和指令寄存器的数据传送qd:数据的双向输入输出端口(连接系统数据总线)数据从外部先送到系统总线才可以送到数据寄存器da:地址寄存器输出端口(连接系统地址总线)ic:经过译码器输出的控制信号d:程序计数器的置数端口。控制器逻辑图Y0Y7……….3-8译码器A2A0A1q6q7…..…..…..…..系统总线…..…..…..…..…..q7cldet…..d7d0q5…..q0Loaddd0d7d7d0指令寄存器loadclkCot(0)d7d0d7d0clkLoadqzdz
6、qq0q7Cot(1)数据寄存器q7q0d7d0q0zLoadclk地址寄存器rzclk程序计数器Cot(0)一、VHDL源程序libraryieee;useieee.std_logic_1164.all;useieee.std_logic_arith.all;--ContolUnitentitycontrol_unitisport(--loadd,loadq,loada,loadi同步置数端口高电平有效--zq,zd三态控制端口,低电平有效--zpc,za三态控制端口,高电平有效--clk时钟信号,上升沿有效--ld程序计数器的预置数端口,低电平有效--r
7、程序计数器的清零端口,低电平有效--et控制程序计数器自动加1功能--qd数据从内存读出数据后送入系统总线的输入端,也是输出端口--ic译码器的输出端口,即:控制信号。--cot是控制数据在寄存器间传输的信号--cot(0)控制DR到IR的数据流通--cot(1)控制程序计数器到AR的数据流通--d程序计数器的输入端口loadd,loadq,loada,loadi,zq,zd,clk,ld,r,et,za,zpc:instd_logic;cot:instd_logic_vector(1downto0);qd:inoutstd_logic_vector(7do
8、wnto0);d:inunsigned(7downt