谁能告诉我如何修复这段代码?
什么是非法顺序语句错误(在 modelSim 中)?
为什么它在需要';'时说附近(在 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 ;
最佳答案
条件信号赋值
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 ;
仅对 VHDL 2008 有效。您可能将编译器设置设置为 VHDL 2002 或 VHDL 93
关于vhdl - 非法顺序语句错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33405598/