參考:https://blog.csdn.net/CrazyUncle/article/details/86164830
注意事項:無法用於仿真。仿真需進行always拆分。
前言
在進行多通道數據處理的時候,對於數據截位這樣的操作,重復性的功能任務則可使用task進行預先定義,直接調用。
減少代碼量及代碼出錯概率及后期修改容易程度。
流程
(1)任務的語法格式:
task <任務名>; <端口及數據類型聲明語句> <語句1> <語句2> ... <語句n> endtask
(2)任務注意事項:
第一行task語句中不能列端口名稱,system verilog中可以。
輸入輸出端口數量不受限制,但輸出只能為reg。
任務中不能出現initial,always。但任務可在initial、always中使用。
vivado支持task綜合,但需保證task中的代碼本來就是可以綜合的。
(3)實際代碼驗證:
調用此task:注意輸入輸出要一一對應。
vivado已經驗證,是可以綜合的。
以上。