这个部件的功能比较简单,一个选择输入端口,三个数据输入端口,根据选择输入将对应端口的数据输出即可,不需要时钟信号控制。
(1)VHDL代码:
library ieee;
use ieee.std_logic_1164.all;
entity XZQ is
port(MADD:in std_logic_vector(1 downto 0);
F1:in std_logic_vector(7 downto 0);
F2:in std_logic_vector(7 downto 0);
F3:in std_logic_vector(7 downto 0);
Fout:out std_logic_vector(7 downto 0));
end entity;
architecture ST of XZQ is
begin
process(MADD,F1,F2,F3)
begin
if(MADD="00")then Fout<=F1;
elsif(MADD="01")then Fout<=F2;
elsif(MADD="10")then Fout<=F3;
end if;
end process;
end ST;
(2)引脚说明:
输入输出端口分别为:
MADD:控制选择端,
当MADD=“00”时输出F1的值;
当MADD=“01”时输出F2的值;
当MADD=“10”时输出F3的值;
(在具体的运行过程中不会出现MADD=“11”的操作,故在此无需考虑)
F1,F2,F3:数据输入端,F1为来自PC计数器的输入,F2和F3为来自通用寄存器的输入。
Fout:数据输出端,通过MADD的选择从F1,F2,F3中选择其一进行输出。
(3)波形仿真:
由波形仿真可知,Fout的输出与MADD对F1,F2,F3三个输入端的选择结果一致,符合设计要求结果正确。