[VHDL]使用信号驱动输出端口,为什么输出端口不可见?

[VHDL]使用信号驱动输出端口,为什么输出端口不可见?,vhdl,Vhdl,在这篇文章中,我使用了一个答案中描述的相同概念制作了一个VHDL模块。 他的代码: entity HIER is port ( IN1 : in bit; OUT1, OUT2 : out bit); end hier; architecture HIER_IMPL of HIER is signal temp : bit; component BUF1 is port (a : in bit; o : out bit); end compon

在这篇文章中,我使用了一个答案中描述的相同概念制作了一个VHDL模块。 他的代码:

entity HIER is
port (
    IN1 : in bit;
    OUT1, OUT2 : out bit);
end hier;

architecture HIER_IMPL of HIER is 
   signal temp : bit;
   component BUF1 is 
      port (a : in bit; o : out bit);
   end component;
begin
   BUF2 : BUF1 port map (a => IN1, o => temp);
   OUT1 <= temp;
   OUT2 <= temp;

end HIER_IMPL;
实体层次结构是
港口(
IN1:位;
OUT1、OUT2:输出位);
末梢;
体系结构层次结构的实施是
信号温度:位;
组件BUF1为
端口(a:输入位;o:输出位);
端部元件;
开始
BUF2:BUF1端口映射(a=>IN1,o=>temp);

OUT1在ISE14.4中运行良好。我记得RTL查看器的旧版本实际上无法使用


当我第一次开始编写VHDL时,我也尝试在离散门中编写FF,但进展不太顺利。 您应该向您的平台(在本例中可能是某个Xilinx芯片)写信,了解它的功能和用途。 这也将有助于您进行培训,FPGA和CPLD不是很好的and和OR门阵列,它们是很好的查找表阵列,因此在FPGA中实现FF的机会微乎其微

关于你的实际问题,我首先要确保我的输出设置到了某个地方。合成器尽力不包括多余的电路,所以如果你的结果没有任何结果,它可能会被优化掉(即使这肯定也会优化掉你得到的电路)


同样如前所述,请尝试更新您的工具,14.7比9.1更新了很多,甚至从2013年10月就开始了。

Xilinx 9.1i(假设为ISE)听起来像是一个非常旧的版本;在尝试调试任何问题之前,您可能希望更新到最新版本。上次我测试该“功能”时,我需要一个*PAD原语,以便不存在开放端。
entity dfff is
    Port ( D : in  STD_LOGIC;
           clk : in  STD_LOGIC;
           Q : out  STD_LOGIC;
           Qbar : out  STD_LOGIC);
end dfff;

architecture Behavioral of dfff is
component nand_2 is
port(A:in std_logic;
        B:in std_logic;
        C:out std_logic);
end component;
component not_1 is
port(A:in std_logic;
                B:out std_logic);
                end component;
signal Z : std_logic_vector(4 downto 0);
begin
n1 : not_1 port map (D,z(0));
n2 : nand_2 port map(D,clk,z(1));
n3 : nand_2 port map(z(0),clk,z(2));
n4 : nand_2 port map(z(1),z(3),z(4));
n5 : nand_2 port map(z(2),z(4),z(3));
Q<=z(4);
Qbar<=z(3);
end Behavioral;