出现这个错误“found 2 possible definitions”是为什么?
题目要求是利用减法运算后的符号和结果来判别两个值的大小,下面是我的源程序:
LIBRARY IEEE;
USE IEEE.STD_LOGIC_ARITH.ALL;
ENTITY cmp8bit_2 IS
PORT( a : IN SIGNED(7 DOWNTO 0);
b : IN SIGNED(7 DOWNTO 0);
d,e,f : OUT SIGNED(1 DOWNTO 0));
END ENTITY cmp8bit_2;
ARCHITECTURE one OF cmp8bit_2 IS
SIGNAL qout : SIGNED(7 DOWNTO 0);
BEGIN
qout <= a - b;
PROCESS(qout)
BEGIN
IF qout="00000000" THEN d <= '1';
e <= '0';
f <= '0';
ELSIF qout(7)='0' THENd <= '0';
e <= '1';
f <= '0';
ELSIF qout(7)='1' THEN d <= '0';
e <= '0';
f <= '1';
ELSE d <= 'Z';
e <= 'Z';
f <= 'Z';
END IF;
END PROCESS;
END ARCHITECTURE one;
可以解释下为什么出现下面这个错误吗?Error (10327): VHDL error at cmp8bit_2.vhd(14): can't determine definition of operator ""="" -- found 2 possible definitions USE IEEE.STD_LOGIC_ARITH.ALL 换成 IEEE.STD_LOGIC_UNSIGNED.ALL 试试
我看不懂代码,我刚开始学,但我帮你google了下,不知道行不 你这写了什么程序呀,VHDL中压根就没SIGNED数据类型,建议你先看看语法再说。 回复 2# yq_dream
不行噢,SIGNED这个类型不在你说的那个程序包里面! 回复 3# 最是那低头温柔
我找的资料书上有SIGNED和UNSIGNED这两个数据类型啊! 别扯淡了,你就用STD_LOGIC的就行。我现在就给你写段程序 别扯淡了,你就用STD_LOGIC的就行。我现在就给你写段程序 LIBRARY IEEE;
use ieee.std_logic_1164.all;
USE IEEE.STD_LOGIC_ARITH.ALL;
use ieee.std_logic_unsigned.all;
ENTITY cmp8bit_2 IS
PORT( a : IN STD_LOGIC_vector(7 DOWNTO 0);
b : IN STD_LOGIC_vector(7 DOWNTO 0);
d,e,f : OUT STD_LOGIC );
END ENTITY cmp8bit_2;
ARCHITECTURE one OF cmp8bit_2 IS
SIGNAL qout : STD_LOGIC_vector(7 DOWNTO 0);
BEGIN
qout <= a - b;
PROCESS(qout)
BEGIN
IF qout="00000000" THEN d <= '1';
e <= '0';
f <= '0';
ELSIF qout(7)='0' THENd <= '0';
e <= '1';
f <= '0';
ELSIF qout(7)='1' THEN d <= '0';
e <= '0';
f <= '1';
ELSE d <= 'Z';
e <= 'Z';
f <= 'Z';
END IF;
END PROCESS;
END ARCHITECTURE one; LIBRARY IEEE;
use ieee.std_logic_1164.all;
USE IEEE.STD_LOGIC_ARITH.ALL;
use ieee.std_logic_unsig ...
最是那低头温柔 发表于 2011-6-13 22:58 http://www.fpgaw.com/images/common/back.gif
学习下,虽然看不懂,:lol
但对照网络查找了下,至少知道了,定义下面的a,b,c....时,不能用SIGNED,要用STD_LOGIC这个
呵呵 我又百度了下
对于楼主的问题 别个是这样说的
你在库里已经定义采用有符号型数据,就不必在数据类型重复定义
其实下面这个代码也是对的,我编译了下也是通过的(虽然我看不懂这个代码是什么意思,= =!),就是UNSIGNED换成SIGNED,
LIBRARY IEEE;
use ieee.std_logic_1164.all;
USE IEEE.STD_LOGIC_ARITH.ALL;
use ieee.std_logic_signed.all;
ENTITY cmp8bit_2 IS
PORT( a : IN STD_LOGIC_vector(7 DOWNTO 0);
b : IN STD_LOGIC_vector(7 DOWNTO 0);
d,e,f : OUT STD_LOGIC );
页:
[1]
2