Итак, я использую VHDL для создания регистра, где он загружается во вход X, если LOAD равен '1', и выводит данные в серийном режиме, в основном параллельно в регистре серийного выхода. Вход X является входом 4 бит (3 вниз к 0), то, что я хочу сделать, чтобы программа выполнялась, постоянно выводится 0, когда регистр успешно выводит все бит на вход.VHDL Shift Register Program различные результаты при использовании сигналов и переменных
Он работает, когда «счет» определяется как сигнал, однако, когда счетчик определяется как переменная, выход является константой 0, независимо от того, является ли загрузка «1» или нет. Мой код такой, как показано:
entity qn14 is
Port (clk : in STD_LOGIC;
reset : in STD_LOGIC;
LOAD : in STD_LOGIC;
X : in STD_LOGIC_VECTOR (3 downto 0);
output : out STD_LOGIC);
end qn14;
architecture qn14_beh of qn14 is
type states is (IDLE , SHIFT);
signal state : states;
signal count: STD_LOGIC_VECTOR(1 downto 0);
begin
process(clk , reset)
variable temp: STD_LOGIC;
variable data: STD_LOGIC_VECTOR(3 downto 0);
begin
if reset = '1' then
state <= IDLE;
count <= "00";
output <= '0';
elsif clk'event and clk = '1' then
case state is
when IDLE =>
if LOAD = '1' then
data := X;
output <= '0';
state <= SHIFT;
elsif LOAD = '0' then
output <= '0';
end if;
when SHIFT =>
if LOAD ='1' then
output <= '0';
elsif LOAD = '0' then
output <= data(conv_integer(count));
count <= count + 1;
if (count >= 3) then
state <= IDLE ;
end if;
end if;
end case;
end if;
end process;
end qn14_beh;
В надежде найти разъяснения по этому вопросу.
спасибо.
*** Он работает, когда «счет» определяется как сигнал, однако, когда счетчик определяется как переменная, выход является константой 0, независимо от того, является ли загрузка «1» или нет. *** Да , но в чем ваш вопрос? Вы не показываете версию с 'count' как переменной, и ваш код не является [Минимальным, полным и проверяемым примером] (http://stackoverflow.com/help/mcve). Присвоение переменной немедленно, новое значение может быть сразу оценено в выражении.Назначаемое значение сигнала запланировано, прогнозируемый выходной сигнал и значение, доступное в будущем симуляционном цикле. – user1155120