计算机组成原理:实验四常规型微程序控制器组成实验

news2024/12/25 9:27:24

一、实验目的

1.掌握时序产生器的组成原理。

2.掌握微程序控制器的组成原理。

3.掌握微指令格式的化简和归并。

二、实验电路

1.时序发生器

TEC-4计算机组成原理实验系统的时序电路如图4.1所示。电路采用2片GAL22V10(U6、U7),可产生两极等间隔时序信号T1-T4和W1-W4,其中一个W由一轮T1-T4循环组成,它相当于一个微指令周期或硬联线控制器的一拍,而一轮W1-W4循环可供硬联线控制器执行一条机器指令。

图4.1 时序信号发生器

本次实验不涉及硬联线控制器,因此时序产生器中的相关内容也可根据需要放到硬联线控制器实验中进行。

微程序控制器只使用时序信号T1-T4,产生T信号的功能集成在GAL22V10芯片TIMER1(U6)中,另外它还产生节拍信号W1、W2、W3、W4的控制时钟CLK1。该芯片的逻辑功能用ABEL语言实现,其源程序如下:

MODULE TIMER1

TITLE‘CLOCK GENERATOR T1,T2,T3,T4’

“2000,9

“INPUT

       MF,CLR,QD,DP,DZ,TJ,P1,INTC,INTS,DB PIN 1..10;

       W4  PIN  13;

“OUTPUT

       T1,T2,T3,T4,QD1,QD2,ACT,INTE,QDR PIN 14..22;

       CLK1 PIN 23;

       T1,T2,T3,T4,QD1,QD2,INTE,QDR ISTYPE ‘REG’;

       ACT,CLK1 ISTYPE ‘COM’;

       CLK=.C.;

       S=[T1,T2,T3,T4,QD1,QD2,INTE,QDR];

EQUATIONS

       QD1:=QD;

       QD2:=QD1;

       ACT=QD1 &! QD2;

       QDR:=CLR & QD # CLR & QDR;

       T1:=CLR & T4 & ACT # CLR & T4 &!(DP # TJ # DZ & P1 # DB & W4)& QDR;

       T2:=CLR & T1;

       T3:=CLR & T2;

       T4:=! CLR # T3 # T4 &! ACT &(DP # TJ # DZ & P1 #DB & W4 )#! QDR;

       INTE:=CLR & INTS # CLR & INTE &! INTC;

       CLK1=T1 #! CLR& MF;

       S.CLK=MF;

END

硬联线控制器只使用时序信号W1-W4,产生W信号的功能集成在GAL22V10芯片TIMER2(U7)中,该芯片的逻辑功能用ABEL语言实现,其源程序如下:

MODULE TIMER2

TITLE‘CLOCK GGENERATOR W1 W2 W3 W4’

“2000,9

“INPUT

       CLK1,INTR,IE,PIN 1..3;

       CLR,SKIP PIN 5..6;

“OUTPUT

       W1,W2,W3,W4,INTR1 PIN 14..18 ISTYPE‘REG’;

       INTQ PIN 20 ISTYPE‘COM’;

       CLK=.C.;

EQUATIONS

       W1:=CLR & W4;

W2:=CLR & W1 &!SKIP;

W3:=CLR & W2 &!SKIP;

W4:=!CLR # W3 # SKIP & W1 #SKIP & W2;

INTR1:=INTR;

INTQ=IE & INTR1;

[W1,W2,W3,W4,INTR1].CLK=CLK1;

END

TIMER1和TIMER2中还集成了中断逻辑,中断逻辑的介绍见第八节。TIMER1的输入信号中,MF接实验台上晶体震荡器的输出,频率为1MHz。T1至T4的脉冲宽度为1000ns。CLR(注意,实际上是控制台上的CLR#信号,因为ABEL语言的书写关系改为CLR,仍为低有效信号)为复位信号,低有效。实验仪处于任何状态下令CLR#=0,都会使时序发生器和微程序控制器复位(回到初始状态),CLR#=1时,则可以正常运行。复位后时序发生器停在T4、W4状态,微程序地址为000000B。建议每次实验仪加电后,先用CLR#复位一次。控制台上有一个CLR#按钮,按一次,产生一个CLR#负脉冲,实验台印制板上已连好控制台CLR#到时序电路CLR的连线。

TJ(停机)是控制器的输出信号之一。连续运行时,如果控制信号TJ=1,会使机器停机,停止发送时序脉冲T1-T4、W1-W4,时序停在T4。在实验台上为了将时序信号发生器的输入信号TJ和控制存储器产生的TJ信号区分开来,以便于连线操作,在实验台上时序信号发生器的输入信号TJ被命名为TJI,而控制存储器产生的信号TJ仍命名为TJ。QD(启动)是来自启动按钮QD的脉冲信号,在TIMER1中,对QD用MF进行了同步,产生QD1和QD2。ACT表示QD1上升沿,表达式是QD1&!QD2,脉冲宽度为1000ns。QDR是运行标志,QD信号使其为1,CLR信号将其置0。DP(单拍)是来自控制台的DP开关信号,当DP=1时,机器处于单拍运行状态,按一次启动按钮QD,只发送一条微指令周期的时序信号就停机。利用单拍方式,每次只执行一条微指令,因而可以观察微指令代码和当前微指令的执行结果。DZ(单指)信号是针对微程序控制器的,接控制台开关DZ,它和P1信号配合使用。P1是微指令字判断字段中的一个条件信号,从微程序控制器输出。P1信号在微程序中每条机器指令执行结束时为1,用于检测有无中断请求INTQ,而时序发生器用它来实现单条机器指令停机。在DB=0且DP=0的前提下,当DZ=0时,机器连续运行。当DZ=1时,机器处于单指方式,每次只执行一条机器指令。

DB、SKIP、CLK1信号以及W1-W4时序信号都是针对硬联线控制器的。W1-W4是节拍信号,硬联线控制器执行一条机器指令需要一组W1-W4信号。DB(单步)信号就是每次发送一组W信号后停机,可见其功能与DZ类似。执行某些机器指令不需要完整的一组W信号周期,SKIP信号就是用来跳过本指令剩余的W节拍信号的。中断允许标志IE由控制存储器的输出信号INTS将其置1,由控制存储器的输出信号INTC将其置0。在TIMER2内部,控制台产生的中断请求用时钟CLK1进行同步,产生了INTR1。只有在INTE=1时,控制台产生的中断请求脉冲INTR才能起作用,即产生向控制器输出的中断信号INTQ,INTQ=INTE & INTR1。

2.数据通路

微程序控制器是根据数据通路和指令系统来设计的。这里采用的数据通路是在综合前面各实验模块的基础上,又增加程序计数器PC(U18)、地址加法器ALU2(U17)、地址缓冲寄存器R4(U25、U26)和中断地址寄存器IAR(U19),详见第4页的图3。PC和ALU2各采用一片GAL22V10,两者配合使用,可完成程序地址的存储、增1和加偏移量的功能。R4由两片74HC298组成,带二选一输入端。IAR是一片74HC374,用于中断时保存断点地址。有关数据通路总体的详细说明,请参看实验系统介绍。

3.微指令格式与微程序控制器电路

根据给定的12条机器指令功能和数据通路总体图的控制信号,采用微指令格式见图4.2。微指令字长共35位。其中顺序控制部分10位:后继微地址6位,判别字段4位;操作控制字段25位,各位进行直接控制。微指令格式中,信号名带有后缀“#”的信号为低有效信号,不带有后缀“#”的信号为高有效信号。

图4.2 微指令格式

对应微指令格式,微程序控制器的组成见图4.3。控制存储器采用5片EEPROM28C64(U8、U9、U10、U11、U12)。微地址寄存器6位,用一片6D触发器74HC273(U1)组成,带有清零端。两极与门、或门构成微地址转移逻辑,用于产生下一微指令的地址。在每个T1上升沿时刻,新的微指令地址会打入微地址寄存器中,控制存储器随即输出相应的微命令代码。微地址转移逻辑生成下一地址,等下一个T1上升沿时打入微地址寄存器。跳转开关JUMP(J1)是一组6个跳线开关。当用短路子将它们连通时,微地址寄存器μAR从本实验系统提供的微程序地址译码电路得到新的微程序地址μD0-μD5。当它们被断开时,用户提供自己的新微程序地址μD0-μD5。这样用户能够使用自己设计的微程序地址译码电路。5片28C64的地址A6(引脚4)直接与控制台开关SWC连接,当SWC=1时,微地址大于或者等于40H,当SWC=0时,微地址小于40H。SWC主要用于实现读寄存器堆的功能。

图4.3 微程序控制器的组成

微地址转移逻辑的多个输入信号中,INTQ是中断请求,本实验中可以不理会。SWA、SWB是控制台的两个二进制开关信号,实验台上线已接好。C是进位信号,IR7-IR4是机器指令代码,由于本次实验不连接数据通路,这些信号都接到二进制开关K0-K15上。

三、机器指令与微程序

为教学中简单明了,本实验仪使用12条机器指令,均为单字长(8位)指令。指令功能及格式如表4.1所示。指令的高4位提供给微程序控制器,低4位提供给数据通路。

表4.1  指令功能与格式

名  称

助 记 符

功 能

指令格式

R7  R6  R5  R4

R3   R2

R1   R0

加法

ADD  Rd,Rs

Rd+Rs→Rd

0   0   0   0

RS1  RS0

RD1  RD0

减法

SUB  Rd,Rs

Rd-Rs→Rd

0   0   0   1

RS1  RS0

RD1  RD0

乘法

MUL  Rd,Rs

Rd*Rs→Rd

0   0   1   0

RS1  RS0

RD1  RD0

逻辑与

AND  Rd,Rs

Rd&Rs→Rd

0   0   1   1

RS1  RS0

RD1  RD0

存数

STA  Rd,[Rs]

Rd→[Rs]

0   1   0   0

RS1  RS0

RD1  RD0

取数

LDA  Rd,[Rs]

[Rs]→Rd

0   1   0   1

RS1  RS0

RD1  RD0

无条件转移

JMP  [Rs]

[Rs]→PC

1   0   0   0

RS1  RS0

×   ×

条件转移

JC   D

若C=1则

PC+D→PC

1   0   0   1

D3   D2

D1   D0

停机

STP

暂停运行

0   1   1   0

×   ×

×   ×

中断返回

IRET

返回断点

1   0   1   0

×   ×

×   ×

开中断

INTS

允许中断

1   0   1   1

×   ×

×   ×

关中断

INTC

禁止中断

1   1   0   0

×   ×

×   ×

应当指出,用以上12条指令来编写实际程序是不够的。好在我们的目的不是程序设计,而主要是为了教学目的,通过CPU执行一些最简单的程序来掌握微程序控制器的工作原理。

上述12条指令的微程序流程设计如图4.4所示。每条微指令可按前述的微指令格式转换成二进制代码,然后写入5个28C64中。

为了向RAM和寄存器堆中装入程序和数据,检查写入是否正确,并能启动程序执行,还设计了以下五个控制台操作微程序:

存储器写操作(KWE):按下复位按钮CLR#后,微地址寄存器状态为全零。此时置SWC=0、SWB=1、SWA=0,按启动按钮后微指令地址转入27H,从而可对RAM连续进行手动写入。

存储器读操作(KRD):按下复位按钮CLR#后,置SWC=O、SWB=0、SWA=1,按启动按钮后微指令地址转入17H,从而可对RAM连续进行读操作。

启动程序(PR):按下复位按钮CLR#后,置SWC=O、SWB=0、SWA=0,用数据开关SW7-SW0设置内存中程序的首地址,按启动按钮后微指令地址转入07H,然后转到“取指”微指令。

写寄存器操作(KLD):按下复位按钮CLR#后,置SWC=O、SWB=1、SWA=1,按启动按钮后微指令地址转入37H,从而可对寄存器堆中的寄存器连续进行写操作。

读寄存器操作(KRR):按下复位按钮CLR#后,置SWC=1、SWB=0、SWA=0,按启动按钮后微指令地址转入47H,从而可对寄存器堆中的寄存器连续进行读操作。

图4.4 微程序流程图

应当着重指出,在微指令格式的设计过程中,对数据通路所需的控制信号进行了归并和化简。细心的同学可能已经发现,微程序控制器输出的控制信号远远少于数据通路所需的控制信号。这里提供的微程序流程图是没有经过归并和化简的。仔细研究一下微程序流程图,就会发现有些信号的出现的位置完全一样,这样的信号用其中一个信号就可以代表。请看信号LDPC和LDR4,这两个信号都在微程序地址07H、1AH、1FH、26H出现,而在其他的微程序地址都不出现,因此这两个信号产生的逻辑条件是完全一样的。从逻辑意义上看,这两个信号的作用是产生新的PC,完全出现在相同的微指令中是很正常的。因此用LDPC完全可以代替LDR4。还有另外一些信号,例如LDDR1和LDDR2,出现的位置基本相同。LDDR2和LDDR1的唯一不同是在地址14H的微指令中,出现了LDDR2信号,但是没有出现LDDR1信号。LDDR1和LDDR2是否也可以归并成一个信号呢?答案是肯定的。微程序流程图中只是指出了在微指令中必须出现的信号,并没有指出出现其他信号行不行,这就要根据具体情况具体分析。在地址14H的微指令中,出现LDDR1信号行不行呢?完全可以。在地址14H出现的LDDR1是一个无用的信号,同时也是一个无害的信号,它的出现完全没有副作用,因此LDDR1和LDDR2可以归并为一个信号LDDR1。根据以上两条原则,我们对下列信号进行了归并和化简:

LDIR(CER)         为1时,允许对IR加载,此信号也可用于作为双端口存储器右端口选择CER。

LDPC(LDR4)        为1时,允许对程序计数器PC加载,此信号也可用于作为R4的加载允许信号LDR4。

LDAR1(LDAR2)      为1时,允许对地址寄存器AR1加载,此信号也可用于作为对地址寄存器AR2加载。

LDDR1(LDDR2)      为1时,允许对操作数寄存器DR1加载,此信号也可用于作为对操作数寄存器DR2加载。

M1(M2)            当M1=1时,操作寄存器DR1从数据总线DBUS接收数据;当M1=0时,操作寄存器DR1从寄存器堆RF接收数据。此信号也可用于作为操作数寄存器DR2的数据来源选择信号。

在对微指令格式进行归并和化简的过程中,我们有意保留了一些信号,没有化简,同学们可以充分发挥创造性,提出更为简单的微指令格式。

还要说明的是,为什么微指令格式可以化简,而实验台数据通路的控制信号为什么不进行化简?最主要的原因是前面进行的各个实验的需要,例如LDDR1和LDDR2这两个信号,在做运算器数据通路实验时,是不能设计成一个信号的。还有一个原因是考虑到实验时易于理解,对某些可以归并的信号也没有予以归并。

四、实验接线

K0接C

K1接IR7

K2接IR6

K3接IR5

K4接IR4

TGI接GND

SKIP接GND

共七根线

五、实验任务

1.观察时序信号。

用双踪示波器观测时序产生器的输入输出信号:MF,W1-W4,T1-T4。比较相位关系,画出其波形,并标注测量所得的脉冲宽度。观察时须将TJI接低电平,DB、DZ、DP开关均置为0状态,然后按QD按钮,则连续产生T1、T2、T3、T4、W1、W2、W3、W4。

了解启停控制信号的功能,并熟练地使用连接这些控制信号的按钮或开关。

2.熟悉微指令格式的定义,按此定义将控制台指令微程序的8条微指令按十六进制编码,列于表4.2。三种控制台指令的功能由SWC、SWB、SWA三个二进制开关的状态来指定(KRD=001B,KWE=010B,PR=000B)。此表必须在预习时完成。

表4.2 微指令编码

微指令地址

微指令编码

微指令地址

微指令编码

00H

00  05C0  0207H

3CH

04  05C8  003DH

07H

00  0541  2005H

17H

00  0544  003FH

27H

04  0544  003DH

3FH

04  09C0  003EH

3DH

00  0140  003CH

3EH

00  05C8  003FH

单拍(DP)方式执行控制台微程序,读出上述八条微指令,用P字段和微地址指示灯跟踪微指令执行情况,并与上表数据对照。

其中判断条件为当程序的下一条微指令为判断语句时,看是什么判断。

微指令格式中并没有写出全部的信号,有一些进行了归并与简化。

微指令地址

微指令编码

00H

0000 0000 0000 0101 1100 0000 0000 0010 0000 0111

07H

0000 0000 0000 0101 0100 0001 0010 0000 0000 0101

27H

0000 0100 0000 0101 0100 0100 0000 0000 0011 1101

3DH

0000 0000 0000 0001 0100 0000 0000 0000 0011 1100

3CH

0000 0100 0000 0101 1100 1000 0000 0000 0011 1101

17H

0000 0100 0000 0101 0100 0100 0000 0000 0011 1111

3FH

0000 0100 0000 1001 1100 0000 0000 0000 0011 1110

3EH

0000 0000 0000 0101 1100 1000 0000 0000 0011 1111

用连续方式执行KWE和KRD(将TJI接地),画出μA0(28C64的地址A0)信号波形,作出解释。

    执行KWE:

   假设为单拍执行时:

首先按下CLE清零,然后设置SWC=O、SWB=1、SWA=0,按下QD,程序进入27地址,此时黄灯显示为10 0111,再次按下QD,程序进入3D地址,此时黄灯显示为11 1101,再次按下QD,程序进入3C地址,此时黄灯显示为11 1100,再次按下QD,程序进入3D地址,此时黄灯显示为11 1101,再次按下QD,程序进入3C地址,此时黄灯显示为11 1100,再次按下QD,继续重复,从此可以看出只有最后一位数值在0与1之间交换,并且是瞬间交换的。

所以当时连续执行时,μA0信号波形是0,1交换的方波。

执行KRD:

   同样首先假设为单拍执行时:

首先按下CLE清零,然后设置SWC=0、SWB=0、SWA=1,按下QD,程序进入17地址,此时黄灯显示为01 0111,再次按下QD,程序进入3F地址,此时黄灯显示为11 1111,再次按下QD,程序进入3E地址,此时黄灯显示为11 1110,再次按下QD,程序进入3F地址,此时黄灯显示为11 1111,再次按下QD,程序进入3E地址,此时黄灯显示为11 1110,继续重复,与执行KWE时一样

所以当时连续执行时,μA0信号波形是0,1交换的方波。

3.用P3和SWC、SWB、SWA的状态组合,观察验证三种控制台指令KWE、KRD、PR微地址转移逻辑功能的实现。

    执行KWE:

首先按下CLE清零,然后设置SWC=O、SWB=1、SWA=0,按下QD,程序进入27地址,此时黄灯显示为10 0111,再次按下QD,程序进入3D地址,此时黄灯显示为11 1101,再次按下QD,程序进入3C地址,此时黄灯显示为11 1100,再次按下QD,程序进入3D地址,此时黄灯显示为11 1101,再次按下QD,程序进入3C地址,此时黄灯显示为11 1100,再次按下QD,继续重复,11 1100与11  1100相互之间交换。

执行KRD:

首先按下CLE清零,然后设置SWC=0、SWB=0、SWA=1,按下QD,程序进入17地址,此时黄灯显示为01 0111,再次按下QD,程序进入3F地址,此时黄灯显示为11 1111,再次按下QD,程序进入3E地址,此时黄灯显示为11 1110,再次按下QD,程序进入3F地址,此时黄灯显示为11 1111,再次按下QD,程序进入3E地址,此时黄灯显示为11 1110,继续重复,11 1111与11  1110相互之间交换。

执行PR:

   首先按下CLE清零,然后设置SWC=0、SWB=0、SWA=0,按下QD,程序进  入07地址,此时黄灯显示为00 0111,在此按下QD,程序进入05地址,此  时黄灯显示为00 0101,接下来就是一下实验内容了。

4.熟悉05H,10H两条微令的功能和P2测试的状态条件(IR4-IR7),用二进制开关设置IR7-IR4的不同状态,观察ADD至STP九条机器指令微地址转移逻辑功能的实现。

05H的功能是取地址,

10H的功能就是进行加法运算。

首先按下CLE清零,然后设置SWC=0、SWB=0、SWA=0,按下QD,程序进 入07地址,此时黄灯显示为00 0111,在此按下QD,程序进入05地址,然后设置IR4-IR7的值转跳到不同的程序

ADD:设置IR4-IR7的值为0000,按下QD,观察黄灯显示为01  0000,所以成功的进入ADD程序。

SUB: 设置IR4-IR7的值为0001,按下QD,观察黄灯显示为01  0001,所以成功的进入SUB程序。

MUL: 设置IR4-IR7的值为0010,按下QD,观察黄灯显示为01  0010,所以成功的进入MUL程序。

AND: 设置IR4-IR7的值为0011,按下QD,观察黄灯显示为01  0011,所以成功的进入AND程序。

LDA: 设置IR4-IR7的值为0101,按下QD,观察黄灯显示为01  0101,所以成功的进入LDA程序。

STA: 设置IR4-IR7的值为0100,按下QD,观察黄灯显示为01  0100,所以成功的进入STA程序。

JMP: 设置IR4-IR7的值为1000,按下QD,观察黄灯显示为01  1000,所以成功的进入JMP程序。

JC: 设置IR4-IR7的值为1001,按下QD,观察黄灯显示为01  1001,所以成功的进入JC程序。

STP: 设置IR4-IR7的值为011,按下QD,观察黄灯显示为01  0110,所以成功的进入STP程序。

5.设置IR7-IR4的不同组合,用单拍方式执行ADD至STP九条机器指令微程序,用微地址和P字段指示灯跟踪微程序转移和执行情况。用逻辑笔测试小插座上输出的微命令信号,记录ADD、SUB、LDA、STA四条机器指令的微命令信号,自行设计表格。

首先按下CLE清零,然后设置SWC=0、SWB=0、SWA=0,按下QD,程序进 入07地址,此时黄灯显示为00 0111,在此按下QD,程序进入05地址,然后设置IR4-IR7的值转跳到不同的程序

ADD: 设置IR4-IR7的值为0000,按下QD,观察黄灯显示为01 0000,所以成功的进入ADD程序,再次按下QD,进入下一个10地址,黄灯显示01  0000,再次按下QD,进入下一个3B地址,黄灯显示11  1011,,再次按下QD,进入下一个34地址,黄灯显示11  0010,再次按下QD,程序停止。

SUB: 设置IR4-IR7的值为0001,按下QD,观察黄灯显示为01 0001,所以成功的进入SUB程序,再次按下QD,进入下一个11地址,黄灯显示01  0001,再次按下QD,进入下一个3A地址,黄灯显示11  1010,,再次按下QD,进入下一个34地址,黄灯显示11  0010,再次按下QD,程序停止。

LDA: 设置IR4-IR7的值为0101,按下QD,观察黄灯显示为01 0101,所以成功的进入LDA程序,再次按下QD,进入下一个15地址,黄灯显示01  0101,再次按下QD,进入下一个36地址,黄灯显示11  0110,,再次按下QD,程序停止。

STA:设置IR4-IR7的值为0100,按下QD,观察黄灯显示为01  0100,所以成功的进入STA程序,再次按下QD,进入下一个14地址,黄灯显示01  0100,再次按下QD,进入下一个35地址,黄灯显示11  0101,,再次按下QD,程序停止。

六、实验总结

本次实验深入探讨了常规型微程序控制器的组成原理及其应用,主要围绕以下几个核心环节展开:

1. 时序信号产生器的分析与理解:通过对时序发生器(包括TIMER1和TIMER2)的ABEL语言源程序的解读,掌握了时序信号T1-T4与W1-W4如何被生成和控制,以及这些信号在微程序控制器与硬联线控制器中的作用。特别是学习了如何使用复位信号CLR、启动信号QD、中断逻辑等控制整个系统的运行状态,为后续实验打下了基础。

2. 微指令格式的优化实践:通过研究给出的微指令格式,了解了微指令是如何设计来满足控制需求的,包括顺序控制部分和操作控制字段的安排。特别地,实践了微指令格式的化简和归并过程,比如将功能相似的信号如LDPC与LDR4归并,从而简化了微指令的设计,提升了效率,这一过程要求深入理解控制信号的功能与应用场景。

3. 微程序控制器电路的搭建与验证:基于对数据通路的理解,学习了微程序控制器的硬件组成,包括控制存储器(EEPROM)、微地址寄存器等关键组件的连接与功能。通过实际接线操作,如将K0至K4分别连接到特定控制信号,以及TGI接地、SKIP接地,加深了对硬件接口配置的认识。

4. 实验操作与结果分析:通过一系列具体操作,如观察时序信号波形、验证微指令编码的正确性、以及通过控制台指令(KWE、KRD、PR)的执行来测试微地址转移逻辑,不仅验证了理论知识,还学会了如何使用实验设备进行调试和验证。特别是在单拍模式下跟踪微指令执行,以及连续模式下观察μA0信号波形,这些实践加深了对微程序执行流程和控制逻辑的理解。

5. 指令功能验证与微地址逻辑测试:通过设置不同的IR值来执行特定机器指令(如ADD至STP),观察微地址转移与P字段指示,进一步验证了微指令设计的正确性及数据通路对指令的响应。此外,通过逻辑笔测试输出的微命令信号,更直观地理解了每条指令执行背后的微命令序列,这对于深入掌握微程序控制机制至关重要。

综上所述,本次实验是一个从理论到实践的全面探索过程,涵盖了微程序控制器设计的核心概念与技术细节,通过动手实践,不仅巩固了理论知识,也培养了问题解决和系统分析的能力。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2091933.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

微信小程序App实现小车方向控制

目录 概述 1 系统框架结构 1.1 结构介绍 1.2 硬件模块介绍 1.2.1 蓝牙模块介绍 1.2 .2 模块功能介绍 2 功能实现 2.1 微信小程序APP 2.2 下位机功能 3 功能测试 3.1 小程序UI测试 3.2 小车方向控制 微信小程序和蓝牙模块控制小车运行状态 概述 本文主要介绍使用微信…

vue.js项目实战案例源码

Vue.js是一个用于构建用户界面的渐进式框架,非常适合开发单页面应用。以下是一些实战案例的源码,可以帮助你更好地理解和使用Vue.js: Vue TodoMVC 简介:这是学习Vue.js的入门级项目,主要实现了一个待办事项列表。源码地…

Python优化算法17——黄金正弦算法(GSA)

科研里面优化算法都用的多,尤其是各种动物园里面的智能仿生优化算法,但是目前都是MATLAB的代码多,python几乎没有什么包,这次把优化算法系列的代码都从底层手写开始。 需要看以前的优化算法文章可以参考:Python优化算…

从 CRX 文件安装 Chrome 扩展程序

在使用嵌入式 Browser 中的扩展程序时,您可能希望将它们打包并分发在应用程序中,并静默安装。 在本教程中,我将演示如何通过编程方式从 CRX 文件中安装扩展程序,保持它们的更新,并使用它们。 此外,我还会…

8.30工作笔记

要做的事情: 1 测试剩下的三个因子:coppock 潮汐因子 云开雾散 2 整理需要时间序列的因子 以及截面因子 3 灾后重建多了一列,灾后重建’所有值都是nan,这里不仅是灾后重建,所有的都要改 4 coppock 潮汐因子 云开雾散在…

排列数+时间戳+逆元取模

前言:这个题目是真的难,不会做,看了题解才发现是咋回事 题目地址 最主要的就是为啥是除以3,c之前需要完成a 和 b,d 和 e 对我们的答案没有影响,所以我们要除以 A(3,3) ,但是 a 和 b 的排列没有要求&#xf…

Sinc Function介绍

1、定义 Sinc函数全称:sine cardinal,也称作是sampling function(采样函数)。 2、分类 (1)归一化sinc函数: 这种定义在信号处理中被广泛采用,其中 x 是一个无量纲的变量,…

基于YOLO的车牌检测识别(YOLO+Transformer)

概述: 基于深度学习的车牌识别,其中,车辆检测网络直接使用YOLO侦测。而后,才是使用网络侦测车牌与识别车牌号。 车牌的侦测网络,采用的是resnet18,网络输出检测边框的仿射变换矩阵,可检测任意形…

同城小程序怎么做 同城小程序系统开发制作方案

很多同城创业的老板们想要做一个同城小程序但是不知道怎么做,本次瀚林就为大家详细介绍一下做同城小程序系统开发制作方法,给大家做个参考。 目前同城类型的小程序系统市面上比较常见的有:同城配送、鲜花订花、同城上门服务、同城跑腿、同城便…

中仕公考怎么样?事业编考试怎么备考?

事业编考试备考可以大致分为三个阶段,按照不同阶段根据自身的学习情况制定不同的学习计划即可。 ①基础阶段 有备考经验的考生可以忽略这一步,刚开始先打好基础很重要,根据课程和教材理解知识点,按照模块学习,对考试…

cnocr 安装

打开终端 如果不会打开终端 -> 终端打开输入 pip install cnocr 执行中途可能报错 去这里下载工具:c构建工具下载完打开,勾选这个 然后点安装安装完回到第2步重新执行

docker镜像所使用到的COW写时复制技术是什么

copy on write 简单来说,所有的读操作都是指向一份内存地址,共享这些数据,节省内存空间。 如果有进程要对数据进行写操作,系统会检测到这个行为,将数据复制一份出来,给这个进程进行写操作。其他进程继续…

5.3二叉树——二叉树链式结构实现

本篇博客梳理二叉树链式结构 明确:二叉树是递归定义的 递归的本质:当前问题子问题,返回条件是最小规模的子问题 一、二叉树的遍历 1.前序、中序与后序遍历 (1)前序:根->左子树->右子树…

全球知名度最高的华人颜廷利:世界公认十大思想家哲学家

全球知名度最高的华人颜廷利:世界公认十大思想家哲学家 在汉语这一中国优秀传统文化的瑰宝中,“色”与“舍”这两个字的发音分别被解读为“思恶”和“识恶”,揭示了一种深奥的文化现象。这种现象的根源,实则来自于我们的感官——眼…

linux上查找某应用所在的绝对路径

linux上查找某应用所在的绝对路径 1、已知应用名称 找到应用的进程号 例:查找nginx的进程号 ps -ef | grep nginx 或者 ps -aux | grep nginx 2、通过端口号找进程号 lsof -i:80 3、通过进程号找到所在目录,Linux在启动一个进程时,系统会在/proc目…

力扣刷题(3)

整数反转 整数反转-力扣 思路&#xff1a; 利用%和/不断循环取待反转整数的最后一位&#xff0c;注意判断是否超出范围。 int reverse(int x){int y0;while(x){if(y > INT_MAX/10 || y < INT_MIN/10)return 0;int tmpx%10;yy*10tmp;x/10;}return y; }字符串转换整数 …

多线程篇(基本认识 - 锁优化)(持续更新迭代)

目录 一、前言 二、阿里开发手册 三、synchronized 锁优化的背景 四、Synchronized的性能变化 1. Java5之前&#xff1a;用户态和内核态之间的切换 2. java6开始&#xff1a;优化Synchronized 五、锁升级 1. 无锁 2. 偏向锁 2.1. 前言 2.2. 什么是偏向锁 2.3. 偏向…

知识产权案件中的消费者问卷调查证据

在知识产权案件中&#xff0c;消费者问卷调查可以作为一种重要的证据形式。通过调查消费者的认知、态度、行为和观点&#xff0c;消费者问卷调查可以提供以下方面的证据支持&#xff1a; 1、商标或产品混淆&#xff1a;消费者问卷调查可以确定消费者对于涉及知识产权的商标或产…

《python语言程序设计》第8章第9题将二进制数作为字符串转换十六进制print和return的区别

在这里我发现了return和print的区别 def binary_to_hex(binary_value):len_text len(binary_value)for i in range(0, len_text, 4):#能把二进制分成四组进行打印print(binary_value[0 i:4 i])#只能运行将前4个数分成一组return binary_value[0 i:4 i]a binary_to_hex(&q…

HarmonyOS--AGC(认证服务/云函数/云存储/云数据库)

HarmonyOS–AGC(认证服务/云函数/云存储/云数据库) 文章目录 一、注册华为账号开通认证服务二、添加项目&#xff1a;*包名要与项目的包名保持一致三、获取需要的文件四、创建项目&#xff1a;*包名要与项目的包名保持一致五、添加json文件六、加入请求权限七、加入依赖八、修改…