Syntax 我的VHDL语句允许吗? ieee库; 使用ieee.std_logic_1164.all; 使用ieee.std_logic_1164_unsigned.all; 实体alu是 端口(a:标准逻辑向量(15到0); b:标准逻辑向量(15到0); 运算:整数(1到10); 结果:输出标准逻辑向量(15到0); ); alu的架构arch alu是 信号算术,逻辑:标准逻辑向量(15到0); 开始 ----给算术和逻辑赋值的其余代码---- 使用操作选择 结果

Syntax 我的VHDL语句允许吗? ieee库; 使用ieee.std_logic_1164.all; 使用ieee.std_logic_1164_unsigned.all; 实体alu是 端口(a:标准逻辑向量(15到0); b:标准逻辑向量(15到0); 运算:整数(1到10); 结果:输出标准逻辑向量(15到0); ); alu的架构arch alu是 信号算术,逻辑:标准逻辑向量(15到0); 开始 ----给算术和逻辑赋值的其余代码---- 使用操作选择 结果,syntax,vhdl,Syntax,Vhdl,根据您使用的语法,VHDL'93允许使用(要查看的产品,顺序为:选定的信号分配、选定的波形、选项、选项、离散的范围、范围),但语法似乎不允许在范围周围使用括号。另请参见(在范围周围也没有括号)。您可以在选项中使用范围,但应省略括号 并不是说您的代码片段包含的错误比多余的括号多得多。您缺少一个结束实体,端口声明末尾有一个多余的分号,并且整数端口声明不正确,。。。一个好的VHDL IDE,例如,将帮助您立即捕获这些。 更正片段: LIBRARY ieee; USE ieee.std_logic_11

根据您使用的语法,VHDL'93允许使用(要查看的产品,顺序为:选定的信号分配、选定的波形、选项、选项、离散的范围、范围),但语法似乎不允许在范围周围使用括号。另请参见(在范围周围也没有括号)。

您可以在选项中使用范围,但应省略括号

并不是说您的代码片段包含的错误比多余的括号多得多。您缺少一个
结束实体
,端口声明末尾有一个多余的分号,并且整数端口声明不正确,。。。一个好的VHDL IDE,例如,将帮助您立即捕获这些。 更正片段:

LIBRARY ieee;
USE ieee.std_logic_1164.all;
USE ieee.std_logic_1164_unsigned.all;

ENTITY alu IS
    PORT (a: IN STD_LOGIC_VECTOR (15 DOWNTO 0);
          b: IN STD_LOGIC_VECTOR (15 DOWNTO 0);
          operation: IN INTEGER (1 TO 10);
          result: OUT STD_LOGIC_VECTOR (15 DOWNTO 0);
    );

ARCHITECTURE arch-alu OF alu IS
    SIGNAL arith, logic: STD_LOGIC_VECTOR (15 DOWNTO 0);
    BEGIN
----rest of the code which give values to arith and logic----
    WITH operation SELECT
        result <= arith WHEN (1 TO 5),
                  logic WHEN (6 TO 10);
END arch-alu
ieee库;
使用ieee.std_logic_1164.all;
实体alu是
端口(a:标准逻辑向量(15到0);
b:标准逻辑向量(15到0);
操作:在1到10的整数范围内;
结果:输出标准逻辑向量(15到0)
);
终端实体;
alu的建筑arch_alu是
信号算术,逻辑:标准逻辑向量(15到0);
开始
--给算术和逻辑赋值的其余代码----
使用操作选择

结果谢谢你的帮助链接!
LIBRARY ieee;
USE ieee.std_logic_1164.all;

ENTITY alu IS
    PORT (a: IN STD_LOGIC_VECTOR (15 DOWNTO 0);
          b: IN STD_LOGIC_VECTOR (15 DOWNTO 0);
          operation: IN INTEGER range 1 TO 10;
          result: OUT STD_LOGIC_VECTOR (15 DOWNTO 0)
    );
end entity;

ARCHITECTURE arch_alu OF alu IS
    SIGNAL arith, logic: STD_LOGIC_VECTOR (15 DOWNTO 0);
    BEGIN
--rest of the code which give values to arith and logic----
    WITH operation SELECT
        result <= arith WHEN 1 TO 5,
                  logic WHEN 6 TO 10;
END arch_alu;