数字电路实验(七)——CPU综合设计(3)
程序员文章站
2024-02-26 22:06:04
...
2)IR部分
library ieee;
use ieee.std_logic_1164.all;
entity ir is
port(input:in std_logic_vector(7 downto 0);
clock,id_ir,sm:in std_logic;
output_a,output_b:out std_logic_vector(3 downto 0);
ir:out std_logic_vector(7 downto 0)
);
end ir;
architecture st of ir is
signal i:std_logic_vector(7 downto 0):="11110110";
begin
process(clock,input,id_ir,sm)
begin
if (clock='1' and sm='0') then--rising_edge(clock)
if (id_ir='1') then i<=input;
end if;
end if;
end process;
output_a<=i(7 downto 4);
output_b<=i(3 downto 0);
ir<=i;
end st;
接口设计:
Clock:时钟信号
Ir:内存的展示输出
Input:传入的处理数据
Id_ir,sm:使能信号
Output_c,output_z:进位退位信号
Output_a,output_b:指令输出
功能实现:
将RAM中传来的值进行存储,并保证在下一个周期一直输出该值,直到下一次指令的到来,以此来指引CPU实现功能。简单的来讲就是一个八位二进制数的寄存器,在指定的上升沿进行读取即可
仿真验证:
在使能信号id_ir为1的时候可以在时钟为1往寄存器中存值,如图在15ns时将输入值00101100存入寄存器。
结论:正确,各个信号运行正常。
下一篇
上一篇: 数值计算+GPU加速算法
下一篇: 如何判断CPU是大端还是小端模式