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

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存入寄存器。
结论:正确,各个信号运行正常。
下一篇

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值