我們一般習慣在哪里開發我們的功能覆蓋率模型呢?是使用module,還是class?
眾所周知,module和class是2個完全不同的數據結構,一個靜態,一個動態。也正因為如此,從而存在不同的特性和應用場景。
module比較適合抽取RTL信號構造功能覆蓋率模型,而class比較適合根據驗證環境中的變量構造功能覆蓋率模型。
1. 上面class中聲明了一個covergroup,可以對類中的屬性m_x、m_y和m_z進行功能覆蓋率建模。
2. 需要在類的new方法中對covergroup進行實例化。
3. 這種在class中聲明covergroup的方法可以用來建模驗證環境中某些變量的功能覆蓋率,而不用依賴RTL。
上圖中的‘covergroup xyzCover’每一次在m_z發生變化時就會進行采樣,其中包含了2個coverpoints,分別是‘m_x’ 和‘m_y’.
由于這個covergroup聲明和實例化在一個class中,所以只有在這個class本身被實例化并且m_z不停地被改變賦值時才會進行采樣,否則不會有任何bins被覆蓋。
審核編輯:劉清
-
RTL
+關注
關注
1文章
385瀏覽量
59699
原文標題:在sv class中開發covergroup
文章出處:【微信號:芯片驗證工程師,微信公眾號:芯片驗證工程師】歡迎添加關注!文章轉載請注明出處。
發布評論請先 登錄
相關推薦
評論