文档库 最新最全的文档下载
当前位置:文档库 › 微程序控制器

微程序控制器

微程序控制器
微程序控制器

实验六、微程序控制器

一.实验目的

1.掌握微程序控制器的组成、工作原理;

2.明确微程序、微指令、微命令的概念;

3.掌握微指令、微程序的设计及调试方法;

4.通过单步方式执行若干条微指令深入理解微程序控制器的工作原理;

5.用逻辑分析仪测试微程序控制器指令的转移。

二.实验原理及电路图

实验原理:

微程序控制器是根据数据通路和指令系统来设计的。此处的数据通路是在前面的数据通路实验基础上,增加了指令寄存器IR、微地址寄存器、控制存储器、微命令寄存器、时序电路等形成的。

微程序控制的基本思想,就是仿照通常的解题程序的方法,把操作控制信号编成所谓的“微指令”,存放到一个只读存储器中。当机器运行时,一条又一条地读出这些微指令,从而产生所需要的各种操作控制信号,使相应部件执行所规定的操作。

微程序控制器的设计思想是将每一条机器指令用一段微程序来描述。微程序由若干条微指令组成,而每一条微指令又由若干微命令及一条微指令地址组成,而每一个微命令对应于逻辑电路的一个控制操作。

实验电路图:

其中rom由如下vhdl代码编写:

library ieee;

use ieee.std_logic_1164.all;

use ieee.std_logic_arith.all;

use ieee.std_logic_unsigned.all;

entity rom is

port( a4,a3,a2,a1,a0:in std_logic;

d1,d2,d3,d4,d5,d6,d7,d8,d9,d10,d11,d12,d13,d14,d15,d16,d17,d18,d19,d20,d21,d22,d23,d24,d25, d26,d27,d28:out std_logic);

end rom;

architecture behavioral of rom is

signal sk: std_logic_vector(4 downto 0);

signal sel:std_logic_vector(27 downto 0);

begin

sk<=a4&a3&a2&a1&a0;

sel<="1011000000100000010100000001"when sk="00000"else

"1110100100100000010100000010"when sk="00001"else

"1001001100100000010101101000"when sk="00010"else

"1001101100100000010100000100"when sk="00011"else

"1001001100100000010110000101"when sk="00100"else

"1001000101100000010000000110"when sk="00101"else

"1001000100101001101100000001"when sk="00110"else

"1001000100111011000100000001"when sk="00111"else

"1011000000100000010100010011"when sk="01000"else

"1110100100100000010100010101"when sk="01001"else

"1110100100100000010100010111"when sk="01010"else

"1110100100100000010100011001"when sk="01011"else

"1001000101100000010000011011"when sk="01100"else

"1110100100100000010100011100"when sk="01101"else

"1110100100100000010100000011"when sk="01110"else

"1110100100100000010100011101"when sk="01111"else

"1011000000100000010100010001"when sk="10000"else

"1110100100100000010100010010"when sk="10001"else

"1001010000100000010100010001"when sk="10010"else

"1110100100100000010100010100"when sk="10011"else

"1001001100100000010100010011"when sk="10100"else

"1001101100100000010100010110"when sk="10101"else

"1001001100100000011100000001"when sk="10110"else

"1001101100100000010100011000"when sk="10111"else

"1001010100100000010000000001"when sk="11000"else

"1001101100100000010100011010"when sk="11001"else

"1001001100100000010100000001"when sk="11010"else

"1001000100110000001100000001"when sk="11011"else

"1011001100100000010100000001"when sk="11100"else

"1001101100100000010100011110"when sk="11101"else

"1001001100100000010110011111"when sk="11110"else

"1001000101100000010000000111"when sk="11111";

d1<=sel(27);d2<=sel(26);d3<=sel(25);d4<=sel(24);d5<=sel(23);d6<=sel(22);d7<=sel(21);

d8<=sel(20);d9<=sel(19);d10<=sel(18);d11<=sel(17);d12<=sel(16);d13<=sel(15);d14<=sel(14); d15<=sel(13);d16<=sel(12);d17<=sel(11);d18<=sel(10);d19<=sel(9);d20<=sel(8);d21<=sel(7);

d22<=sel(6);d23<=sel(5);d24<=sel(4);d25<=sel(3);d26<=sel(2);d27<=sel(1);d28<=sel(0);

end behavioral;

波形仿真:

仿真说明:

CLR=1,DP=1,每qd=0->1->0,读取一条微指令。

直接强读:

CLR=1,DP=1,KRD=0->1->0,qd=0->1->0

强写:

CLR=1,DP=1,KWE=1,qd=0->1->0.

三.实验总结

本次实验在前面实验的基础上,增加了指令寄存器IR、微地址寄存器、控制存储器、微命令寄存器、时序电路等。首先将编好的微指令存放到一个只读存储器rom中,当机器运行时,一条一条地读出这些微指令,从而产生所需要的各种操作控制信号,使相应部件执行所规定的操作。通过控制节拍信号发生器,每次产生一个单拍,读出一条微指令,并产生下一条微指令的地址,操作比较简单,如果不手动选择IR5、IR6、IR7三条指令的入口地址,该微程序控制器设计默认P1处选择进行强读操作,当直接进入强读操作时,先下达强读的指令,然后再将强读置为无效,然后再进行节拍信号的操作,需要注意的是不能将强读信号一直置为1,这样的后果将直接导致a3一直为一,这样产生的下址将会和rom中定义的发生冲突,这样就会出现非预期的结果。

微程序控制器的设计与实现

微程序控制器的设计与实现 一、设计目的 1、巩固和深刻理解“计算机组成原理”课程所讲解的原理, 加深对计算机各模块协同工作的认识。 2、掌握微程序设计的思想和具体流程、操作方法。 3、培养学生独立工作和创新思维的能力,取得设计与调试的 实践经验。 4、尝试利用编程实现微程序指令的识别和解释的工作流程。 二、设计内容 按照要求设计一指令系统,该指令系统能够实现数据传送,进行加、减运算和无条件转移,具有累加器寻址、寄存器寻址、寄存器间接寻址、存储器直接寻址、立即数寻址等五种寻址方式。 三、设计具体要求 1、仔细复习所学过的理论知识,掌握微程序设计的思想,并根、 据掌握的理论写出要设计的指令系统的微程序流程。指令系统至少要包括六条指令,具有上述功能和寻址方式。 2、根据微操作流程及给定的微指令格式写出相应的微程序 3、将所设计的微程序在虚拟环境中运行调试程序,并给出测试思 路和具体程序段 4、撰写课程设计报告。

四、设计环境 1、伟福COP2000型组成原理实验仪,COP2000虚拟软件。 2、VC开发环境或者Java开发环境。 五、设计方案 (1)设计思想 编写一个指令系统,根据所编写的指令的功能来设计相应的微程序。首先利用MOV传送指令来给寄存器和累加器传送立即数,实现立即数寻址;利用寄存器寻址方式,用ADDC指令对两者进行相加运算;利用寄存器间接寻址方式,用SUB指令实现减运算;利用累加器寻址方式,用CPL指令实现对累加器寻址;利用存储器寻址方式,用JMP 指令实现程序的无条件跳转。这样,所要设计的指令系统的功能就全部实现了。 (2)微指令格式 采用水平微指令格式的设计,一次能定义并执行多个并行操作微命令的微指令,叫做水平型微指令。其一般格式如下: 按照控制字段的编码方法不同,水平型微指令又分为三种:全水平型(不译法)微指令,字段译码法水平型微指令,以及直接和译码相混合的水平型微指令。 (3)24个微指令的意义 COP2000 模型机包括了一个标准CPU 所具备所有部件,这些部件包括:运算器ALU、累加器A、工作寄存器W、左移门L、直通门D、右

硬件基础-微程序控制器实验报告

大学 HUNAN UNIVERSITY 硬件基础实验2 实验报告 一、实验预习 1.书中的图形实现微程序控制器,中间的映射逻辑究竟是怎么实现的? 答:但出现分支时,预设端信号由IR决定。IR为1时信号有效,输出为1. 通过IR的值映射为下址的低三位,从而产生下址。 2.书中设计用到了强写强读,为什么要设计这个功能? 答:满足用户因为没有初始化mif文件时输入数据的需要。

二、实验目的 微程序控制器实验的主要任务:生成CPU里的控制信号,并使程序按正确的顺序执行。核心部分是ROM,存放机器指令的微程序。 1、掌握微程序控制器的组成、工作原理; 2、掌握微程序控制器的基本概念和术语:微命令、微操作、微指令、微 程序等; 3、掌握微指令、微程序的设计及调试方法; 4、通过单步运行若干条微指令,深入理解微程序控制器的工作原理; 二、实验电路 图1 附:电路图过大,请放大观察详情 三、实验原理 将机器指令的操作(从取指到执行)分解为若干个更基本的微操作序列,并将有关的控制信息(微命令)以微码的形式编成微指令输入到控制存储器中。这样,每条机器指令将与一段微程序对应,取出微指令就产生微命令,以实现机器指令要求的信息传送与加工。

四、实验步骤及概述 1)设计状态机部分 a、编写VHDL代码如下 LIBRARY ieee; USE ieee.std_logic_1164.all; ENTITY zhuangtaiji IS PORT ( reset : IN STD_LOGIC := '0'; clock : IN STD_LOGIC; qd : IN STD_LOGIC := '0'; dp : IN STD_LOGIC := '0'; tj : IN STD_LOGIC := '0'; t1 : OUT STD_LOGIC; t2 : OUT STD_LOGIC; t3 : OUT STD_LOGIC; t4 : OUT STD_LOGIC ); END zhuangtaiji; ARCHITECTURE BEHAVIOR OF zhuangtaiji IS TYPE type_fstate IS (idle,st1,s_st2,st4,st2,st3,s_st4,s_st3); SIGNAL fstate : type_fstate; SIGNAL reg_fstate : type_fstate; BEGIN PROCESS (clock,reset,reg_fstate) BEGIN IF (reset='1') THEN fstate <= idle; ELSIF (clock='1' AND clock'event) THEN fstate <= reg_fstate; END IF; END PROCESS; PROCESS (fstate,qd,dp,tj) BEGIN t1 <= '0'; t2 <= '0'; t3 <= '0'; t4 <= '0'; CASE fstate IS WHEN idle => IF (NOT((qd = '1'))) THEN reg_fstate <= st1;

微程序控制器实验2

实 验 项 目 微程序控制器实验实验时间2015年10月31日 实验目的(1) 掌握微程序控制器的组成原理。 (2) 掌握微程序的编制、写入,观察微程序的运行过程。 实 验 设 备 PC机一台,TD-CMA实验系统一套 实验原理 微程序控制器的基本任务是完成当前指令的翻译和执行,即将当前指令的功能转换成可以控制的硬件逻辑部件工作的微命令序列,完成数据传送和各种处理操作。它的执行方法就是将控制各部件动作的微命令的集合进行编码,即将微命令的集合仿照机器指令一样,用数字代码的形式表示,这种表示称为微指令。这样就可以用一个微指令序列表示一条机器指令,这种微指令序列称为微程序。微程序存储在一种专用的存储器中,称为控制存储器,微程序控制器原理框图如图3-2-1 所示。 控制器是严格按照系统时序来工作的,因而时序控制对于控制器的设计是非常重要的,从前面的实验可以很清楚地了解时序电路的工作原理,本实验所用的时序由时序单元来提供,分为四拍TS1、TS2、TS3、TS4,时序单元的介绍见附录2。 微程序控制器的组成见图3-2-2,其中控制存储器采用3 片2816 的E2PROM,具有掉电保 护功能,微命令寄存器18 位,用两片8D 触发器(273)和一片4D(175)触发器组成。微地址寄存器6 位,用三片正沿触发的双D 触发器(74)组成,它们带有清“0”端和预置端。在不判别测试的情况下,T2 时刻打入微地址寄存器的内容即为下一条微指令地址。当T4 时刻进行测试判别时,转移逻辑满足条件后输出的负脉冲通过强置端将某一触发器置为“1”状态,完成地址修改。

在实验平台中设有一组编程控制开关KK3、KK4、KK5(位于时序与操作台单元),可实现对存储器(包括存储器和控制存储器)的三种操作:编程、校验、运行。考虑到对于存储器(包括存储器和控制存储器)的操作大多集中在一个地址连续的存储空间中,实验平台提供了便利 的手动操作方式。以向00H 单元中写入332211 为例,对于控制存储器进行编辑的具体操作步骤如下:首先将KK1 拨至‘停止’档、KK3 拨至‘编程’档、KK4 拨至‘控存’档、KK5 拨至 ‘置数’档,由CON 单元的SD05——SD00 开关给出需要编辑的控存单元首地址(000000),IN 单元开关给出该控存单元数据的低8 位(00010001),连续两次按动时序与操作台单元的开关ST(第一次按动后MC 单元低8 位显示该单元以前存储的数据,第二次按动后显示当前改动的数据),此时MC 单元的指示灯MA5——MA0 显示当前地址(000000),M7——M0 显示当前数据(00010001)。然后将KK5 拨至‘加1’档,IN 单元开关给出该控存单元数据的中8 位(00100010),连续两次按动开关ST,完成对该控存单元中8 位数据的修改,此时MC 单元的指示灯MA5——MA0 显示当前地址(000000),M15——M8 显示当前数据(00100010);再由IN 单元开关给出该控存单元数据的高8 位(00110011),连续两次按动开关ST,完成对该控存单元高8 位数据的修改此时MC 单元的指示灯MA5——MA0 显示当前地址(000000),M23——M16 显示当前数据(00110011)。此时被编辑的控存单元地址会自动加1(01H),由IN 单元开关依次给出该控存单元数据的低8 位、中8 位和高8 位配合每次开关ST 的两次按动,即可完成对后续单元的编辑。

微程序控制器实验

计算机科学与技术系 实验报告 专业名称计算机科学与技术 课程名称计算机组成原理 项目名称微程序控制器实验 班级

学号 姓名 同组人员 实验日期 一、实验目的与要求 实验目的 (1)掌握微程序控制器的组成原理 (2)掌握微程序控制器的编制、写入,观察微程序的运行过程 实验要求 (1)实验之前,应认真准备,写出实验步骤和具体设计内容,否则实验效率会很低,一次实验时间根本无法完成实验任务,即使基本做对了,也很难说懂得了些什么重要教学内容; (2)应在实验前掌握所有控制信号的作用,写出实验预习报告并带入实验室; (3)实验过程中,应认真进行实验操作,既不要因为粗心造成短路等事故而损坏设备,又要仔细思考实验有关内容,把自己想不明白的问题通过实验理解清楚; (4)实验之后,应认真思考总结,写出实验报告,包括实验步骤和具体实验结果,遇到的问题和分析与解决思路。还应写出自己的心得体会,也可以对教学实验提出新的建议等。实验报告要交给教师评阅后并给出实验成绩; 二、实验逻辑原理图与分析 画实验逻辑原理图

逻辑原理图分析 微程序控制器的基本任务是完成当前指令的翻译个执行,即将当前指令的功能转换成可以控制的硬件逻辑部件工作的微命令序列,完成数据传送和各种处理操作。 它的执行方法就是将控制各部件动作的微命令的集合进行编码,即将微命令的集合仿照机器指令一样,用数字代码的形式表示,这种表示成为微指令。这样就可以用一个微指令序列表示一条机器指令,这种微指令序列称为微程序。微程序存储在一种专用的存储器中,称为控制存储器。 三、数据通路图及分析(画出数据通路图并作出分析) (1)连接实验线路,检查无误后接通电源。如果有警报声响起,说明有总线竞争现象,应关闭电源,检查连线,直至错误排除。 (2)对微控制器进行读写操作,分两种情况:手动读写和联机读写。 1、手动读写

实验四常规型微程序控制器组成实验

实验四常规型微程序控制器组成实验 一、实验目的 掌握时序发生器的组成原理。 掌握微程序控制器的组成原理。 二、实验电路 时序发生器 本实验所用的时序电路见图。电路由一个500KHz晶振、2片GAL22V10、一片74LS390组成,可产生两级等间隔时序信号T1-T4、W1-W3,其中一个W由一轮T1-T4组成,相当于一个微指令周期或硬连线控制器的一拍,而一轮W1-W3可以执行硬连线控制器的一条机器指令。另外,供数字逻辑实验使用的时钟由MF经一片74LS390分频后产生。 图时序信号发生器 本次实验不涉及硬连线控制器,因此时序发生器中产生W1-W3的部分也可根据需要放到硬连线控制器实验中介绍。 产生时序信号T1-T4的功能集成在图中左边的一片GAL22V10中,另外它还产生节拍信号 W1-W3的控制时钟CLK1。该芯片的逻辑功能用ABEL语言实现。其源程序如下:MODULE TIMER1 TITLE 'CLOCK GENERATOR T1-T4' CLK = .C.; "INPUT MF, CLR, QD, DP, TJ, DB PIN 1..6; W3 PIN 7; "OUTPUT T1, T2, T3, T4 PIN 15..18 ISTYPE 'REG'; CLK1 PIN 14 ISTYPE 'COM'; QD1, QD2, QDR PIN ISTYPE 'REG';

ACT PIN ISTYPE 'COM'; S = [T1, T2, T3, T4, QD1, QD2, QDR]; EQUATIONS QD1 := QD; QD2 := QD1; ACT = QD1 & !QD2; QDR := CLR & QD # CLR & QDR; T1 := CLR & T4 & ACT # CLR & T4 & ! (DP # TJ # DB & W3) & QDR; T2 := CLR & T1; T3 := CLR & T2; T4 := !CLR # T3 # T4 & !ACT & (DP #TJ# DB& W3) # !QDR; CLK1 = T1 # !CLR & MF; = MF; END 节拍电位信号W1-W3只在硬连线控制器中使用,产生W信号的功能集成在右边一片GAL22V10中,用ABEL语言实现。其源程序如下: MODULE TIMER2 .; "INPUT CLK1, CLR, SKIP PIN 1..3; "OUTPUT W1, W2, W3 PIN 16..18 ISTYPE 'REG'; W = [W1, W2, W3];

微程序控制器的基本原理

微程序控制器的基本原理 1、控制存储器:控制存储器是微程序控制器中的核心部件,通常由只读存储器ROM 器件实现,简称控存。 2、微指令:控制存储器中的一个存储单元(字)表示了某一条指令的某一操作步骤的控制信号,以及下一步骤的有关信息,称该字为微指令。 作用:准确提供了指令执行中的每一步要用的操作信号及下一微指令的地址。 3、微程序:全部微指令的集合称为微程序。 4、微程序控制器的基本工作原理:根据IR(指令寄存器)中的操作码,找到与之对应的控存中的一段微程序的入口地址,并按指令功能所确定的次序,逐条从控制存储器中读出微指令,以驱动计算机各部件正确运行。 5、得到下一条微指令的地址的有关技术:要保证微指令的逐条执行,就必须在本条微指令的执行过程中,能得到下一条微指令的地址。 形成下条微指令地址(简称下地址)可能有下列五种情况: ①下地址为本条微指令地址加1; ②微程序必转某一微地址,可在微指令中给出该微地址值; ③根据状态标志位,选择顺序执行或转向某一地址; ④微子程序的调用及返回控制,要用到微堆栈; ⑤根据条件判断转向多条微指令地址中的某一地址,比③更复杂的情况。 如:若C=1,转移到 A1 微地址; 若S=1,转移到 A2 微地址; 若Z=1,转移到 B1 微地址; 这种情况,在微指令中直接给出多个下地址是不现实的,应找出更合理的解决方案。

微指令的格式和内容: 下地址字段控制命令字段 补充:微指令编码的方法 (1)直接表示法(水平型微指令):操作控制字段中的每一位带代表一个微操作控制信号。如教学实验计算机的微指令56位 (2)编码表示法(垂直型微指令):把一组相斥性的微命令信号组成一个小组,通过小组字段译码器对每一个微命令信号进行译码。 (3)混合表示法:将直接表示法与编码表示法相混合使用。 下地址字段的内容 得到下地址的方法 由指令操作码得到 微指令顺序执行 在微指令下地址字段中表示清楚: 使用哪种方法 哪个判断条件,

微程序控制器实验审批稿

微程序控制器实验 YKK standardization office【 YKK5AB- YKK08- YKK2C- YKK18】

评语: 课中检查完成的题号及题数: 课后完成的题号与题数: 成绩: 自评成绩: 实验报告 实验名称:微程序控制器实验 日 期: 班级:学号: 姓 名: 一、实验目的: 1.掌握微程序控制器的组成原理。 2.掌握微程序的编制、写入,观察微程序的运行过程。 二、实验内容: 1.了解如何将微码加载到微控存中,了解指令并运行。 2.通过微程序控制器实验能得简单运算结果。 3.设计并修改电路,编写用微程序实现存储器中两个单字节十六进制数的加法运算,结果输出至OUT单元。 三、项目要求及分析: 要求:操作数由IN单元输入至MEM,在由MEM中读出操作数并在ALU中运算。 四、具体实现: 1. 按图1-3-10 所示连接实验线路,仔细查线无误后接通电源。如果有‘滴’报警声,说明总线有竞争现象,应关闭电源,检查接线,直到错误排除。

图1-3-10 实验接线图 2. 对微控器进行读写操作,分两种情况:手动读写和联机读写。 1) 手动读写 进行手动读或是写,都需要手动给出地址,系统专门安排了一个ADDR 单元,做为地址输入。ADDR 单元原理如图1-3-11 所示,可以看出本单元实为一个加减计数器。当开关为‘加1’档时,在T2 的下沿计数器进行加1 计数,当开关为‘减1’档时,在T2 的下沿计数器进行减1计数,当开关置为‘置数’档时,计数器置初值,其作用相当于直通,SA7…SA0 的输出值就是二进制开关组的值。 在实验中选择什么档位,取决于写入数据的地址是否连续,如果是连续地址,选 择‘加1’或是‘减1’档会方便一些。如果是离散地址,选择‘置数’档会方便一些。

微程序控制器实验报告 (2)

组成原理No、4实验--- 微程序控制器实验 组员: 组号:21号 时间:周二5、6节?

【实验目的】 (1)掌握时序发生器的组成原理。 (2)掌握微程序控制器的组成原理。 (3)掌握微程序的编制、写入、观察微程序的运行情况 【实验设备】 TDN-CM++, 【实验原理】 微程序控制器的基本任务就是完成当前指令的翻译与执行,即将当前指令的功能转换成可以控制硬件逻辑部件工作的微命令序列,以完成数据传输与各种处理操作。它的执行方法就就是将控制各部件动作的微命令的集合进行编码,即将微命令的集合仿照机器指令一样,用数字代码的形式表示,这种表示称为微指令。这样就可以用一个微指令序列表示一条机器指令,这种微指令序列称为微程序。微程序存储在一种专用的存储器中,该存储器称为控制存储器。 实验所用的时序控制电路框图如图1 所示, 可产生四个等间隔的时序信号TS1~TS4。在 图1中,为时钟信号,由实验台左上方的 方波信号源提供,可产生频率及脉宽可调额 方波信号;STEP就是来自实验板上方中部的 一个二进制开关STEP的模拟信号;START 键就是来自实验板上方左部的一个微动开关 START的按键信号。当STEP开关为EXEC(0)时,一旦按下START启动键,时序信号TS1~TS4将周而复始地发送出去。当STEP为STEP(1)时,按下START启动键,机器便处于单步运行状态,即此时只发送一个CPU周期的时序信号就停机了。利用单步方式,每次只读一条微指令,可以观察微指令的代码与当前微指令的执行结果。另外,如果STEP开关置“STEP”,会使机器停机,CLR开关执行1→0→1操作可以使时序清零。时序状态图如下图所示。 ?由于时序电路的内部线路已经连好,因此只需将时序电路与方波信号源连接,即将时序电路的时钟脉冲输入端接至方波信号发生器输入端H23上,按动启动 键START后,就可产生时序信号TS1~TS4、时序电路的CLR已接至CLR 模拟开关上。 ?编程开关具有三种状态:PROM(编程)、READ(校验)与RUN(运行)。 微指令格式如 下: 【实验步骤】

实验四 微程序控制器原理实验

2015 年 5 月 24 日 课程名称:计算机组成原理实验名称:微程序控制器原理实验 班级:学号:姓名: 指导教师评定:_________________ 签名:_____________________ 一、实验目的: 1.掌握微程序控制器的组成及工作过程; 2.通过用单步方式执行若干条微指令的实验,理解微程序控制器的工作原理。 二、预习要求: 1.复习微程序控制器工作原理; 2.预习本电路中所用到的各种芯片的技术资料。 三、实验设备: EL-JY-II型计算机组成原理实验系统一台,连接线若干。 四、电路组成: 微程序控制器的原理图见图4-1(a)、4-1(b)、4-1(c)。 图4-1(a)控制存储器电路

图4-1(b)微地址形成电路 图4-1(c)微指令译码电路 以上电路除一片三态输出8D触发器74LS374、三片EFPROM2816和一片三态门74LS245,其余逻辑控制电路均集成于EP1K10内部。28C16、74LS374、74LS245

芯片的技术资料分别见图4-2~图4-4. 图4-2(a )28C16引脚 图4-2(b ) 28C16引脚说明 工作方式 /CE /OE /WE 输入/输出 读 后 备 字 节 写 字节擦除 写 禁 止 写 禁 止 输出禁止 L L H H × × L H L L 12V L × × H × L × × H × 数据输出 高 阻 数据输入 高 阻 高 阻 高 阻 高 阻 图4-2(c )28C16工作方式选择 图4-5(a )74LS374引脚 图4-5(b )74LS374功能

图4-8(a)74LS245引脚图4-8(b)74LS245功能 五、工作原理: 1.写入微指令 在写入状态下,图4-1(a)中K2须为高电平状态,K3必须接至脉冲/T1端,否则无法写入。MS1-MS24为24位写入微代码,由24位微代码开关(此次实验采用开关方式)。uA5-uA0为写入微地址,采用开关方式则由微地址开关提供。K1须接低电平使74LS374有效,在脉冲T1时刻,uAJ1的数据被锁存形成微地址(如图4-1(b)所示),同时写脉冲将24位微代码写入当前微地址中(如图4-1(a)所示)。 2.读出微指令 在写入状态下,图4-1(a)中K2须为低电平状态,K3须接至高电平。 K1须接低电平使74LS374有效,在脉冲T1时刻,uAJ1的数据被锁存形成微地址uA5-uA0(如图4-1(b)所示),同时将当前微地址的24位微代码由MS1-MS24输出。 3.运行微指令 在运行状态下,K2接低电平,K3接高电平。K1接高电平。使控制存储器2816处于读出状态,74LS374无效因而微地址由微程序内部产生。在脉冲T1时刻,当前地址的微代码由MS1-MS24输出;T2时刻将MS24-MS7打入18位寄存器中,然后译码输出各种控制信号(如图4-1(c)所示,控制信号功能见实验五);在同一时刻MS6-MS1被锁存,然后在T3时刻,由指令译码器输出的SA5-SA0将其中某几个触发器的输出端强制置位,从而形成新的微地址uA5-uA0,这就是将要运行的下一条微代码的地址。当下一个脉冲T1来到

微程序控制器与组合逻辑控制器的区别

微程序控制器的基本原理详细图解 1、控制存储器:控制存储器是微程序控制器中的核心部件,通常由只读存储器ROM器件实现,简称控存。 2、微指令:控制存储器中的一个存储单元(字)表示了某一条指令的某一操作步骤的控制信号,以及下一步骤的有关信息,称该字为微指令。 作用:准确提供了指令执行中的每一步要用的操作信号及下一微指令的地址。 3、微程序:全部微指令的集合称为微程序。 4、微程序控制器的基本工作原理:根据IR(指令寄存器)中的操作码,找到与之对应的控存中的一段微程序的入口地址,并按指令功能所确定的次序,逐条从控制存储器中读出微指令,以驱动计算机各部件正确运行。 5、得到下一条微指令的地址的有关技术:要保证微指令的逐条执行,就必须在本条微指令的执行过程中,能得到下一条微指令的地址。 形成下条微指令地址(简称下地址)可能有下列五种情况: ①下地址为本条微指令地址加1; ②微程序必转某一微地址,可在微指令中给出该微地址值; ③根据状态标志位,选择顺序执行或转向某一地址; ④微子程序的调用及返回控制,要用到微堆栈; ⑤根据条件判断转向多条微指令地址中的某一地址,比③更复杂的情况。 如:若C=1,转移到 A1 微地址; 若S=1,转移到 A2 微地址; 若Z=1,转移到 B1 微地址; 这种情况,在微指令中直接给出多个下地址是不现实的,应找出更合理的解决方案。

计算机的微程序控制器和组合逻辑控制器(硬连线)在组成和运行原理上有何 相同和不同之处?它们各有哪些优缺点? 答:微程序的控制器和组合逻辑的控制器是计算机中两种不同类型的控制器。 共同点:①基本功能都是提供计算机各个部件协同运行所需要的控制信号;②组成部分都有程序计数器PC,指令寄存器IR;③都分成几个执行步骤完成每一条指令的具体功能。 不同点:主要表现在处理指令执行步骤的办法,提供控制信号的方案不一样。微程序的控制器是通过微指令地址的衔接区分指令执行步骤,应提供的控制信号从控制存储器中读出,并经过一个微指令寄存器送到被控制部件。组合逻辑控制器是用节拍发生器指明指令执行步骤,用组合逻辑电路直接给出应提供的控制信号。 微程序的控制器的优点是设计与实现简单些,易用于实现系列计算机产品的控制器,理论上可实现动态微程序设计,缺点是运行速度要慢一些。 组合逻辑控制器的优点是运行速度明显地快,缺点是设计与实现复杂些,但随着EDA 工具的成熟,该缺点已得到很大缓解。 组合逻辑控制器和微程序控制器2011-2-15 来源:深圳市恒益机电设备有限公司>>进入该公司展台组合逻辑控制器和微程序控制器,两种控制器各有长处和短处。组合逻辑控制器设计麻烦,结构复杂,一旦设计完成,就不能再修改或扩充,但它的速度快。微程序控制器设计方便,结构简单,修改或扩充都方便,修改一条机器指令的功能,只需重编所对应的微程序;要增加一条机器指令,只需在控制存储器中增加一段微程序,但是,它是通过执行一段微程。具体对比如下:组合逻辑控制器又称硬布线控制器,由逻辑电路构成,完全靠硬件来实现指令的功能。 组合逻辑控制器的设计步骤 ①设计机器的指令系统:规定指令的种类、指令的条数以及每一条指令的格式和功能。

计算机组成原理微程序控制器

任课教师:张芳、许建龙 《计算机组成原理》 (2013-2014学年第2学期) 实 验 报 告 学号: 姓名: 班级:

微程序控制器实验报告 一、实验目的: 1)了解TEC-2机控制器部件的组成 2)熟练掌握56位微指令中各字段的含义 3)可以通过微码自己用监控程序编程序,实现两数相加和相减,以及更复杂 的操作 二、实验仪器: 主机一台 三、简要原理: 1.TEC-2机的控制器部件的组成 TEC-2机控制器部件的关键内容包括: (1)由7片LS6116随机读写存储器芯片组成的56位字长的微程序控制存储器,用于存放TEC-2机的微程序。其内容在刚加电时不定,加电后将首先从2片ROM(LS2716芯片)中读出固化的、用于实现53条机器指令的微程序,经组织后写入这一控制存储器,这一过程称为装入微码。装入完成后,将从监控程序的零地址执行指令,完成TEC-2机的启动过程。这之后,还可以用LDMC指令按规定的办法向控制存储器写入新的微程序,以实现新的机器指令。从简化逻辑框图上可以看到,控制存储器的地址为μRA9~μRA0,读出的信息送微指令流水线寄存器PLR。 (2)微指令寄存器PLR由7片8位的寄存器芯片(6片LS374和1片LS273)组成,用于存放当前微指令的内容,更具体的说明将在后面给出。 (3)微程序定序器AM2910芯片(其内部结构、引脚信号和运行原理等稍候详细说明),是微程序控制器中非常关键、也是稍微难懂一点的部分。在学习中要正确理解。它的核心功能是依据机器的运行状态与当前微指令的有关内容等,正确地形成下一条微指令的地址,以保证微程序按要求的微指令序列关系自动地逐条衔接执行。 (4)程序计数器PC和当前指令地址寄存器IP,是用运算器通用寄存器组中的两个选定的寄存器R5和R6实现的,这在图上见不到。 (5)指令寄存器IR,用于存放当前正在执行的指令内容。 (6)为AM2910提供输入地址信号的配套线路,包括: ①由两片LS2716 ROM芯片组成的MAPROM,它将指令寄存器中的操作码转换成一段微程序的入口地址;

微程序控制器实验报告

微程序控制器实验报告文件编码(008-TTIG-UTITD-GKBTT-PUUTI-WYTUI-8256)

一、实验目的 1、通过实验,进一步理解微程序控制器的组成结构。理解微程序控制器的控 制原理 2、加深理解微程序控制器的工作原理。掌握指令流程与功能 3、理解掌握微程序控制器的设计思路与方法 二、实验内容与步骤 1、微程序控制器的组成原理 控制存储器:实现整个指令系统的所有微程序,一般指令系统是规定的由高速半导体存储器构成,容量视机器指令系统而定,取决于微程序的个数,其长度就是微指令字的长度。 微指令寄存器:存放从控存读出的当前微指令。微操作控制字段将操作控制信号送到控制信号线上,微地址字段指出下一条微地址的形成。 微地址寄存器:存放将要访问的下一条微指令地址 地址转移逻辑:形成将要执行的微指令地址,形成方式: 取指令公操作所对应的微程序一般从控存的0地址开始,所以微程序的人口地址0是由硬件控制的。当出现分支时,通过判别测试字段、微地址字段、和执行部件的反馈信息形成后即微地址。 Cpu设计步骤: 1.拟定指令系统 2.确定总体结构(数据通路) 3.安排时序

4.拟定指令流程。根据指令系统,写出对应所有机器指令的全部微操作机器 节拍安排,然后列出操作时间表 5.确定微指令的控制方式、下地址形成方式、微指令格式及微指令字长,编 写全部的微指令的代码,最后将编写的微指令放入控制存储器中。 微程序控制器的设计步骤 (1)设计微程序 确定微程序流程图,也就是控制算法流程图。 (2)确定微指令格式 微指令格式中的操作控制字段取决于执行部件的子系统需要多少微指令。假定采用直接控制方式,执行部件需要10个微命令,则操作控制字段需要10位。 测试判别字段取决于微程序流程图中有多少处分支转移。假定有3处分支,则测试判别字段需要3位。 下址字段取决于微程序流程图的规模。假定微程序共用50条微指令,则下址字段至少需要6位。这是因为ROM地址译码时,26=64,6位地址可容纳64条微指令。 (3)将微程序编译成二进制代码 (4)微程序写入控制存储器 (5)设计硬件电路 三、实验现象 --CPU 头文件 cpu_defs LIBRARY IEEE; USE cpu_defs IS --定义程序包,包头,包体

实验四 常规型微程序控制器组成实验

实验员述职报告 实验四常规型微程序控制器组成实验 一、实验目的 1.掌握时序发生器的组成原理。 2.掌握微程序控制器的组成原理。 二、实验电路 1.时序发生器 本实验所用的时序电路见图3.4。电路由一个500KHz晶振、2片GAL22V10、一片74LS390组成,可产生两级等间隔时序信号T1-T4、W1-W3,其中一个W由一轮T1-T4组成,相当于一个微指令周期或硬连线控制器的一拍,而一轮W1-W3可以执行硬连线控制器的一条机器指令。另外,供数字逻辑实验使用的时钟由MF经一片74LS390分频后产生。 图3.4 时序信号发生器 本次实验不涉及硬连线控制器,因此时序发生器中产生W1-W3的部分也可根据需要放到硬连线控制器实验中介绍。 产生时序信号T1-T4的功能集成在图中左边的一片GAL22V10中,另外它还产生节拍信号W1-W3的控制时钟CLK1。该芯片的逻辑功能用ABEL语言实现。其源程序如下:MODULE TIMER1 TITLE 'CLOCK GENERATOR T1-T4' CLK = .C.; "INPUT MF, CLR, QD, DP, TJ, DB PIN 1..6; W3 PIN 7; "OUTPUT T1, T2, T3, T4 PIN 15..18 ISTYPE 'REG'; CLK1 PIN 14 ISTYPE 'COM'; 常用软件课程设计

实验员述职报告 QD1, QD2, QDR PIN ISTYPE 'REG'; ACT PIN ISTYPE 'COM'; S = [T1, T2, T3, T4, QD1, QD2, QDR]; EQUATIONS QD1 := QD; QD2 := QD1; ACT = QD1 & !QD2; QDR := CLR & QD # CLR & QDR; T1 := CLR & T4 & ACT # CLR & T4 & ! (DP # TJ # DB & W3) & QDR; T2 := CLR & T1; T3 := CLR & T2; T4 := !CLR # T3 # T4 & !ACT & (DP #TJ# DB& W3) # !QDR; CLK1 = T1 # !CLR & MF; S.CLK = MF; END 节拍电位信号W1-W3只在硬连线控制器中使用,产生W信号的功能集成在右边一片GAL22V10中,用ABEL语言实现。其源程序如下: MODULE TIMER2 //头部 TITLE 'CLOCK GENERATOR W1-W3' DECLARATIONS //说明部 CLK = .C.; "INPUT CLK1, CLR, SKIP PIN 1..3; "OUTPUT W1, W2, W3 PIN 16..18 ISTYPE 'REG'; W = [W1, W2, W3]; EQUATIONS //逻辑描述部 W1 := CLR & W3; W2 := CLR & W1 & !SKIP; W3 := !CLR # W2 # W1 & SKIP; W.CLK = CLK1; END TIMER2 //结束部 左边GAL的时钟输入MF是晶振的输出,频率为500KHz。T1-T4的脉宽为2μs。CLR实际上是控制台的CLR#信号,因为ABEL语言的书写关系改为CLR,仍为低有效。CLR#=0将系统复位,此时时序停在T4、W3,微程序地址为000000B。建议每次实验台加电后,先按CLR#复位一次。实验台上CLR#到时序电路的连接已连好。 对时序发生器TJ输入引脚的连接要慎重,当不需要暂停微程序的运行时,将它接地;常用软件课程设计

微程序控制器实验报告

微程序控制器实验 预习报告 1. 微程序控制器的组成和工作原理。 微程序控制器主要由控制存储器、微指令寄存器和地址转移逻辑三大部分组成。 其工作原理分为:一、将程序和数据通过输入设备送入存储器;二、启动运行 后,从存储器中取出程序指令送到控制器去识别,分析该指令要求什么事;三、 控制器根据指令的含义发出相应的命令(如加法、减法),将存储单元中存放的 操作数据取出送往运算器进行运算,再把运算结果送回存储器指定的单元中;四、运算任务完成后,就可以根据指令将结果通过输出设备输出 2.微程序、微指令、微命令之间的关系。 一系列微指令的有序集合称为微程序。 在微程序控制方式之下,从控制存储器中取出,完成一个或几个微操作的命令 称为微指令。 控制部件通过控制线向执行部件发出各种控制命令,通常把这种控制命令叫做微 命令。 所以总的来说:微程序包含微指令,而每条微指令包含的微命令控制。 3.微指令、微程序的设计及调试。 在微程序流程图中,根据每个状态的微指令,将其进行编码,设计出所需硬件 及执行效率较高的微程序控制电路,然后进行调试。 思考题: 1. 举例说明实验中出现的基本概念:微命令、微操作、微指令、微程序? 微命令:控制器发出的每个控制信号,如对运算单元的控制m cn s3 s2 s1 s0发出的010101等。 微操作:由微命令控制实现的最基本的操作称为微操作。如发出运算器加 运算的微命令后,运算器进行加法计算,就称为微操作。 微指令:完成一个或几个微操作的指令。如控制器进行存数据的命令后, 需要有we信号有效,pc保持,来控制这些的指令即为微指令。

微程序:微程序包含微指令。如微程序流程中包括很多微指令控制,进行 一些加减运算,存储数据,地址自加一等等。 2. 解释并比较微程序控制器的几种设计方法? 微序列控制器通过吧控制信号存储在一个查找Rom,(1)用水平编码生成微 操作(2)用垂直编码生成微操作(3)从微代码直接产生控制信号。 3. 微程序控制器的控制对象、手段及方法?控制器如何取指令? 微程序控制器控制对象分为硬件方面和软件方面,硬件方面为数据通路的 控制信号,软件方面为测试程序的控制信号。 控制器根据状态机的不同状态进行指令读取,在不同状态下取得的指令也 不同。 4. 控制器的功能?如何取指令、分析指令、执行指令? 通过下址取得指令,根据控制信号进行不同信号的开启或关闭也就是分析 指令,然后再在控制信号的作用下执行指令。 5. 下址的产生方法?常用的有哪些,实验中用到了哪些? A:计数器方式――在顺序执行微指令时,后续微指令地址由现行微指令 加上一个增量来产生;在非顺序执行微指令时,必须在执行现行微指令后,转去执行指定后续微指令地址的下一条微指令。 B:增量方式与断定方式的结合――微指令的顺序控制字段分成两部分:条件选择字段与转移地址字段. 由这两个字段结合,当转移条件满足时,将转移地址字段作下一个微地址;若无转移要求,则直接从微程序计数器中取得下一条微指令. 一般用于微指令执行时,需要外部判断条件的场合。 C:多路转移方式――当微程序不产生分支时,后续微地址直接由微指令 的顺序控制字段给出;否则有若干个后续地址可以选择,此时必须由顺序 控制字段的"判别测试"和"状态条件"信息来选择其中一个微地址. 一般用于有多个转移且可以使用组合逻辑设计转移地址逻辑的场合。实 验中用到了多路转移方式。 6. 每条机器指令的指令码如何与其入口微地址对应?微程序分支如何处理?

硬件基础微程序控制器实验报告

湖南大学 HUNAN UNIVERSITY 硬件基础实验2 实验报告 一、实验预习 1.书中的图形实现微程序控制器,中间的映射逻辑究竟是怎么实现的? 答:但出现分支时,预设端信号由IR决定。IR为1时信号有效,输出为1. 通过IR的值映射为下址的低三位,从而产生下址。 2.书中设计用到了强写强读,为什么要设计这个功能?

答:满足用户因为没有初始化mif文件时输入数据的需要。 二、实验目的 微程序控制器实验的主要任务:生成CPU里的控制信号,并使程序按正 确的顺序执行。核心部分是ROM,存放机器指令的微程序。 1、掌握微程序控制器的组成、工作原理; 2、掌握微程序控制器的基本概念和术语:微命令、微 操作、微指令、微 程序等; 3、掌握微指令、微程序的设计及调试方法; 4、通过单步运行若干条微指令,深入理解微程序控制 器的工作原理; 二、实验电路

图1 附:电路图过大,请放大观察详情 三、实验原理 将机器指令的操作(从取指到执行)分解为若干个更基本的微操作序列,并将有 关的控制信息(微命令)以微码的形式编成微指令输入到控制存储器中。这样, 每条机器指令将与一段微程序对应,取出微指令就产生微命令,以实现机器指令 要求的信息传送与加工。 四、实验步骤及概述 1)设计状态机部分 a、编写VHDL代码如下

LIBRARY ieee; USE ieee.std_logic_1164.all; ENTITY zhuangtaiji IS PORT ( reset : IN STD_LOGIC := '0'; clock : IN STD_LOGIC; qd : IN STD_LOGIC := '0'; dp : IN STD_LOGIC := '0'; tj : IN STD_LOGIC := '0'; t1 : OUT STD_LOGIC; t2 : OUT STD_LOGIC; t3 : OUT STD_LOGIC; t4 : OUT STD_LOGIC ); END zhuangtaiji; ARCHITECTURE BEHAVIOR OF zhuangtaiji IS TYPE type_fstate IS (idle,st1,s_st2,st4,st2,st3,s_st4,s_st3); SIGNAL fstate : type_fstate; SIGNAL reg_fstate : type_fstate; BEGIN PROCESS (clock,reset,reg_fstate)

微程序控制器

实验六、微程序控制器 一.实验目的 1.掌握微程序控制器的组成、工作原理; 2.明确微程序、微指令、微命令的概念; 3.掌握微指令、微程序的设计及调试方法; 4.通过单步方式执行若干条微指令深入理解微程序控制器的工作原理; 5.用逻辑分析仪测试微程序控制器指令的转移。 二.实验原理及电路图 实验原理: 微程序控制器是根据数据通路和指令系统来设计的。此处的数据通路是在前面的数据通路实验基础上,增加了指令寄存器IR、微地址寄存器、控制存储器、微命令寄存器、时序电路等形成的。 微程序控制的基本思想,就是仿照通常的解题程序的方法,把操作控制信号编成所谓的“微指令”,存放到一个只读存储器中。当机器运行时,一条又一条地读出这些微指令,从而产生所需要的各种操作控制信号,使相应部件执行所规定的操作。 微程序控制器的设计思想是将每一条机器指令用一段微程序来描述。微程序由若干条微指令组成,而每一条微指令又由若干微命令及一条微指令地址组成,而每一个微命令对应于逻辑电路的一个控制操作。 实验电路图: 其中rom由如下vhdl代码编写: library ieee; use ieee.std_logic_1164.all; use ieee.std_logic_arith.all;

use ieee.std_logic_unsigned.all; entity rom is port( a4,a3,a2,a1,a0:in std_logic; d1,d2,d3,d4,d5,d6,d7,d8,d9,d10,d11,d12,d13,d14,d15,d16,d17,d18,d19,d20,d21,d22,d23,d24,d25, d26,d27,d28:out std_logic); end rom; architecture behavioral of rom is signal sk: std_logic_vector(4 downto 0); signal sel:std_logic_vector(27 downto 0); begin sk<=a4&a3&a2&a1&a0; sel<="1011000000100000010100000001"when sk="00000"else "1110100100100000010100000010"when sk="00001"else "1001001100100000010101101000"when sk="00010"else "1001101100100000010100000100"when sk="00011"else "1001001100100000010110000101"when sk="00100"else "1001000101100000010000000110"when sk="00101"else "1001000100101001101100000001"when sk="00110"else "1001000100111011000100000001"when sk="00111"else "1011000000100000010100010011"when sk="01000"else "1110100100100000010100010101"when sk="01001"else "1110100100100000010100010111"when sk="01010"else "1110100100100000010100011001"when sk="01011"else "1001000101100000010000011011"when sk="01100"else "1110100100100000010100011100"when sk="01101"else "1110100100100000010100000011"when sk="01110"else "1110100100100000010100011101"when sk="01111"else "1011000000100000010100010001"when sk="10000"else "1110100100100000010100010010"when sk="10001"else "1001010000100000010100010001"when sk="10010"else "1110100100100000010100010100"when sk="10011"else "1001001100100000010100010011"when sk="10100"else "1001101100100000010100010110"when sk="10101"else "1001001100100000011100000001"when sk="10110"else "1001101100100000010100011000"when sk="10111"else "1001010100100000010000000001"when sk="11000"else "1001101100100000010100011010"when sk="11001"else "1001001100100000010100000001"when sk="11010"else "1001000100110000001100000001"when sk="11011"else "1011001100100000010100000001"when sk="11100"else "1001101100100000010100011110"when sk="11101"else "1001001100100000010110011111"when sk="11110"else "1001000101100000010000000111"when sk="11111";

相关文档
相关文档 最新文档