在函数中使用for循环时,我对verilog中的计时有一些疑问。
如何估计执行 for 循环正在运行的函数所需的时钟周期?
以及如何估计一次 for 循环迭代所需的时钟时间。
函数是否像中断一样工作。例如:如果我在顺序逻辑中调用一个函数,那么一切都会停止,直到函数完成?
[更新] 这里有一些关于我正在使用 for 循环的更多信息。
integer n;
always@(posedge CLK)
if(IN) // some input wire IN
begin
n = n + 1;
Result[31:0] <= Approx(n); //put Result from Approx into output reg Result
end
function [31:0] Approx
input n;
integer n;
real fp; //some real number to store the approximation result
begin
for(integer i=0; i < 2**16; i=i+1)
begin
... // do Approximation within fixed iteration steps
... // Result is a floating point number
end
Approx[31:0] = convert_fp_to_bin(fp); //another function with for-loop to convert decimal number into binary number
end
....