Я пытаюсь создать фазовый аккумулятор, используя VHDL, который имеет следующие характеристики:
Входы:
- D (входной сигнал)
- RESET
- CE
- CLK
Выходы:
- Q (выходной сигнал - обратная связь)
Исходный код:
library IEEE;
use IEEE.STD_LOGIC_1164.ALL;
use IEEE.STD_LOGIC_ARITH.ALL;
use IEEE.STD_LOGIC_UNSIGNED.ALL;
entity Phase_accu is
port (
D : in std_logic_vector(3 downto 0);
CE : in std_logic;
CLK : in std_logic;
RESET : in std_logic;
Q : out std_logic_vector(15 downto 0)
);
end Phase_accu;
architecture Behavioral of Phase_accu is
begin
process(D, CE, CLK, RESET)
begin
if RESET = '1' then
Q <= "0000000000000000";
elsif rising_edge(CLK) then
if CE = '1' then
Q <= ("000000000000" & D) + Q;
end if;
end if;
end process;
end Behavioral;
Я получаю сообщение об ошибке, когда линия пытается объединить 2 сигнала для обратной связи ...
Q <= ("000000000000" & D) + Q;
Невозможно прочитать вывод "Q".