-1

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

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

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

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

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

http://pastebin.com/aAJAs6KQ

4

1 回答 1

0

Just use a process to make it more readable:

...
-- 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;
...      
于 2013-02-25T23:15:19.827 回答