看过了控制器的设计以后,你可能会注意到控制器有两个输入C和Z不是来源于译码器的输出,这里对C和Z进行说明。
C和Z的值分别是跳转指令JC和JZ是否有效的一个判断条件:当C=1时,JC有效;Z=1时,JZ有效。C是逻辑运算的进位输出,包括加法的进位、减法的借位以及移位时被移出去的那一位(注意是移出去的那一位,不是最高位)。Z的值由加法和减法控制,当运算结果为0时,Z=1。
既然只有当执行以上提及操作时C和Z的值才发生改变,那么当不执行这些操作时,C和Z的值应该保持不变才对,所以我们需要设计一个寄存器来保存C和Z的值,并且有一个使能端去控制C和Z是否可以被改变。
(1)VHDL代码:
library ieee;
use ieee.std_logic_1164.all;
entity CZJCQ is
port(EN:in std_logic;
Sin:in std_logic;
Sout:out std_logic);
end entity CZJCQ;
architecture ST of CZJCQ is
begin
process(EN)
begin
if(EN='1')then
Sout<=Sin;
end if;
end process;
end ST;
(2)
引脚说明:
输入输出端口分别为:
输入为EN,Sin,输出为Sout,当EN为高电平时,允许Sout输出Sin;
(3)波形仿真:
做完了前面部件以后来做这个可以说是很easy了!