gpt4 book ai didi

vhdl - 在 VHDL 中实现方程

转载 作者:行者123 更新时间:2023-12-02 06:57:41 25 4
gpt4 key购买 nike

我正在尝试在 VHDL 中实现方程式,其中乘以某个常数和加法。方程式如下,

  y<=-((x*x*x)*0.1666)+(2.5*(x*x))- (21.666*x) + 36.6653;   ----error

我得到了错误

     HDLCompiler:1731 - found '0' definitions of operator "*",  
can not determine exact overloaded matching definition for "*".

实体是

    entity eq1 is
Port ( x : in signed(15 downto 0);
y : out signed (15 downto 0) );
end eq1;

我尝试使用整数函数 RESIZE 和 x,但它给出了同样的错误。我应该使用另一种数据类型吗? x 具有纯整数值,如 2、4、6..等。

最佳答案

由于xy 的数据类型是signed,因此您可以将它们相乘。但是,没有符号与实数的乘法。即使有,结果也是真实的(无符号或整数)。

所以首先,您需要弄清楚您想要什么(语义)。然后你应该添加类型转换和转换函数。

y <= x*x; -- OK
y <= 0.5 * x; -- not OK
y <= to_signed(integer(0.5 * real(to_integer(x))),y'length); -- OK

关于vhdl - 在 VHDL 中实现方程,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28063705/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com