VHDL:三态总线

author-image

作者

此示例通过在构体中使用 WHEN-ELSE 语句来实现 8 路三态缓冲器。它没有反馈通路,因此输出引脚 my_out 已指定为 OUT 而非 INOUT。

此示例与 VHDL:双向总线示例类似,只是它不使用反馈线路。

有关在您的项目中使用此示例的更多信息,请访问:


prebus.vhd

LIBRARY IEEE;
    USE ieee.std_logic_1164.ALL;

ENTITY prebus IS
    PORT(
        my_in  : IN STD_LOGIC_VECTOR(7 DOWNTO 0);
        sel    : IN STD_LOGIC;
        my_out : OUT STD_LOGIC_VECTOR(7 DOWNTO 0));
END prebus;

ARCHITECTURE maxpld OF prebus IS
BEGIN
    my_out <= "ZZZZZZZZ"
    WHEN (sel = '1')
    ELSE my_in;
END maxpld;