В следующем коде я получаю следующие ошибки, но я не понимаю, почему это ошибка.Ошибка VHDL для цикла
library ieee;
use ieee.std_logic_1164.all;
entity RGSTR_SHFT_N_PARAL_B2 is
Generic (
n: integer := 4
);
port(
DATA : in std_logic_vector((n-1) downto 0);
Shift_In : in std_logic;
Load : in std_logic;
Enable : in std_logic;
CLK : in std_logic;
S : out std_logic_vector((n-1) downto 0)
);
end entity RGSTR_SHFT_N_PARAL_B2;
architecture simple of RGSTR_SHFT_N_PARAL_B2 is
signal temp_S: std_logic_vector((n-1) downto 0);
signal LOW0, HIGH1: std_logic; -- Constant Signals
-- Use the D flip flop of B1 excersise
component D_FF_B1 is
port(
Enable : in std_logic;
Load : in std_logic;
Load_Val : in std_logic;
Data_in : in std_logic;
CLK : in std_logic;
Q : out std_logic
);
end component;
begin
p0:process(Enable, CLK) is
begin
-- Initialisations
LOW0 <= '0';
HIGH1 <= '1';
if (Enable = LOW0) then
L0: for i in 0 to (n-1) loop
temp_S(i) <= temp_S(i);
end loop;
elsif (CLK 'event and CLK = HIGH1) then
if (Load = LOW0) then -- Shifter is enabled
L1: for i in 0 to (n-2) loop
temp_S(i) <= temp_S(i+1);
end loop;
temp_S(n-1) <= Shift_In;
else -- Loader is enabled
L2: for i in 0 to (n-1) loop
X1: D_FF_B1 port map(HIGH1, LOW0, LOW0, DATA(i), CLK, temp_S(i));
end loop;
end if;
end if;
L3: for i in 0 to (n-1) loop
S(i) <= temp_S(i);
end loop;
end process p0;
end architecture simple;
Сообщение об ошибке:
Error (10500): VHDL syntax error at RGSTR_SHFT_N_PARAL_B2.vhd(79) near text "port"; expecting "(", or "'", or "."
Error (10500): VHDL syntax error at RGSTR_SHFT_N_PARAL_B2.vhd(79) near text ";"; expecting ":=", or "<="
я скомпилировать программу VHDL с Quartus II.
Так что я не должен использовать процесс для моей программы ... или есть другой способ? –
@ G.V .: См. Добавленный пример в ответе выше. –