我有一些關於在函數中使用for循環時verilog中的時間問題。功能for循環
如何估算執行for-loop操作函數所需的時鐘週期?
我該如何估計一個for-loop迭代所需的時鐘時間。
函數的工作原理與中斷類似嗎?例如:如果我在順序邏輯中調用一個函數,那麼在函數完成之前,所有內容都會暫停一次?
[更新] 以下是關於我正在使用for循環的更多信息。
integer n;
[email protected](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
....
函數和for-loops與時鐘週期無關。函數和循環只是一種語言功能,可以讓設計人員更輕鬆地描述硬件,或以更簡單的方式構建測試平臺。 – Paebbels
'在順序邏輯中調用一個函數,比一切都停止,直到函數完成'。每次調用一個函數都不會創建另一個硬件塊。 Verilog描述硬件,沒有像其他語言那樣的「調用」。 – Morgan