SV語法學習Day2

數據類型

  1. 按照四值邏輯和二值邏輯類型來劃分
  • 四值邏輯類型:integer、logic、reg、net-type(例如wire、tri)
  • 二值邏輯類型: byte、shortint、int、longint、bit
  1. 按照有符號和無符號的類型來劃分
  • 有符號類型:byte、shortint、int、longint、integer
  • 無符號類型: bit、logic、reg、net-type(例如wire、tri)
    注意:四值邏輯在轉換為二值邏輯時,其中x,z值會對應為0

function函數

SV函數定義同C語言類似:

  • 可以在參數列表中指定輸入參數(input)、輸出參數(output)、輸入輸出參數(inout)或者引用參數(ref)
  • 可以返回數值或者不返回數值
  • 默認的數據類型是為logic,例如input[7:0] addr
  • 數組可以作為形式參數傳遞
  • function可以返回或者不返回結果,如果返回即需要關鍵詞return,如果不返回則應該在聲明function時采用void function()
  • 只有數據變量可以在形式參數列表中被聲明為ref類型,而線網類型則不能聲明為ref類型
  • 在使用ref時,有時候為了保護數據對象只被讀取不被寫入,可以通過const的方式來限定ref聲明的參數
  • 在聲明參數時,可以給入默認數值,例如input[7:0] addr =0 ,同時在調用時如果缺省,那么默認值會被傳遞給function

task任務

任務相比于函數要更加靈活,且以下不同點:

  • task無法通過return返回結果,因此只能通過output、inout或者ref的參數來返回
  • task內可以置入耗時語句,而function則不能。常見的耗時語句包括@event、wait event 、 #delay
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容