SoC系統(tǒng)中AHB/VCI Wrapper的設(shè)計(jì)及驗(yàn)證
摘要:文章描述SoC平臺(tái)的片內(nèi)總線到VCI標(biāo)準(zhǔn)接口的轉(zhuǎn)換部件的設(shè)計(jì)實(shí)現(xiàn)。它可以把帶有VCI標(biāo)準(zhǔn)接口的IP模塊和AMBA AHB系統(tǒng)總線連接起來。研究內(nèi)容主要包括兩部分:第一,在VCI標(biāo)準(zhǔn)Rev2.0版本的基礎(chǔ)上,參照BVCI協(xié)議要求完成一個(gè)AMBA AHB系統(tǒng)總線與VCI標(biāo)準(zhǔn)接口的轉(zhuǎn)換部件-AHB/VCI Wrapper;第二,利用總線功能模型(BFM)思想,為AMBA總線和BVCI接口建立相應(yīng)的BFM模型,在此基礎(chǔ)上,完成對AMBA總線控制部件和AHB/VCI Wrapper的功能驗(yàn)證。該平臺(tái)具有很好的可重用性。
關(guān)鍵詞:AMBA總線;VCI接口;總線功能模型
0 引言
Basic VCI協(xié)議:AHB/VCI Wrapper的設(shè)計(jì)中采用的是VCI接口標(biāo)準(zhǔn)中的Basic VCI(BVCI)。
SoC平臺(tái)通過提供預(yù)先集成并驗(yàn)證好的特定應(yīng)用IP核,在很大程度上減弱了IP系統(tǒng)集成和系統(tǒng)級驗(yàn)證的負(fù)擔(dān)。SoC設(shè)計(jì)平臺(tái)中各功能IP模塊是通過AMBA總線來連接的。AMBA(Advanced Microcontroller Bus Architecture)Rev2.0片內(nèi)總線由ARM公司開發(fā),是業(yè)內(nèi)廣泛流行的一種工業(yè)標(biāo)準(zhǔn)片內(nèi)總線。
1 AHB/VCI Wrapper設(shè)計(jì)思想
它包含兩部分:AHB-initiator-Wrapper和AHB-target-Wrapper,如圖1所示。從而實(shí)現(xiàn)AHB主設(shè)備與VCI從動(dòng)方以及AHB從設(shè)備與VCI主動(dòng)方之間的協(xié)議相互轉(zhuǎn)換。
AHB-initiator-Wrapper負(fù)責(zé)把VCI請求轉(zhuǎn)換成AHB周期請求,此時(shí),它在AHB總線方相當(dāng)于一個(gè)AHB主設(shè)備,在VCI方相當(dāng)于一個(gè)VCI從動(dòng)方。由于AHB-initiator-Wrapper具有AHB主設(shè)備特性,因此它在實(shí)際應(yīng)用中可被例化為多個(gè)VCI主設(shè)備接口。
AHB-target-Wrapper負(fù)責(zé)把AHB傳送轉(zhuǎn)換成VCI傳送,此時(shí),它在AHB總線方相當(dāng)于一個(gè)AHB從設(shè)備,在VCI方相當(dāng)于一個(gè)VCI主動(dòng)方。同樣,由于AHB-target-Wrapper具有AHB從設(shè)備特性,因此它在實(shí)際應(yīng)用中可被例化為多個(gè)VCI從設(shè)備接口。
1.1 AHB initiator Wrapper的設(shè)計(jì)
AHB-initiator-Wrapper負(fù)責(zé)接受VC主動(dòng)方發(fā)出的請求,并控制AHB總線(作為總線主設(shè)備)完成傳送。尤其是,AHB-initiator-Wrapper要負(fù)責(zé)向AHB總線仲裁器請求總線所有權(quán),得到總線以后,啟動(dòng)AHB上的傳送并處理相應(yīng)的AHB傳送反應(yīng),最后完成數(shù)據(jù)傳送。
1.2 AHB initiator Wrapper的總體構(gòu)架
本設(shè)計(jì)中的AHB-initiator-Wrapper采用同步化電路機(jī)制解決了VCI主動(dòng)方設(shè)備與AHB總線之間的速率匹配問題,圖2給出了該設(shè)計(jì)的總體構(gòu)架。它主要包含五部分:BVCI請求握手控制單元、BVCI響應(yīng)握手控制單元、請求內(nèi)容FIFO、響應(yīng)內(nèi)容FIFO和AHB主設(shè)備控制引擎。
[!--empirenews.page--]
BVCI請求握手控制單元按照BVCI請求握手協(xié)議接受來自BVCI主動(dòng)方的請求內(nèi)容信息,并把它們插入請求內(nèi)容FIFO(速率不匹配情況)或直接傳送到AHB控制一側(cè)(速率匹配情況)。
BVCI響應(yīng)握手控制單元從響應(yīng)內(nèi)容FIFO中取出BVCI響應(yīng)內(nèi)容信息,并按照BVCI響應(yīng)握手協(xié)議把它們驅(qū)動(dòng)到BVCI主動(dòng)方。
請求內(nèi)容FIFO是一個(gè)異步FIFO(寫端口與讀端口分別工作在不同的時(shí)鐘域),它只有當(dāng)VCI主動(dòng)方設(shè)備和AHB總線之間速率不匹配時(shí)才工作。
響應(yīng)內(nèi)容FIFO為一個(gè)異步/同步模式可配置的FIFO,當(dāng)VCI主動(dòng)方設(shè)備和AHB總線之間速率不匹配時(shí),它工作在異步模式(寫端口與讀端口分別工作在不同的時(shí)鐘域)否則FIFO工作在同步模式(寫端口與讀端口工作在同一時(shí)鐘域),只需完成BVCI響應(yīng)內(nèi)容信息的緩存功能即可。
AHB主設(shè)備控制引擎在BVCI和AHB之間進(jìn)行控制信號的轉(zhuǎn)換。還支持AHB主設(shè)備所具備的對總線異常傳送(錯(cuò)誤、重試傳送)情況的處理能力。
1.3 AHB target Wrapper的設(shè)計(jì)
AHB-target-Wrapper作為一個(gè)AHB從設(shè)備,其主要作用是把AHB傳送轉(zhuǎn)換為符合VCI協(xié)議的傳送。
1.4 AHB target Wrapper的總體構(gòu)架
圖3給出了AHB-target-Wrapper的總體構(gòu)架,它由各種控制邏輯、數(shù)據(jù)通路、數(shù)據(jù)緩沖單元和寄存器組成,主要包含十三部分:寄存器塊、AHB從設(shè)備讀寫控制邏輯、地址/控制信息FIFO、寫數(shù)據(jù)FIFO、讀數(shù)據(jù)FIFO、VCI主動(dòng)方引擎、VCI響應(yīng)處理機(jī)、比較器、包計(jì)數(shù)器、同步裝置、寫數(shù)據(jù)路徑選擇復(fù)用器、讀數(shù)據(jù)路徑選擇復(fù)用器和中斷邏輯。
(1)寄存器塊完成對AHB-target-Wrapper的配置和控制以及對其當(dāng)前工作狀態(tài)的反應(yīng)。
(2)AHB從設(shè)備讀寫控制邏輯,具備AHB總線從設(shè)備的控制功能。
(3)地址/控制信息FIFO主要用來存放AHB傳送單元的地址/控制信息,以起到緩沖目的。
(4)寫數(shù)據(jù)FIFO主要用來存放進(jìn)行寫操作時(shí)的數(shù)據(jù),以起到寫數(shù)據(jù)緩沖目的。
(5)讀數(shù)據(jù)FIFO主要用來存放進(jìn)行讀預(yù)取操作時(shí)的數(shù)據(jù),以起到讀數(shù)據(jù)預(yù)取目的。它也是一個(gè)雙端口的同步/異步可配置FIFO(一個(gè)寫端口,一個(gè)讀端口),當(dāng)AHB總線和VCI從動(dòng)方設(shè)備之間速率不匹配時(shí)工作在異步模式下,匹配時(shí)工作在同步模式下,同步/異步模式的切換可通過配置寄存器來實(shí)現(xiàn)。
(6)VCI主動(dòng)方引擎把符合AHB傳送協(xié)議的地址/控制信息轉(zhuǎn)換為符合BVCI標(biāo)準(zhǔn)的請求內(nèi)容信息,并按照BVCI請求握手協(xié)議把請求內(nèi)容信息驅(qū)動(dòng)到VC從動(dòng)方設(shè)備。
(7)VCI響應(yīng)處理機(jī)按照BVCI響應(yīng)握手協(xié)議接收由VCI從動(dòng)方設(shè)備返回的響應(yīng)內(nèi)容信息,并進(jìn)行相應(yīng)的處理。
(8)比較器用于讀預(yù)取操作情況,比較正在進(jìn)行的讀預(yù)取操作和AHB上新發(fā)來的讀操作是否為同一個(gè)讀交易。
(9)包計(jì)數(shù)器用來統(tǒng)計(jì)當(dāng)前VCI主動(dòng)方引擎發(fā)出的多個(gè)BVCI請求包中沒有被響應(yīng)的請求包個(gè)數(shù),其主要目的是為VCI主動(dòng)方引擎提供有關(guān)當(dāng)前請求包是否正在被響應(yīng)的信息。
(10)同步裝置在兩個(gè)時(shí)鐘域的交叉處,即從HCLK到VCLK域和從VCLK到HCLK域的兩個(gè)數(shù)據(jù)流方向上,分別對內(nèi)部控制信號進(jìn)行同步。
(11)寫數(shù)據(jù)路徑選擇復(fù)用器根據(jù)AHB的傳送單元大小、字節(jié)地址和地址大小端模式來選擇AHB寫數(shù)據(jù)總線上相應(yīng)的字節(jié)通道并把它復(fù)制到?jīng)]選通的字節(jié)通道上。
(12)讀數(shù)據(jù)路徑選擇復(fù)用器根據(jù)BVCI響應(yīng)字節(jié)使能(按照一定的算法,由AHB讀交易的傳送單元大小、第一個(gè)傳送字節(jié)地址以及BVCI的地址模式自動(dòng)轉(zhuǎn)換生成)來選擇BVCI讀數(shù)據(jù)總線上相應(yīng)的字節(jié)通道并把它復(fù)制到?jīng)]選通的字節(jié)通道上。
(13)中斷邏輯當(dāng)內(nèi)部電路在執(zhí)行寫操作過程中發(fā)生傳送錯(cuò)誤時(shí),產(chǎn)生錯(cuò)誤中斷源,同時(shí)根據(jù)中斷屏蔽寄存器來決定相應(yīng)的中斷源是否開放,根據(jù)中斷清除寄存器來清除相應(yīng)的中斷源。
2 AHB/VCI、Wrapper的硬件實(shí)現(xiàn)
本文分別給出了AHB-initiator-Wrapper和AHB-target-Wrapper的總體構(gòu)架,并對兩者內(nèi)部的各個(gè)功能模塊及控制部件的結(jié)構(gòu)設(shè)計(jì)進(jìn)行了詳細(xì)敘述,同時(shí)對兩者的可配置性也進(jìn)行了充分考慮。在本章最后,對AHB/VCI Wrapper進(jìn)行了RTL級Verilog硬件建模并進(jìn)行了初步的門級綜合及電路規(guī)模預(yù)估。
[!--empirenews.page--]
3 驗(yàn)證平臺(tái)的搭建
本節(jié)的BFM模型主要任務(wù)就是利用這些模型來搭建驗(yàn)證平臺(tái)。
把AHB主設(shè)備BFM模型、VCI從動(dòng)方BFM模型、系統(tǒng)時(shí)鐘及復(fù)位產(chǎn)生模型、待測設(shè)計(jì)AHB-target-Wrapper模塊和AMBA總線控制器進(jìn)行適當(dāng)組合,集成在一起便可構(gòu)成驗(yàn)證平臺(tái),如圖4所示。這個(gè)過程需要由TestBencher Pro工具來完成,因?yàn)樵摴ぞ呖梢院芎玫乜刂艬FM模型中每個(gè)命令函數(shù)的調(diào)度和執(zhí)行順序,其自動(dòng)化程度是比較高的。剩下需要由設(shè)計(jì)者做的事情是,根據(jù)待測設(shè)計(jì)AHB-target-Wrapper的測試要求,編寫平臺(tái)腳本來合理安排BFM模型中每個(gè)命令函數(shù)的調(diào)度和執(zhí)行順序,然后以文件形式輸入到驗(yàn)證平臺(tái)中即可開始進(jìn)行驗(yàn)證。該驗(yàn)證平臺(tái)通過Test Bencher Pro工具生成之后,也可以移植到別的模擬器環(huán)境中運(yùn)行。
需要說明的是,驗(yàn)證平臺(tái)中的AMBA總線控制器是經(jīng)過事先充分驗(yàn)證的,而且該驗(yàn)證平臺(tái)在對其他待測模塊進(jìn)行驗(yàn)證的同時(shí)也是對AMBA總線控制器的有效考驗(yàn)。
該驗(yàn)證平臺(tái)除了可以驗(yàn)證待測設(shè)計(jì)AHB-target-Wrapper外,還可以驗(yàn)證其它AHB從設(shè)備和APB從設(shè)備功能模塊。如果在該驗(yàn)證平臺(tái)中再加入一個(gè)AHB從設(shè)備BFM模型和總線協(xié)議監(jiān)視器,便可形成一個(gè)功能齊全的驗(yàn)證平臺(tái),既可驗(yàn)證AHB主設(shè)備又可驗(yàn)證AHB從設(shè)備和APB從設(shè)備,同時(shí)還可及時(shí)檢測是否發(fā)生總線傳送協(xié)議錯(cuò)誤。
當(dāng)驗(yàn)證平臺(tái)搭建好后,需要由設(shè)計(jì)者針對待測模塊的測試要求,編寫相應(yīng)的測試激勵(lì),來完成最后的設(shè)計(jì)驗(yàn)證。
對應(yīng)這段測試激勵(lì)的模擬波形如圖5所示,最后的log文件顯示結(jié)果中除了預(yù)設(shè)的警告外,沒有錯(cuò)誤發(fā)生,說明待測設(shè)計(jì)AHB-target-Wrapper對這段測試激勵(lì)模擬正確通過。
4 結(jié)論
本文主要介紹了利用總線功能模型進(jìn)行設(shè)計(jì)驗(yàn)證的思想,在設(shè)計(jì)驗(yàn)證中使用了SynaptiCAD公司時(shí)序驗(yàn)證工具;通過TestBencher Pro工具完成其功能驗(yàn)證,應(yīng)如何建立它所需要的BFM模型以及如何搭建其驗(yàn)證平臺(tái),同時(shí)說明了該驗(yàn)證平臺(tái)具有很好的可復(fù)用性;最后給出了測試激勵(lì)的編寫方法及相應(yīng)的模擬結(jié)果。