无法使用 VHDL 2008 Quartus Prime 进行编译

Can't compile with VHDL 2008 Quartus Prime

我正在使用 Quartus Prime Lite Edition,我想像这样在 std_logic_vector 上使用一元运算符 nand

library ieee;
use ieee.std_logic_1164.all;
use ieee.std_logic_unsigned.all;

entity example1 is
    port( 
        BIN : in std_logic_vector (7 downto 0);
        result : out std_logic
    );
end;

architecture Beh of example1 is
begin
    
    result <= nand BIN;
        
end Beh;

我尝试按照 this 说明进行操作,在 编译器设置中的 VHDL 输入 下更改了 VHDL 版本 。仍然没有效果并得到: 错误 (10500):lab2.vhd(16) 文本“nand”附近的 VHDL 语法错误;期望“(”,或标识符(“nand”是保留关键字),或一元运算符

出现此错误是因为“nand”需要两个输入。

从你的问题来看,我觉得你想对输入执行按位与非运算。

如果是,您可以按如下方式替换架构。我假设您熟悉“生成”语法!

architecture Beh of example1 is 
--Signals for Storing Intermediate Bitwise Values
signal temp1:std_logic_vector(3 downto 0);
signal temp2:std_logic_vector(1 downto 0);

begin
-- First level of NAND Operations

label_1: for i in 0 to 3 generate
temp1(i)<=BIN(2*i) nand BIN(2*i+1);
end generate label_1;

-- Second level of NAND Operations

label_2: for j in 0 to 1 generate
temp2(j)<= temp1(2*j) nand temp1(2*j+1);
end generate label_2;

-- Getting the Final Output 

result<= temp2(1) nand temp2(0);
end Beh;

谢谢, 雷博士

Quartus Prime Lite 不支持 VHDL 2008。

https://www.intel.com/content/dam/www/programmable/us/en/pdfs/literature/po/ss-quartus-comparison.pdf