Function VHDL在Generate中使用库函数
因此,我使用一种算法来创建一个类似于link()中的结构。所以我创建了一个函数,它将决定下一步跳转到哪里。 在我的VHDL交换机体系结构中,我试图使用一个generate语句来定义节点并适当地映射它们的端口,但是当我综合它时,它说 “banyan”不能用于此表达式(banyan是库中的函数)。下面是一些示例代码:Function VHDL在Generate中使用库函数,function,package,vhdl,Function,Package,Vhdl,因此,我使用一种算法来创建一个类似于link()中的结构。所以我创建了一个函数,它将决定下一步跳转到哪里。 在我的VHDL交换机体系结构中,我试图使用一个generate语句来定义节点并适当地映射它们的端口,但是当我综合它时,它说 “banyan”不能用于此表达式(banyan是库中的函数)。下面是一些示例代码: INPUT: IF ( l = 1 ) GENERATE NODE_Element : BN PORT MAP(
INPUT: IF ( l = 1 ) GENERATE
NODE_Element : BN PORT MAP(
clk, reset,
Input((2*n)-1),
Input((2*n)),
SyncIn,
con(l+1,Banyan(l,n),BanyanPort(l,n)),
con(l+1,Banyan(l,n),BanyanPort(l,n)),
sync(l+1,n)
); --GENERIC MAP(...)
END GENERATE INPUT;
有人知道如何解决这个问题吗。。。这似乎很基本,但我可以找到一个解决方案。看起来问题不是生成,而是端口映射。在端口映射中可以执行的操作有一些限制,并且许多工具(您不能说这是哪个synth工具!)都有自己的严格限制 我建议将函数结果分配给临时信号,并在端口映射中使用该信号
INPUT: IF l = 1 GENERATE
Banyan1 <= Banyan(l,n);
BanyanPort1 <= BanyanPort(l,n);
Con1 <= con(l+1,Banyan(l,n),BanyanPort(l,n));
NODE_Element : BN PORT MAP(
clk, reset,
Con1,
);
END GENERATE INPUT;
输入:如果l=1,则生成
班扬1干杯,布莱恩。。。我愚蠢地拥有另一个名字叫榕树的实体。我猜这是连续10个小时在荧幕上主演的结果。顺便说一句,我使用的是Xilinx ISE,很抱歉没有提到这一点。