Vhdl 如何在Xilinx中实现最大公约数?[硬件描述语言]

Vhdl 如何在Xilinx中实现最大公约数?[硬件描述语言],vhdl,xilinx,Vhdl,Xilinx,我试图用VHDL语言实现一个简单的GCD算法,但我得到了一个错误“error:HDLCompiler:981:Non-static loop limited extered” 那么,while语句如何在没有上述错误的情况下工作呢?如果它不适用于xilinx 14.7,我可以用什么语句替换它 signal a,b,GCD: integer; a<=100; --example of a b<=50; --example of b while NOT (a*b=0) loop if a

我试图用VHDL语言实现一个简单的GCD算法,但我得到了一个错误“error:HDLCompiler:981:Non-static loop limited extered”

那么,while语句如何在没有上述错误的情况下工作呢?如果它不适用于xilinx 14.7,我可以用什么语句替换它

signal a,b,GCD: integer;

a<=100; --example of a
b<=50; --example of b
while NOT (a*b=0) loop
if a>b then
a<=a-b;
else
b<=b-a;
end if;
end loop;
if a=0 then --result
GCD<=b; 
else GCD<=a; 
end if;
信号a、b、GCD:整数;

aa。不是a,b。一个合成错误,虽然合成不需要支持循环,并且支持循环的迭代次数很少(条件表达式的每个值的语句序列都是重复的,但您没有显示类型),c。信号分配不会按此处显示的方式工作,当进程处于活动状态时,信号永远不会更新。D将for循环与if语句一起有条件地执行exit语句,例如。您的算法是值特定的,并且f。首先模拟。请参见Youtube。(接下来的第94课将介绍真正的硬件设计)。Pong Chu书的配套网站上有一个VHDL实现代码示例列表(list_12_06_07_08_gc.vhd)和第12章的VHDL GCD实现幻灯片。12.4本书中的GCD电路比Haskell/Hanna的《使用数字FPGA板的数字设计》一书中的论述要短VHDL/Active HDL Edition(上面链接的视频源自)。非常感谢,请缩进您的代码。