Math VHDL定点功率运算子(**)

Math VHDL定点功率运算子(**),math,vhdl,fixed-point,Math,Vhdl,Fixed Point,我正在用VHDL编写GL分数运算符,以便在FPGA上实现。我使用IEEE.fixed_pkg包,以获得ufixed和sfixed类型及其操作 问题是,我需要在某些地方进行幂运算(h**alpha),其中h和alpha都是固定数 当我尝试使用ufixed使用**运算符时,我得到:中缀运算符“**”没有可行的条目。我意识到这个程序包中没有实现这个操作 现在,有没有一种方法可以提高固定数(基数和指数)的幂,而不必编写实现我自己的操作?(因为这不是本项目的重点。)不,欢迎使用HDL one哦one:如果

我正在用VHDL编写GL分数运算符,以便在FPGA上实现。我使用IEEE.fixed_pkg包,以获得ufixed和sfixed类型及其操作

问题是,我需要在某些地方进行幂运算(h**alpha),其中h和alpha都是固定数

当我尝试使用ufixed使用**运算符时,我得到:中缀运算符“**”没有可行的条目。我意识到这个程序包中没有实现这个操作


现在,有没有一种方法可以提高固定数(基数和指数)的幂,而不必编写实现我自己的操作?(因为这不是本项目的重点。)

不,欢迎使用HDL one哦one:如果编译器没有提供给您,您必须自己构建它。注意,对于固定的数字,一个简单的循环可以完成这项工作,但是每次计算可能需要多个时钟周期,**对于整数存在,但是不要尝试在实际硬件中使用它,除非基是2@Oldfart你能告诉我simple loop将如何完成这项工作吗?如果基和指数都是定点小数,那么循环如何完成这项工作呢?定点就像标准的整数乘法,你只需要“记住”小数点在哪里。那么a**b是VHDL的等价物:
p=1;当(b){p=p*a;b--;}
@Oldfart说我们有1.65**2.1时,你怎么做这个循环?当指数仅为整数时,U是对的