iT邦幫忙

2022 iThome 鐵人賽

DAY 20
0
自我挑戰組

System Software Introduction系列 第 20

The Verification of System Software​ - DVT

  • 分享至 

  • xImage
  •  

What is DVT

DVT: design verification test,是software developers依照hardware規格、設計,使用software針對hardware進行的廣泛設計驗證。

Why DVT is Needed

  • Hardware design符合spec
    Device driver會依照hardware規格撰寫,如果hardware design不符合harwdware規格,則device driver的運作也不能符合預期。
  • 以system software developer使用hardware的角度進行驗證
    Hardware designer會自行對hardware驗證,但system software developer使用hardware的方式不一定能完全被hardware designer的驗證完整包含,所以需要system software developer以使用hardware的方式作為基準進行驗證。
  • Real target的驗證需要由software developer進行
    Hardware designer會使用RTL撰寫並用simulator驗證hardware desgin,可以藉由simulator輸出狀態進行驗證,但real target中的hardware只能使用software access,所以design verification只能由software進行,所以需要使用DVT驗證。

The Flow of DVT

  • DVT的主要驗證方法
    檢查hardware進行操作前的狀態->操作hardware->檢查hardware的行為是否符合預期 (golden pattern)
  • Default control register value test
    檢查hardware control registers在software沒有進行設定前,control registers的值是否符合hardware規格。
    例如: ARM的embedded cross trigge有規定每一個control register的default (reset) value,DVT進行時會讀取每一個control register確認值是否和規格相符。
  • Control register read write test
    檢查hardware control registers是否依照hardware規格可寫入並且再讀取可得到相同的值。
    例如: ARM的embedded cross trigger有規定CTI control register的bit-0可以被寫入為0或1,DVT進行時會對此control register的bit-0測試寫入0或1再讀取確定是否相符。
  • 行為驗證
    依照hardware規格,驗證hardware的行為是否符合。
    例如: 有一個PMU(performance monitor unit)可以在啟用後計算有多少CPU instructions被執行,DVT進行時會設計將PMU啟用後讓CPU執行3個CPU instructions在停下PMU,之後檢查PMU記錄到的CPU instruction數量是否也是3,如果PMU的紀錄不是3就表示PMU設計有誤。

The Issues in DVT

DVT flow bugs

  1. 對於hardware操作有誤,以PMU DVT flow為例: 啟用、停用PMU的操作如果不正確,最後PMU紀錄的值就不會符合預期 => Solution: 需要改正對hardware的操作方法
  2. 操作hardware之後,對於hardware行為的預期錯誤,以PMU DVT flow為例: 如果software developer誤判預期PMU紀錄instruction執行數量為4而非3,則DVT flow檢查時會一直判定hardware design有誤 => Solution: 需要修正對hardware 行為的預期

Hardware design bugs

Hardware design確實有誤,導致DVT flow無法檢查到預期的hardware行為

Solution for simulator: simulator designer可以馬上修改simulator重新build,再提供新版本simulator給system software developer驗證

FPGA: hardware designer可以重新產生bitfile修正FPGA的設計,再重新燒進FPGA

ASIC: hardware designer需要更改design,並且重新製造hardware。如果確認無法重新製造,則driver developer需要和hardware designer討論避開hardware design錯誤的功能與情況。


上一篇
The Verification of System Software​ - Bring-up
下一篇
The Verification of System Software - Device Driver Test
系列文
System Software Introduction30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言