[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 component;
begin
BUF2 : BUF1 port map (a => IN1, o => temp);
OUT1 <= temp;
OUT2 <= temp;
end HIER_IMPL;
Его сгенерированный RTL(с использованием xilinx 9.1i)
Я сделал D-триггер, используя ту же концепцию сигнала для управления выходными портами, мой код:
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;
мой сгенерированный RTL(с использованием xilinx 9.1i):
Теперь мой вопрос заключается в том, почему мои выходные порты Q и Qbar не видны в RTL, в то время как его OUT1 и OUT2 видны? Я новичок в этой области.
2 ответа
Когда я впервые начал писать VHDL, я также пытался писать FF в дискретных воротах, AFAIR, это не слишком хорошо. Вы должны писать на свою платформу (в данном случае, вероятно, на какой-то чип Xilinx), зная, что это такое и что делает. Это также поможет вам, когда вы приступите к обучению, FPGA и CPLD не являются хорошими массивами вентилей AND и OR, они являются отличными массивами справочных таблиц, так что вероятность реализации FF в FPGA окажется хорошей. похудеть
Что касается вашего фактического вопроса, я бы сначала удостоверился, что мои выходы настроены куда-то. Синтезатор очень старается не включать лишние схемы, поэтому, если ваш результат ни к чему не приведет, он может быть оптимизирован (даже если это, безусловно, должно также оптимизировать схемы, которые вы получили).
Также, как уже упоминалось, попробуйте обновить свои инструменты, 14.7 намного новее, чем 9.1, и это даже с октября 2013 года.