For loop vhdl代码(用于循环)
说明: 我想写vhdl代码,在数组A中找到最大的整数,数组A是一个由20个整数组成的数组 问题:For loop vhdl代码(用于循环),for-loop,vhdl,For Loop,Vhdl,说明: 我想写vhdl代码,在数组A中找到最大的整数,数组A是一个由20个整数组成的数组 问题: 我的算法应该是什么样的,输入顺序语句的位置 我的vhdl代码: highnum: for i in 0 to 19 loop i = 0; i < 20; i<= i + 1; end loop highnum; highnum:0到19循环中的i i=0; i0); 信号最大值:整数; --上面是vhdl中的整数数组,所有整数都初始化为值0。 A(0)首先,您应该知道如何在vhd
我的算法应该是什么样的,输入顺序语句的位置 我的vhdl代码:
highnum: for i in 0 to 19 loop
i = 0;
i < 20;
i<= i + 1;
end loop highnum;
highnum:0到19循环中的i
i=0;
i<20;
简单地将C循环转换为VHDL,在一个VHDL时钟进程内,将工作并可合成。它将生成大量硬件,因为它必须在一个时钟周期内生成输出,但如果您只是模拟它,这并不重要
如果硬件太多,则必须将其实现为至少具有两种状态(空闲和计算)的状态机,以便它在计算时每个时钟周期仅执行一次循环迭代,并在完成时返回空闲状态。在VHDL时钟进程内,简单地将C循环转换为VHDL,将工作并可合成。它将生成大量硬件,因为它必须在一个时钟周期内生成输出,但如果您只是模拟它,这并不重要
如果硬件太多,则必须将其实现为至少具有两种状态(空闲和计算)的状态机,以便在计算时每个时钟周期只执行一次循环迭代,并在完成后返回空闲状态。首先,您应该知道如何在vhdl中定义阵列。
让我为您定义一个数组
type array_of_integer array(19 downto 0) of integer;
signal A : array_of_integer :=(others => 0);
signal max : integer;
-- Now above is the array in vhdl of integers all are initialized to value 0.
A(0) <= 1;
A(1) <= 2;
--
--
A(19)<= 19;
-- Now the for loop for calculating maximum
max <= A(0);
for i in 0 to 19 loop
if (A(i) > max) then
max <= A(i);
end if;
end loop;
输入整数数组的数组(19到0);
信号A:数组_的_整数:=(其他=>0);
信号最大值:整数;
--上面是vhdl中的整数数组,所有整数都初始化为值0。
A(0)首先,您应该知道如何在vhdl中定义数组。
让我为您定义一个数组
type array_of_integer array(19 downto 0) of integer;
signal A : array_of_integer :=(others => 0);
signal max : integer;
-- Now above is the array in vhdl of integers all are initialized to value 0.
A(0) <= 1;
A(1) <= 2;
--
--
A(19)<= 19;
-- Now the for loop for calculating maximum
max <= A(0);
for i in 0 to 19 loop
if (A(i) > max) then
max <= A(i);
end if;
end loop;
输入整数数组的数组(19到0);
信号A:数组_的_整数:=(其他=>0);
信号最大值:整数;
--上面是vhdl中的整数数组,所有整数都初始化为值0。
A(0)(在删除问题中的C代码之前,此答案更有意义!)(在删除问题中的C代码之前,此答案更有意义!)