我的代码上出现以下错误,我不知道它们是什么意思,也不知道如何解决它们

xxs899

因此,我试图在EDA PLayground上为32位ALU编写VHDL,但是我收到了一些我不太了解的错误消息,并且我不知道如何解决它们,有人可以帮忙吗?我不知道错误在哪里,我也不知道要在代码中进行哪些更改以解决这些错误。

以下是VHDL代码:

library IEEE;
use IEEE.std_logic_1164.all;
use IEEE.std_logic_signed.ALL;

entity alu is
    port(
    A, B: in std_logic_vector(31 downto 0);
            opcode: in std_logic_vector(2 downto 0);
            Result: in std_logic_vector(31 downto 0) 
            );
end entity alu;

architecture dataoperations of alu is
begin 
    Result <= A + B when opcode="1010" 
    else    A - B when opcode="1000"
    else    abs(A) when opcode="1011"
    else    -A  when opcode="1101"
    else    abs(B) when opcode="0001"
    else    -B when opcode="1001"
    else    A or B when opcode="0110"
    else    not A when opcode="1111"
    else    not B when opcode="0101"
    else    A and B when opcode="1100"
    else    A xor B when opcode="0010";
end architecture dataoperations;

这是测试平台代码:

library IEEE;
use IEEE.std_logic_1164.all;

entity mytestbench is
end entity mytestbench;

architecture test of mytestbench is
    signal in1, in2, out1: std_logic_vector (31 downto 0);
    signal in3: std_logic_vector (2 downto 0);
begin
    g1: entity work.alu(dataoperations)
        port map (A <= in1, B <= in2; opcode <= in3, Result <= out1);
    in1 <= "0001", "0FAF" after 20 ns, "F000" after 40 ns;
    in2 <= "0100", "7FFF" after 10 ns, "FFFF" after 30 ns;
    in3 <= "00";
end architecture test;  

这是错误消息:

COMP96 File: design.vhd
COMP96 Compile Architecture "dataoperations" of Entity "alu"
COMP96 ERROR COMP96_0143: "Object "Result" cannot be written." "design.vhd" 15 2
COMP96 File: testbench.vhd
COMP96 ERROR COMP96_0724: "',' or ')' expected." "testbench.vhd" 12 28
COMP96 ERROR COMP96_0015: "';' expected." "testbench.vhd" 12 31
COMP96 ERROR COMP96_0019: "Keyword 'when' expected." "testbench.vhd" 12 65
COMP96 ERROR COMP96_0015: "';' expected." "testbench.vhd" 12 65
COMP96 ERROR COMP96_0019: "Keyword 'end' expected." "testbench.vhd" 12 65
COMP96 ERROR COMP96_0016: "Design unit declaration expected." "testbench.vhd" 12 66
COMP96 ERROR COMP96_0019: "Keyword 'of' expected." "testbench.vhd" 16 22
COMP96 ERROR COMP96_0018: "Identifier expected." "testbench.vhd" 16 22
用户名

最后8个错误是在g1端口映射中的逗号分隔符处使用的分号。

-- port map (A <= in1, B <= in2; opcode <= in3, Result <= out1);
port map (A => in1, B => in2, opcode => in3, Result => out1);

列表以逗号分隔,接口声明列表以分号分隔。这是在端口映射方面丢失的端口关联(这不是声明,而port子句是)。

(注意,端口映射关联使用复合定界符,=>而不是<=在正式端口和实际信号之间使用。这可能是另外十几个错误。)

第一个错误是因为alu端口Result的模式错误(应为模式输出)。

这些是印刷错误。

mytestbench中存在尚未公开的错误。

分配给in1,in2的字符串值应该是位字符串(例如x“ 7FFF”),其中十六进制数字分别表示4个元素,当应该有32个元素时(例如x“ 00007FFF”),您将显示16个元素。分配给in3的值没有足够的元素。作为不良示例:

-- in1 <= "0001", "0FAF" after 20 ns, "F000" after 40 ns;
    -- in2 <= "0100", "7FFF" after 10 ns, "FFFF" after 30 ns;
    -- in3 <= "00";
    in1 <= x"00000001", x"00000FAF" after 20 ns, x"0000F000" after 40 ns;
    in2 <= x"00000100", x"00007FFF" after 10 ns, x"0000FFFF" after 30 ns;
    in3 <= "000";

这不是一个不好的努力。来自分号的期望逗号的错误数量令人惊讶,并且反映在ALDEC工具中的解析器体系结构上。前瞻为1的解析器会(应该)更快退出。语法错误可能很难为其提供有用的错误消息,因为在进行任何语义分析之前都会检测到它们。您最后的求助方法可能是检查语法(在LRM,IEEE标准1076中进行了描述)。

同一行的第一个错误:

OMP96 ERROR COMP96_0724: "',' or ')' expected." "testbench.vhd" 12 28

最后两个数字是行号,字符位置是第一个需要注意的地方。您几乎会认为在第一个错误之后退出会更好地“教”您语言语法。

还有一个未公开的模拟错误,例如when opcode="1010",字符串字面量长度与操作码中的元素数不匹配(3、2到0)。等于运算符将始终求值为FALSE。修复字符串文字或在操作码中具有匹配数量的元素。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

我正在尝试开发Web服务REST应用程序。我不知道如何解决以下错误

我的Swift应用出现错误,但我不知道如何解决?你能帮助我吗?

今天,当我打开电脑并想测试应用程序时出现此错误。不知道如何解决

我的`Buttonhandler`总是会导致此错误,我不知道如何解决

我正在尝试代码,但不知道在某页上出现错误,如无对象属性

我的脚本出现语法错误,但我不知道为什么以及如何解决它>

我的元素不在屏幕上,我不知道如何解决

SQL Server事务和事务隔离-收到我不知道如何解决的错误

我不知道这个错误是什么意思

我不知道为什么我的代码是错误的?那是什么错呢?

我遇到这些错误,不知道如何解决

我不知道该如何解决

SQL Select 我不知道到底是什么意思

如何解决:我的第二个 if 语句出现语法错误,但我不知道为什么?

我不知道 sql 语法中的错误是什么

我找到了错误的原因,但我不知道如何解决

Python:我不断收到广播错误,但我不知道如何解决它

安装scrapy错误 - 当我尝试安装scrapy时,出现以下错误,我不知道如何修复它:

我的代码出现错误,我不知道如何修复(Java fx stackPane)

由于 javascript 获取 PHP 值,代码无法正常运行,我不知道如何比较它们

每次运行代码时都会出现以下错误,但我不知道出了什么问题

我的页码显示有错误,我知道为什么以及在哪里但我不知道如何解决它们 (PyQt)

C:我不知道“while(temp->next->next)”是什么意思

C++ C26495 警告出现但我不知道如何解决

我收到一条错误消息,我不知道如何解决

我在 Flutter 中有一个错误,我不知道如何解决

我不知道如何解决 Visual Studio 中的“CS5001”错误

当我不知道对象数组的键/值时,访问它们的最佳方法是什么?

我不知道如何解决 OpenCV Python 问题