在VHDL 语言中,COMPONENT 语句的怪问题
我用的工具是Altera 公司的MAX+plus II 10.1,下面就是一段编译总出问题的程序,但却没有发现任何的语法错误,好郁闷哦!文件名:andn.vdh
LIBRARY IEEE;
USE IEEE.STD_LOGIC_1164.ALL;
ENTITY andn IS
GENERIC (n : INTEGER );--定义类属参量及其数据类型
PORT(a : IN STD_LOGIC_VECTOR(n-1 DOWNTO 0);--用类属参量限制矢量长度
c : OUT STD_LOGIC);
END;
ARCHITECTURE behav OF andn IS
BEGIN
PROCESS (a)
VARIABLE int : STD_LOGIC;
BEGIN
int := '1';
FOR I IN a'LENGTH - 1 DOWNTO 0 LOOP
IF a(i)='0' THEN int := '0';
END IF;
END LOOP;
c <=int ;
END PROCESS;
END;
文件名:exn.vhd
LIBRARY IEEE;
USE IEEE.STD_LOGIC_1164.ALL;
ENTITY exn IS
PORT(d1,d2,d3,d4,d5,d6,d7 : IN STD_LOGIC;
q1,q2: OUT STD_LOGIC);
END;
ARCHITECTURE exn_behav OF exn IS
COMPONENT andn --元件调用声明
GENERIC (n : INTEGER);
PORT(a: IN STD_LOGIC_VECTOR(n-1 DOWNTO 0);
c: OUT STD_LOGIC);
END COMPONENT ;
BEGIN -- 类属映射语句,定义类属变量,n赋值为2
u1: andn GENERIC MAP (n =>2)
PORT MAP (a(0)=>d1,a(1)=>d2,c=>q1);
u2: andn GENERIC MAP (n =>5)-- 定义类属变量,n赋值为5
PORT MAP (a(0)=>d3,a(1)=>d4,a(2)=>d5,
a(3)=>d6,a(4)=>d7, c=>q2);
END quartusii 和lsplever编译都OK,你是不是顶层名和项目名不一致的错误警告 啊? 谢谢!
问题已经搞定了.<br>
都是因为自己对开发环境不熟悉造成的.呵呵! <br>
<br>
我是初学者,让大家见笑了! 等待等等等等等等等等的等等等等等等等等的等等等等等等等等的 到底什么原因。 我用的是quartus 2,文件名与工程名不一致,报错。 http://bbs.vibesic.com/images/smilies/default/loveliness.gif
新手嘛~~ 正常~~ 哈哈!! 这样才好啊
我用的是quartus 2,文件名与工程名不一致,报错。
页:
[1]