VHDL Quartus 无法识别 "+"和 "-"

标签 vhdl quartus

所以我试图制作一个程序,在一个简单的条件下执行加法或减法,但我的 VHDL 编译器一直告诉我它无法识别“+”和“-”的用途。 我也不确定我正在使用的库。

LIBRARY IEEE;
USE IEEE.STD_LOGIC_1164.ALL;
USE IEEE.NUMERIC_STD.ALL;

ENTITY ADDSUBS IS
PORT( CNTRL: in std_logic;
      NUM1, NUM2: in std_logic_vector(7 downto 0);
      SUM: out std_logic_vector(8 downto 0));
END ADDSUBS;

ARCHITECTURE A4 OF ADDSUBS IS
BEGIN
SUM <= ('0' & NUM1) + ('0' & NUM2) WHEN (CNTRL='0') ELSE
       ('0' & NUM1) - ('0' & NUM2) WHEN (CNTRL='1');
END;

最佳答案

您还没有包含任何可以使用 std_logic_vectors 进行算术的包。 ('0' & NUM1) 仍然是一个 std_logic_vector,您需要将其转换为无符号/有符号:

unsigned('0' & NUM1)

关于VHDL Quartus 无法识别 "+"和 "-",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53836185/

相关文章:

VHDL 输入输出端口

parameters - VHDL:conv_std_logic_vector参数错误

VHDL忽略进程外的语句

VHDL-矢量切片

verilog $readmemh 对于 50x50 像素的 rgb 图像花费太多时间

vhdl - 有限状态机 VHDL 重置

VHDL 初学者 - 这个电路中的时序出了什么问题?

compiler-errors - 如何在vhdl中使用 “+”操作?

fpga - Quartus (Altera) 中 FPGA 设计的最大频率

vhdl - 使用 De2-115 板运行在不同板上开发的项目?