c语言延时函数_SystemVerilog函数和任务
生活随笔
收集整理的這篇文章主要介紹了
c语言延时函数_SystemVerilog函数和任务
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
函數和任務
- Verilog中函數與任務區別:
任務可以消耗時間,函數不能消耗時間;
函數里不能帶有#10延時語句或者@(posedge clk)、wait(ready)的阻塞語句;
函數不能調用任務;
函數必須有返回值,并且返回值必須被使用;
1.函數(與C語言類似)
函數的參數可以聲明為input、output、inout、ref;
Void函數不返回數值;
函數可以調用函數,但必須立即返回,即不能發生阻塞、等待行為;
如果調用具有返回值的函數,但沒有使用該返回值,應添加void‘()進行轉換;
Void’(some_function());
2.任務
任務的定義可以指定參數input、output、inout、ref;任務沒有返回值;
任務可以消耗仿真時間;
任務可以調用其他任務或者函數;
3.任務和函數區別
- 函數不會消耗仿真時間,而任務可能會消耗仿真時間;
- 函數無法調用任務,而任務可以調用函數;
- 一個函數只能返回一個數值,而任務不會返回數值;
- 函數可以作為一個表達式中的操作數,而該操作數的值即函數的返回值;
4.參數傳遞
- input、output、inout參數在調用方法時屬于值傳遞,即傳遞過程中,外部變量的值會經過拷貝,賦值給形式參數;
- 值傳遞的過程只會出現在方法的調用時和返回時;
- ref參數在傳遞時不會發生值拷貝,而是將變量指針傳遞到方法中,因此在方法內部對于參數的任何操作會立即影響到外部變量;
- 為了避免外部傳入的ref參數會被方法修改,可以添加const修飾符,表示變量是只讀變量;
- SV允許方法聲明輸入參數時指定參數的默認值;
- SV允許類似于模塊例化,可以由參數位置在調用方法時傳遞參數,也可以由參數名字映射的方式來傳遞參數;
總結
以上是生活随笔為你收集整理的c语言延时函数_SystemVerilog函数和任务的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Java中super函数的用法
- 下一篇: 使用贪心算法解决最小生成树问题。