欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

数字电路实验(七)——CPU综合设计(3)

程序员文章站 2024-02-26 22:06:04
...

2)IR部分

数字电路实验(七)——CPU综合设计(3)

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实现功能。简单的来讲就是一个八位二进制数的寄存器,在指定的上升沿进行读取即可
仿真验证:
数字电路实验(七)——CPU综合设计(3)
在使能信号id_ir为1的时候可以在时钟为1往寄存器中存值,如图在15ns时将输入值00101100存入寄存器。
结论:正确,各个信号运行正常。
下一篇

相关标签: CPU