【发布时间】:2014-07-26 21:00:19
【问题描述】:
所以我试图编写一个执行与门的函数,输入是门输入的向量,以及输入的数量。但是由于某种原因,编译器给了我一个错误,它由于某种原因无法识别内部使用的“和”逻辑运算符。谁能发现问题?
p.s 这是一个更大项目的一部分,该项目是一个 16counter (0-15),由 4 个链式 JK 触发器和 2 个 AND 门(使用我的“myand”函数)组成。
function myand (x: std_logic_vector; n : integer range 7 downto 0) return std_logic is
variable result: integer :=0;
begin
for i in 0 to n-1 loop
result:=result and x(i);
end loop;
return result;
end function;
编译错误是:
Error (10327): VHDL error at counter16.vhd(16): can't determine definition of operator ""and"" -- found 0 possible definitions
我什至尝试使用 '+' 而不是 'and' 但它还是同样的错误。
【问题讨论】:
-
并不意味着要弃用 sharth 的答案或您自己的努力,IEEE Std 1076-2008 (VHDL-2008) 为 and、or、nand、nor、xor 和 xnor 称为逻辑归约运算符。这些支持 std_logic_vector(std_ulogic_vector 的子类型),并且可能支持也可能不支持特定供应商的综合工具。 Recend Modelsim 和 Aldec VHDL 模拟器将支持这些 VHDL-2008 运算符。
标签: vhdl