ngtim 发表于 2010-6-27 22:58:43

在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

longtim 发表于 2010-6-27 23:22:39

quartusii 和lsplever编译都OK,你是不是顶层名和项目名不一致的错误警告 啊?

longt 发表于 2010-6-28 00:33:08

谢谢!
       问题已经搞定了.<br>
都是因为自己对开发环境不熟悉造成的.呵呵! <br>
<br>
我是初学者,让大家见笑了!

interige 发表于 2010-6-28 00:47:23

等待等等等等等等等等的等等等等等等等等的等等等等等等等等的

tim 发表于 2010-6-28 01:41:58

到底什么原因。

encounter 发表于 2010-6-28 02:34:53

我用的是quartus 2,文件名与工程名不一致,报错。

usb 发表于 2010-6-28 02:46:29

http://bbs.vibesic.com/images/smilies/default/loveliness.gif
&nbsp; &nbsp; 新手嘛~~&nbsp;&nbsp;正常~~ 哈哈!!

ICE 发表于 2010-6-28 03:14:24

这样才好啊

Sunlife 发表于 2015-7-5 21:04:33


我用的是quartus 2,文件名与工程名不一致,报错。
页: [1]
查看完整版本: 在VHDL 语言中,COMPONENT 语句的怪问题