verilog中可綜合的task使用


參考: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已經驗證,是可以綜合的。

 

以上。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM