首页 理论教育 状态机控制器:结构、功能及仿真结果分析

状态机控制器:结构、功能及仿真结果分析

时间:2023-06-15 理论教育 版权反馈
【摘要】:图4-41 状态控制器的结构状态机控制器接受复位信号RST,当RST有效时通过信号ENA使其为0,输入到状态机中停止状态机的工作。状态机是CPU的控制核心,用于产生一系列的控制信号,启动或停止某些部件。第1个时钟 CPU状态控制器输出—RD和LOAD-IR为高电平,其余均为低电平。ROM送来低8位指令代码,指令寄存器寄存该8位代码。图4-42 状态控制器的仿真结果图4-43 状态机的仿真结果

状态机控制器:结构、功能及仿真结果分析

1.设计思路

状态控制器的结构如图4-41所示,它由两部分组成:

(1)状态机(图4-41中的MACHINE部分)。

(2)状态控制器(图4-41中的MACHINECTL部分)。

978-7-111-42984-5-Chapter04-93.jpg

图4-41 状态控制器的结构

状态机控制器接受复位信号RST,当RST有效时通过信号ENA使其为0,输入到状态机中停止状态机的工作。

状态机是CPU的控制核心,用于产生一系列的控制信号,启动或停止某些部件。状态机的当前状态由变量state记录,state的值就是当前这个指令周期中已经过的时钟数。

指令周期由8个时钟周期组成,每个时钟周期都要完成固定的操作。

(1)第1个时钟 CPU状态控制器输出—RD和LOAD-IR为高电平,其余均为低电平。指令寄存器寄存由ROM送来的高8位指令代码。

(2)第2个时钟 与第一个时钟相比只是INC_PC从0变为1,故PC增1。ROM送来低8位指令代码,指令寄存器寄存该8位代码。

(3)第3个时钟 空操作。

(4)第4个时钟 PC增1,指向下一条指令。若操作符为HLT,则输出信号HLT为高。如果操作符不为HLT,除了PC增1外(指向下一条指令),其他各控制线输出为0。

(5)第5个时钟 若操作符为AND、ADD、XOR或LDA,读相应地址的数据;若为JMP,将目的地址送给程序计数器;若为STO,输出累加器数据。(www.xing528.com)

(6)第6个时钟 若操作符为AND、ADD或XOR,ALC就进行相应的运算;若为LDA,就把数据通过算术运算器送给累加器;若为SKZ,先判断累加器的值是否为0,如果为0,PC就增1,否则保持原值;若为JMP,锁存目的地址;若为STO,将数据写入地址处。

(7)第7个时钟 空操作。

(8)第8个时钟 若操作符为SKZ且累加器值为0,则PC值再增1,跳过一条指令,否则PC无变化。

2.实现与仿真

(1)状态控制器 状态控制器的Verilog HDL实现代码如下:

978-7-111-42984-5-Chapter04-94.jpg

在ISE软件中进行综合仿真,状态控制器的仿真结果如图4-42所示。

(2)状态机 状态机的Verilog HDL实现代码详见光盘附件4-5。

在ISE软件中进行综合仿真,状态机的结果如图4-43所示。

978-7-111-42984-5-Chapter04-95.jpg

图4-42 状态控制器的仿真结果

978-7-111-42984-5-Chapter04-96.jpg

图4-43 状态机的仿真结果

免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。

我要反馈