vhdl - 非法顺序语句错误

标签 vhdl sequential dataflow shift-register

谁能告诉我如何修复这段代码?

什么是非法顺序语句错误(在 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/

相关文章:

google-cloud-platform - 数据流 ReadFromBigQuery 转换 - 如何配置临时表的位置

vhdl - 是否需要初始化?

javascript - Node js/javascript : how to process streams sequentially with pipe and async/await when parsing csv and calling webservices with got?

scikit-learn - 在keras中复制sklearn的MLPClassifier()

c# - TPL数据流,数据 block 收到第一项时的通知

java - Idea Intellij拆箱警告似乎不是基于数据流分析

vhdl - 在 vhdl 中计算(和验证)以太网 FCS (crc32)

case - VHDL:使用是否正确无关?

VHDL:如何处理函数返回的无约束数组作为实体端口的输入?