使用时发生VHDL语法错误

使用时发生VHDL语法错误,vhdl,quartus,Vhdl,Quartus,我有以下代码: DATA_LCD <= DATA_ROM when SW(1)='0' or char_code<97 or char_code>122 else std_logic_vector(char_code-32); -- no modification in this code DATA_ROM when SW(2)='0' else std_log

我有以下代码:

DATA_LCD <= DATA_ROM when SW(1)='0' or char_code<97 or char_code>122 else
                 std_logic_vector(char_code-32); -- no modification in this code
                     DATA_ROM when SW(2)='0' else
                     std_logic_vector(char_code+1);

Brian是对的,第3行是一个新的(格式错误的)语句。
你忘了把另一个数据放在液晶显示器上,如果有更多的信息,尤其是信号定义,那就更好了。但基本上,第二个
数据\u ROM
只是不知从何而来,我不明白你在那里试图做什么。不需要更多的信息。第三行是新(格式错误)语句的开头。(第二行可能有另一个“when”子句)第3行和第4行看起来就像一个(组合)表达式。它应该驱动什么吗?那么SW(1)和SW(2)意味着什么?第一个条件表达式似乎与HD44780U型LCD控制器(2或4行LCD显示器)有关。修复它需要理解它应该做什么-您还显示了两个其他条件值。我不需要您的编辑。您添加的代码与OP问题不匹配。而且,这个问题已经16个月了!
DATA_LCD <= DATA_ROM when SW(2)='0' else std_logic_vector(char_code+1);