please can anyone tell me how to fix this code?
what is the Illegal_sequential_statement error(in modelSim)?
why it say that near when nead ';' (in quartus) ?
LIBRARY ieee ;
USE ieee.std_logic_1164.all;
ENTITY Shift_reg IS
PORT( Par_LD: IN std_logic_vector(7 DOWNTO 0);
Serial_In: IN std_logic;
Serial_Out:OUT std_logic;
RST, LD, EN, CLK: IN std_logic);
END Shift_reg;
ARCHITECTURE shiftRegARCH OF Shift_reg IS
SIGNAL TEMP_REG : STD_LOGIC_VECTOR(7 DOWNTO 0);
SIGNAL TEMP_SOUT : STD_LOGIC;
BEGIN
process(CLK,RST)
BEGIN
TEMP_REG <= (OTHERS => '0') WHEN (RST = '1') ELSE
Par_LD WHEN (EN = '0' AND LD = '1')ELSE
(Serial_In & TEMP_REG(7 DOWNTO 1)) WHEN (EN = '1')ELSE
TEMP_REG ;
TEMP_SOUT <= TEMP_REG(0) WHEN (EN = '1') ELSE TEMP_SOUT;
Serial_Out <= TEMP_SOUT;
END PROCESS;
END shiftRegARCH ;
The conditional signal assignment
TEMP_REG <= (OTHERS => '0') WHEN (RST = '1') ELSE
Par_LD WHEN (EN = '0' AND LD = '1')ELSE
(Serial_In & TEMP_REG(7 DOWNTO 1)) WHEN (EN = '1')ELSE
TEMP_REG ;
is only valid with VHDL 2008. You probably have your compiler settings set to VHDL 2002 or VHDL 93
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With