vhdl中的结构体系结构代码
我是vhdl新手,我正在尝试使用结构模型编译代码。我有一个简单的例子,如下所示:vhdl中的结构体系结构代码,vhdl,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
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,我也感到困惑?该代码的内部工作原理是什么?我试着搜索,但什么也找不到。我不想把我的基本知识弄好
提前谢谢 您试图在这里实例化两个组件(xor2和inv2)。但是编译器对它们一无所知,所以它说是未定义的对象。你的问题是正确的,你需要定义这段代码的内部工作 您需要创建自己的名为xor2.vhd的文件,并为其定义实体/体系结构。根据组件定义,您已经知道它应该是什么样子: 组件xor2端口(x,y:输入位;z:输出位);端部元件
x和y是bit类型的输入,z是bit类型的输出。因此,编写内部工作,然后首先编译它们,然后将它们全部编译到同一个库中,它应该可以工作。您试图在这里实例化两个组件(xor2和inv2)。但是编译器对它们一无所知,所以它说是未定义的对象。你的问题是正确的,你需要定义这段代码的内部工作 您需要创建自己的名为xor2.vhd的文件,并为其定义实体/体系结构。根据组件定义,您已经知道它应该是什么样子: 组件xor2端口(x,y:输入位;z:输出位);端部元件
x和y是bit类型的输入,z是bit类型的输出。因此,编写内部工作,然后先编译这些工作,然后将这些工作编译到同一个库中,它应该可以工作。非常感谢。现在更有意义了!谢谢。现在更有意义了!