【问题标题】:VHDL Error (Simple Expression Expected)VHDL 错误(需要简单的表达式)
【发布时间】:2013-02-25 15:16:49
【问题描述】:

我是 VHDL 新手,我的代码有问题,我似乎无法修复。我们应该使用选定的信号分配或表格查找来做到这一点。我的是两者的结合,因为我们应该使用不关心不会发生的输入。

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

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

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

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

http://pastebin.com/aAJAs6KQ

【问题讨论】:

标签: compiler-errors vhdl digital hdl digital-logic


【解决方案1】:

只需使用一个过程使其更具可读性:

...
-- 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;
...      

【讨论】:

  • 为什么敏感列表中有“输入”?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-01-17
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多