vhdl中的结构体系结构代码

时间:2013-09-20 17:55:28

标签: vhdl

我是vhdl的新手,我正在尝试使用结构模型编译代码。我有一个简单的例子如下所示:

ENTITY equiv IS
    PORT (a, b : IN BIT; 
          c    : OUT BIT);
END equiv;

ARCHITECTURE structure OF equiv IS

    SIGNAL tmp : BIT;

    COMPONENT xor2
        PORT (x, y : IN BIT; z : OUT BIT);
    END COMPONENT;

    COMPONENT inv 
        PORT (x : IN BIT; z : OUT BIT); 
    END COMPONENT;

BEGIN

    u0: xor2 PORT MAP (a, b, tmp);
    u1: inv PORT MAP (tmp, c);

END structure;

当我尝试编译此代码时,我不断收到错误消息:

“所选范围内未定义的对象”

我也很困惑代码如何确定xor2是xor?这段代码的内部工作是什么?我试着搜索,但找不到任何东西。我不想让我的基础知识正确。

提前致谢!

1 个答案:

答案 0 :(得分:1)

您正尝试在此处实例化2个组件(xor2和inv2)。但是编译器对它们一无所知,因此它表示未定义的对象。您的问题是现场,您需要定义此代码的内部工作。

您需要创建一个名为xor2.vhd的文件,并为其定义实体/体系结构。根据组件定义,您已经知道它应该是什么样子:     COMPONENT xor2 PORT(x,y:IN BIT; z:OUT BIT);结束组件;

x和y是类型位的输入,z是类型位的输出。所以编写内部工作,然后先编译它们,然后将它们全部编译到同一个库中,它应该可以工作。