Compiler errors VHDL错误(应为简单表达式)

Compiler errors VHDL错误(应为简单表达式),compiler-errors,vhdl,digital,hdl,digital-logic,Compiler Errors,Vhdl,Digital,Hdl,Digital Logic,我是VHDL新手,我的代码出现了一个无法修复的问题。我们应该使用选定的信号分配或表格查找来完成此操作。我的是两者的结合,因为我们应该使用不关心不会发生的输入 该代码基本上应该为2的补码输入或偏移二进制提供相同的输出。例如,十进制数7在偏移二进制中是“1111”,在2的补码中是“0111”。这两种形式都应根据开关oe的值生成“11111 00000”的输出(“1”表示偏移二进制,“0”表示2的补码) 我已经在这个级别上调试了尽可能多的代码,我不明白我做错了什么 活动HDL目前在第48行和第55行出

我是VHDL新手,我的代码出现了一个无法修复的问题。我们应该使用选定的信号分配或表格查找来完成此操作。我的是两者的结合,因为我们应该使用不关心不会发生的输入

该代码基本上应该为2的补码输入或偏移二进制提供相同的输出。例如,十进制数7在偏移二进制中是“1111”,在2的补码中是“0111”。这两种形式都应根据开关oe的值生成“11111 00000”的输出(“1”表示偏移二进制,“0”表示2的补码)

我已经在这个级别上调试了尽可能多的代码,我不明白我做错了什么

活动HDL目前在第48行和第55行出现错误。我得到两个“预期的简单表达式”错误

我的代码位于下面的pastebin URL,因为它允许更好的可读性和语法突出显示(另外,我不喜欢摆弄Stack Exchange发布代码的奇怪方式)。此外,如果您有任何关于如何在维护作业说明的同时改进代码的提示,请随时提出建议


只需使用一个过程来提高可读性:

...
-- untested
process( input, d, tmp, ob)
begin
   if ob = '1' then  
        led <= table(to_integer(unsigned(d & tmp)));
   else                 
        led <= table(to_integer(unsigned(not d & tmp)));
   end if;
end process;
...      
。。。
--未经测试
过程(输入、d、tmp、ob)
开始
如果ob='1',则
led-为什么“输入”在灵敏度列表中的精确副本?