用于片上系統(tǒng) (SoC) 中功能塊連接和管理的 AMBA 4 規(guī)范現(xiàn)在具有支持多核計(jì)算的高級(jí)可擴(kuò)展接口 (AXI) 一致性擴(kuò)展 (ACE)。ACE 規(guī)范支持跨多核處理器群集的系統(tǒng)級(jí)緩存一致性。對(duì)這種系統(tǒng)的核查提出了重大挑戰(zhàn)。在規(guī)劃這樣一個(gè)系統(tǒng)的功能驗(yàn)證時(shí),我們需要有一個(gè)有效的測(cè)試策略,以確保不僅測(cè)試協(xié)議的所有方面,而且確保以最少的努力捕獲錯(cuò)誤。換句話說(shuō),我們需要有一個(gè)分層測(cè)試策略,從簡(jiǎn)單的序列發(fā)展到更復(fù)雜的序列。目的是用更簡(jiǎn)單的序列捕獲盡可能多的問(wèn)題,這樣當(dāng)我們移動(dòng)到問(wèn)題空間更大的更復(fù)雜的序列時(shí),我們需要處理的錯(cuò)誤就會(huì)減少。在本系列中,我們將提出這樣的分層驗(yàn)證策略。本系列中的每篇文章都將描述:
正在測(cè)試的高級(jí)功能以及用于測(cè)試這些功能的序列
在此測(cè)試級(jí)別中,DUT 面臨的常見(jiàn)問(wèn)題
ACE 的分層測(cè)試 從 ACE
的角度來(lái)看,我們應(yīng)該在每個(gè)層次結(jié)構(gòu)級(jí)別測(cè)試什么?這些可能是:
集成/連接測(cè)試
系統(tǒng)是否正確連接?
每個(gè)主站能否正確訪問(wèn)系統(tǒng)中的每個(gè)從站?
互連路由事務(wù)是否正確?
互連是否正確寫(xiě)入/讀取數(shù)據(jù)?
基本一致性事務(wù)測(cè)試
ACE 協(xié)議使用許多不同類型的事務(wù)。這些事務(wù)中的每一個(gè)都可以由具有許多不同狀態(tài)的相應(yīng)緩存行(以下稱為初始緩存行狀態(tài))的主服務(wù)器啟動(dòng)。對(duì)于這些州中的每一個(gè),都有允許的法律回應(yīng)。隨著最終緩存行狀態(tài)(事務(wù)結(jié)束后)由各種配置選項(xiàng)確定,問(wèn)題空間變得更加復(fù)雜。我們需要確保測(cè)試每個(gè)初始緩存行狀態(tài)的所有響應(yīng)類型。在此級(jí)別的測(cè)試中,我們確保系統(tǒng)針對(duì)每種交易類型正確且一致地工作。
涉及訪問(wèn)重疊地址的測(cè)試
該規(guī)范給出了當(dāng)兩個(gè)主站訪問(wèn)相同/重疊地址時(shí)互連要遵守的幾條規(guī)則。在此級(jí)別的測(cè)試中,我們執(zhí)行序列以確保對(duì)重疊地址的所有訪問(wèn)都遵循這些規(guī)則
DVM 和屏障交易測(cè)試
全面的隨機(jī)測(cè)試(包括對(duì)重疊地址的訪問(wèn))
在這篇文章中,我們將詳細(xì)說(shuō)明分層驗(yàn)證的第一個(gè)方面。
集成和連接測(cè)試
前面已經(jīng)提到了集成和連接測(cè)試的關(guān)鍵驗(yàn)證要求。驗(yàn)證 IP 通常提供用于生成相關(guān)流量的現(xiàn)成序列。VIP附帶的一組此類序列或序列庫(kù)可以用作滿足用戶要求的起點(diǎn)。這使用戶能夠在適當(dāng)?shù)?a target="_blank">仿真階段方便地使用它們,并修改與其DUT相關(guān)的所需參數(shù)。因此,即使對(duì)于集成測(cè)試,用戶也可以利用VIP附帶的一些基本序列。讓我們看一下可用于此目的的序列類型。鑒于我們想要查看所有有效路徑,我們應(yīng)該有一組序列,這些序列將從 ACE/ACE_LITE 主站啟動(dòng) WriteNoSnoop 和 ReadNoSnoop 事務(wù),該主站使用屬性指定,例如port_id,可以是隨機(jī)端口或用戶配置的特定端口。“port_id”是一個(gè)屬性,可以配置為控制要從中啟動(dòng)事務(wù)的端口。然后,應(yīng)在系統(tǒng)中的所有主服務(wù)器上運(yùn)行這些序列。
下面是一個(gè)示例。以下代碼片段顯示了如何配置 port_id 屬性:
uvm_config_db#(int unsigned)::set(this, “env.axi_system_env.sequencer.svt_axi_ace_master_readnosnoop_sequence”, “port_id”, 1);
此屬性的默認(rèn)值可以根據(jù)系統(tǒng)中的主節(jié)點(diǎn)數(shù)量隨機(jī)化為有效值。
我們還需要確保主站訪問(wèn)系統(tǒng)中允許它訪問(wèn)的所有從站,以便測(cè)試所有路徑。為此,我們需要根據(jù)系統(tǒng)地址映射來(lái)約束地址,以便我們可以確保覆蓋所有路徑。這可以通過(guò)定義自定義約束來(lái)完成。
這就是我們?nèi)绾卧趶闹鞫藛?dòng)的事務(wù)上創(chuàng)建自定義約束:
類cust_svt_axi_master_transaction擴(kuò)展svt_axi_master_transaction;
蘭德整數(shù) slave_port_id = 0;
約束 valid_slave_port_id {
slave_port_id 在 {[0:'SVT_AXI_MAX_NUM_SLAVES-1]};
//' SVT_AXI_MAX_NUM_SLAVES 定義系統(tǒng)環(huán)境中
從屬服務(wù)器的最大數(shù)量 }
約束cust_addr_ranges_constraint { // 從主服務(wù)器 0 訪問(wèn): if (port_cfg.port_id == 0) { /
/ 訪問(wèn)從屬服務(wù)器 0
if (slave_port_id == 0) {
addr inside {[0:32'hff]}
}
else if (slave_port_id == 1) {
addr inside {[32'h10000:32'h100ff]};
}
Accesses from master 1 }
else if (port_cfg.port_id == 1) { }
}
endclass
集成測(cè)試中的關(guān)鍵驗(yàn)證點(diǎn)和潛在問(wèn)題
系統(tǒng)連接
SoC 有數(shù)百個(gè)信號(hào)需要連接,而其中一些信號(hào)通常連接不正確。如果未連接,VIP 將在這些信號(hào)上觀察到“X”,并報(bào)告指示相同的錯(cuò)誤。例如,此錯(cuò)誤可能表示互連的主端口和從機(jī)[2] VIP之間未連接ARCACHE信號(hào):
ace_system_env.slave[2].monitor [register_fail] 檢查 [效果=錯(cuò)誤]:執(zhí)行和失敗 – 啟用 AMBA 檢查:signal_valid_arsnoop_when_arvalid_high_check(ACE_LITE/版本 2.0),描述:當(dāng) ARVALID 為高時(shí),監(jiān)視器檢查 ARCACHE 上的 X 或 Z
事務(wù)路由
互連必須根據(jù)系統(tǒng)地址映射正確路由事務(wù)。應(yīng)該有適當(dāng)?shù)姆椒▉?lái)指定 VIP 的系統(tǒng)地址映射。如果互連路由事務(wù)不正確,系統(tǒng)監(jiān)視器可以標(biāo)記相應(yīng)的“事務(wù)路由檢查”。
數(shù)據(jù)完整性
此級(jí)別測(cè)試的一個(gè)關(guān)鍵方面是確保數(shù)據(jù)完整性。寫(xiě)入事務(wù)中的數(shù)據(jù)必須正確寫(xiě)入從站。同樣,從從站獲取的數(shù)據(jù)必須正確返回給主站。系統(tǒng)監(jiān)視器應(yīng)通過(guò)在事務(wù)完成后(在啟動(dòng)事務(wù)的主服務(wù)器上)比較內(nèi)存中的數(shù)據(jù)和事務(wù)來(lái)執(zhí)行這些檢查。系統(tǒng)監(jiān)視器應(yīng)具有跨不同數(shù)據(jù)寬度的端口執(zhí)行這些檢查所需的基礎(chǔ)結(jié)構(gòu)。為了使數(shù)據(jù)完整性檢查正常工作,在從屬VIP上運(yùn)行的序列必須更新相應(yīng)代理中的從屬內(nèi)存實(shí)例。如果從屬VIP配置為被動(dòng)模式,則系統(tǒng)監(jiān)視器應(yīng)維護(hù)內(nèi)存鏡像并根據(jù)總線上的活動(dòng)對(duì)其進(jìn)行更新。如果數(shù)據(jù)未正確寫(xiě)入/讀取,系統(tǒng)監(jiān)視器應(yīng)標(biāo)記數(shù)據(jù)完整性檢查。
在這篇文章中,我們描述了測(cè)試策略以及集成和連接測(cè)試的關(guān)鍵方面。在下一篇文章中,我們將討論連貫事務(wù)測(cè)試,我們將進(jìn)入有趣且具有挑戰(zhàn)性的緩存一致性世界。
審核編輯:郭婷
-
soc
+關(guān)注
關(guān)注
38文章
4177瀏覽量
218479 -
ACE
+關(guān)注
關(guān)注
0文章
21瀏覽量
10672 -
AXI
+關(guān)注
關(guān)注
1文章
128瀏覽量
16647
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
評(píng)論