青岛理工大学控制器设计.doc
《青岛理工大学控制器设计.doc》由会员分享,可在线阅读,更多相关《青岛理工大学控制器设计.doc(10页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、【精品文档】如有侵权,请联系网站删除,仅供学习与交流青岛理工大学控制器设计.精品文档.青岛理工大学实 验 报 告 实验课程: 计算机组成原理I 实验日期: 2014 年 11月7日, 交报告日期:2014 年11月 日,成绩:实验地点:现代教育技术中心305(计算机实验室) 计算机工程 学院,计算机科学与技术 专业, 班级:计算122班 实验指导教师: 龚玉玺 批阅教师:龚玉玺同组学生姓名郝兴明徐鹏学号201207051201207065一、 实验课题按照题目要求设计计算机控制器的基本逻辑(不包括微操作信号产生电路),决定外部的端口(名称、有效电平)和内部各元件的连接,画出系统框图和逻辑图,设
2、计仿真数据,用VHDL编程和仿真。实验内容:用层次结构设计的方法设计控制器的指令部件。下层元件的设计已经在实验3中完成。包括:程序计数器、指令寄存器、数据寄存器、地址寄存器、指令译码器等。本实验只需要做顶层设计。顶层设计功能要求:具有控制器的部分基本功能,能够控制取指令操作、控制访存取数据操作、控制访存存数据操作、指令译码,等。取指令机器周期:把程序计数器的内容送到地址总线,延迟一段时间后把从存储器中读出的指令(通过数据总线读入),送到指令寄存器;每取一个指令字程序计数器加1。取数据机器周期:把地址寄存器的内容送到地址总线,延迟一段时间后把从存储器中读出的数据(通过数据总线)送到数据寄存器。存
3、数据机器周期:把地址寄存器的内容送到地址总线,把数据寄存器中的数据送到数据总线,延迟一段时间后结束。 指令译码:假设操作码在指令字的最高3位。提示1: 控制器内部数据通路,可以是总线结构,也可以是直接连接结构。提示2: 控制器与系统总线的连接方法,有两种结构可以考虑: 程序计数器、指令寄存器、数据寄存器、地址寄存器都与系统总线有直接连接。 只有数据寄存器和地址寄存器与系统总线连接。程序计数器和指令寄存器不与系统总线连接。程序计数器内容必须先送到地址寄存器,然后才能到地址总线。从存储器中读出的指令必须先送到数据寄存器,然后才能到指令寄存器。仿真 设计仿真波形数据,模拟取指令、访存取数据、访存存数
4、据等操作。要考虑到所有可能的情况。在实验报告中必须清楚说明仿真波形数据是怎样设计的。二、 逻辑设计控制器系统框图zpc控制器LoadqetrldzaLoaddLoadaLoadid0d7ic0ic7qa7.qa0qd0qd7zqzdclkCot1Cot0端口说明:Loadq,loadd:数据寄存器的同步置数端口Loada:地址寄存器的同步置数端口Loadi:指令寄存器的同步置数端口zq,zd;数据寄存器的三态控制端口Clk:时钟信号Zpc:程序计数器的三态控制端口Za:地址寄存器的三态控制端口ld:程序计数器的同步置数端口r:程序计数器的同步清零端口et:程序计数器的加1控制端口cot:cot
5、(0),cot(1)分别控制数据寄存器和程序计数器向地址寄存器和指令寄存器的数据传送qd:数据的双向输入输出端口(连接系统数据总线)数据从外部先送到系统总线才可以送到数据寄存器da:地址寄存器输出端口(连接系统地址总线)ic:经过译码器输出的控制信号d:程序计数器的置数端口。控制器逻辑图Y0Y7.3-8译码器A2A0A1q6q7.系统总线.q7cldet.d7d0q5.q0Loaddd0d7d7d0指令寄存器loadclkCot(0)d7d0d7d0clkLoadqzdzqq0q7Cot(1)数据寄存器q7q0d7d0q0zLoadclk地址寄存器rzclk程序计数器Cot(0)三、 VHDL
6、源程序library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_arith.all;-ContolUnitentity control_unit isport-loadd,loadq,loada,loadi同步置数端口高电平有效-zq,zd三态控制端口,低电平有效-zpc,za三态控制端口,高电平有效-clk时钟信号,上升沿有效-ld程序计数器的预置数端口,低电平有效-r程序计数器的清零端口,低电平有效-et控制程序计数器自动加1功能-qd数据从内存读出数据后送入系统总线的输入端,也是输出端口-ic译码器的输出端口,即:控制信号。-
7、cot是控制数据在寄存器间传输的信号-cot(0)控制DR到IR的数据流通-cot(1)控制程序计数器到AR的数据流通-d程序计数器的输入端口loadd,loadq,loada,loadi,zq,zd,clk,ld,r,et,za,zpc : in std_logic;cot : in std_logic_vector(1 downto 0);qd : inout std_logic_vector(7 downto 0);d : in unsigned(7 downto 0);ic : out std_logic_vector(7 downto 0);qa : out std_logic_ve
8、ctor(7 downto 0)end control_unit;architecture behave of control_unit is-数据总线和地址总线-signal ABUS : std_logic_vector(7 downto 0);-signal DBUS : std_logic_vector(7 downto 0);-引用地址寄存器component address_register port -load同步并行置数-z三态输出 z=1 is valide signal-d输入-q输出load ,z ,clk : in std_logic;d : in std_logic_
9、vector(7 downto 0);q : out std_logic_vector(7 downto 0)end component;-引用数据寄存器component data_register port-clk时钟信号-zq控制q端口的三态-zd控制d端口的三态-load1,load2同步并行置数.loadd控制d,loadq控制q-d输入输出双向端口-q输入输出端口clk,zd,zq,loadd,loadq : in std_logic;d : inout std_logic_vector(7 downto 0);q : inout std_logic_vector(7 downto
10、 0)end component;-引用译码器component decodeportA : in std_logic_vector(2 downto 0);-输入Y : out std_logic_vector(7 downto 0)-输出end component;-引用程序计数器component eight_countport -et控制自动加1的端口-clk时钟信号-c进位输出-z三态们 z=1-ld预制数控制端 ld=0-r同步清零端 r=0有效et,clk,z,ld,r :in std_logic;c : out std_logic;d : in unsigned(7 downt
11、o 0);q : out unsigned(7 downto 0)end component;-引用指令寄存器component instruction_registerportclk ,load : in std_logic;d : in std_logic_vector(7 downto 0);q : out std_logic_vector(7 downto 0)end component;-在程序计数器和地址寄存器之间的内部信号signal pcdr : std_logic_vector(7 downto 0);signal USpcdr : unsigned(7 downto 0);
12、-在数据寄存器到指令寄存器之间的内部信号signal drir : std_logic_vector(7 downto 0);signal deir : std_logic_vector(7 downto 0);-暂存信号signal t1 : std_logic_vector(7 downto 0);signal t2 : std_logic_vector(7 downto 0);signal t3 : std_logic_vector(7 downto 0);begin P1 : process(cot) begin if cot(1) = 0 then t1(Z); else t1=pc
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 青岛 理工大学 控制器 设计
限制150内