所以我试图在 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