快速實現(xiàn)基于AMBA 3 AXI協(xié)議的設計
要想正確領(lǐng)會工程師在基于AMBA 3 AXI協(xié)議的設計中所面臨的設計挑戰(zhàn)復雜性,必須首先了解AMBA 3 AXI協(xié)議自身的技術(shù)特點。AMBA 3 AXI協(xié)議由30多家公司協(xié)作開發(fā),用于滿足下一代設計的需要。AMBA 3 AXI協(xié)議定義了一個單向的通道架構(gòu),能夠有效地使用寄存器分段實現(xiàn)更高速度的管道連接。憑借對多事務處理和亂序事務處理的支持,再加上對讀、寫和地址/控制通道的有效利用,它能使系統(tǒng)獲得更高的性能和效率,系統(tǒng)性能僅受限于其外圍設備的自身性能。
AMBA 3 AXI協(xié)議:
通道能力
通道概念的引入使AMBA 3 AXI架構(gòu)與以前的AMBA協(xié)議有很大的不同。5個獨立通道的每一個都由一組信息信號組成,并使用雙向VALID和READY握手機制。信息源使用VALID信號表明通道上的數(shù)據(jù)和控制信息何時有效,目的端使用READY信號表明何時能夠接收數(shù)據(jù)。讀數(shù)據(jù)通道和寫數(shù)據(jù)通道都包含一個LAST信號,以顯示事務處理中最后一個數(shù)據(jù)項的傳遞何時發(fā)生。每一個讀事物處理和寫事物處理都有自己的地址通道,地址通道中包含了事物處理所需的所有地址和控制信息。讀數(shù)據(jù)通道傳送讀數(shù)據(jù)和任何由從設備返回到主設備的讀響應信息,其數(shù)據(jù)總線寬度可以是8位~1024位,讀響應信息表明讀事物處理的完成狀態(tài)。寫數(shù)據(jù)通道傳送主設備到從設備的寫數(shù)據(jù),其數(shù)據(jù)總線寬度可以是8位~1024位。寫數(shù)據(jù)通道還包括1個字節(jié)的狹窄通道,對每8個數(shù)據(jù)位進行過濾,表明數(shù)據(jù)總線上哪些字節(jié)是有效的。對獨立數(shù)據(jù)傳送的支持使總線得到了更有效的使用,能獲得更高的性能、更低的時延和增強的帶寬操作。
針對AMBA 3 AXI的DesignWare IP 解決方案
基于AMBA 3 AXI協(xié)議的復雜性,設計和驗證一個基于該標準的子系統(tǒng)變成一項主要工作,并需要大量的專門技術(shù)。通過提供給工程師公共的設計和驗證IP模塊,實現(xiàn)從模塊級到子系統(tǒng)級的快速實現(xiàn)和確認,針對AMBA 3 AXI的DesignWare IP 解決方案使設計變得輕松。另外,coreAssembler 工具可實現(xiàn)子系統(tǒng)的自動裝配,并自動產(chǎn)生測試平臺架構(gòu)。當使用DesignWare IP 解決方案時,設計者能夠快速裝配、綜合和驗證基于AMBA 3 AXI的設計。
DesignWare綜合IP
DesignWare的綜合IP是三部分解決方案中的第一部分,它實現(xiàn)了基于AMBA 3 AXI協(xié)議的高帶寬、低時延和高性能設計的快速應用。綜合IP包括3個關(guān)鍵的組件:互連總線結(jié)構(gòu)、AXI到AHB子橋、主/從通用接口模塊。這些組件是任何SoC新設計的基本構(gòu)造模塊,并能使設計者輕松實現(xiàn)基于AMBA 3 AXI協(xié)議的體系架構(gòu)。這些IP組件也有助于將現(xiàn)有IP和特定應用模塊轉(zhuǎn)換至AMBA 3 AXI架構(gòu),因此確保了更高的資源重用性。
DesignWare互連架構(gòu)(DW_axi)是基于AMBA 3 AXI 協(xié)議設計中標準互連架構(gòu)的最佳解決方案。DW_axi的配置靈活性提供給工程師一組功能集合,以滿足他們具有優(yōu)先級的設計需求。DW_axi是一個AMBA 3 AXI協(xié)議的RTL互連實現(xiàn),在那里不同的主、從設備之間會發(fā)生同時的數(shù)據(jù)傳輸。組件可以被配置成支持高達16個主設備和從設備,它們都支持所有指定了地址和數(shù)據(jù)寬度的協(xié)議。DW_axi基于一個多地址、多數(shù)據(jù)的總線架構(gòu),并帶有一個可選的內(nèi)建系統(tǒng)解碼器。每一個事物處理在地址通道上都有地址和控制信息,以描述數(shù)據(jù)被傳送的特性。數(shù)據(jù)在主設備和從設備之間傳送,可通過寫數(shù)據(jù)通道傳送至從設備,或通過讀數(shù)據(jù)通道傳送至主設備。在寫事物處理中,AMBA 3 AXI協(xié)議有一個額外的寫響應通道,允許從設備給主設備發(fā)信號表明寫事物處理已完成。這種多層互連的體系結(jié)構(gòu)允許在所有5個AMBA 3 AXI通道的不同主、從設備對之間進行并行數(shù)據(jù)傳輸。因此,系統(tǒng)帶寬不受DW_axi的限制,而是受限于外部的主、從設備。
除了提供組合的內(nèi)建地址和數(shù)據(jù)通道控制外,DW_axi通過提供內(nèi)部和外部的流水線操作功能,即所謂的寄存器分段,還實現(xiàn)了增強和優(yōu)化的工作頻率、帶寬和性能??膳渲玫膬?nèi)部和外部寄存器分段能被應用到全路徑或只是前向控制路徑的單獨通道,提供對定時選擇的最大靈活性,并產(chǎn)生最佳的性能。為了優(yōu)化DW_axi以達到最佳的性能同時還保證最小的面積,DW_axi中包括了從設備可見功能,當不是所有的子設備對所有主設備都可見的時候予以使用。它定制了正常模式和啟動模式下主設備訪問每一個子設備的可見性,從而減少了仲裁邏輯的復雜性,能夠用最少的邏輯達到最佳的性能。
圖1 使用DesignWare驗證IP創(chuàng)建一個子系統(tǒng)驗證環(huán)境
為了實現(xiàn)AMBA 3 AXI協(xié)議與現(xiàn)有AMBA 2.0技術(shù)的互操作能力,DesignWare IP 解決方案包括一個AMBA 3 AXI到AMBA 2.0 AHB 的橋接(DW_axi_x2h)。DW_axi_x2h可支持同基于AMBA 2.0 AHB子系統(tǒng)的連接,提供對現(xiàn)有基于AHB子系統(tǒng)的可重用支持。 在Lite模式下,獨立的從設備組件能夠直接連接到基于AMBA 3 AXI協(xié)議的總線上。這種互操作能力的優(yōu)勢是,工程師可以訪問大量針對AMBA 2.0 AHB和APB 協(xié)議、已經(jīng)過硅驗證的現(xiàn)有DesignWare綜合和驗證IP 。這增加了模塊重用的機會,使工程師可以效力于開發(fā)具有差異性的新型子系統(tǒng),而不必在創(chuàng)建和確認普通子系統(tǒng)上花費過多時間。DesignWare綜合IP解決方案還包括其它普通的基于AMBA 2.0 的設計模塊,比如AHB總線架構(gòu)、DW_ahb、APB橋、APB結(jié)構(gòu)、DW-apb,以及很多外圍模塊如DMA、內(nèi)存控制器、I2C、SSI、GPIO 、RTC 、定時器和中斷控制器。
另外一組可重用架構(gòu)組件是DesignWare的通用主/從接口模塊DW_axi_gm/gs。DW_axi_gm/gs使用通用接口,降低了把定制IP或特定應用移植到基于AMBA 3 AXI協(xié)議總線時的復雜度。當把定制應用或定制IP連接到基于AMBA 3 AXI協(xié)議的總線上時,工程師不必擔心協(xié)議的細節(jié),因為DW_axi/gs模塊可以處理AMBA 3 AXI的大部分接口細節(jié)。使用通用接口模塊,工程師能夠有更多時間關(guān)注連接到AMBA 3 AXI總線后用戶應用的驗證檢查工作。
DesignWare驗證IP
快速實現(xiàn)基于AMBA 3 AXI協(xié)議設計的DesignWare IP解決方案的第二部分是針對AMBA 3 AXI的Synopsys DesignWare驗證IP(VIP),它提供了一種快速并有效地驗證基于AMBA 3 AXI 的SoC設計的方法。針對AMBA 3 AXI的DesignWare驗證IP包括以下的組件:主設備、從設備、監(jiān)視器和驗證互連。每一個組件都支持所有的AMBA 3 AXI地址和數(shù)據(jù)寬度,以及所有的協(xié)議轉(zhuǎn)換和響應類型。主/從設備驗證IP用來產(chǎn)生事務處理,并對事物處理作出響應。驗證互連實現(xiàn)了一個全互連功能子系統(tǒng)的創(chuàng)建,可以對多模塊交互的模塊級集成進行測試。驗證IP包括一個全功能的命令集,可實現(xiàn)直接的事務處理和基于命令的測試。驗證IP能夠快速清除互連錯誤、功能錯誤,并完成很多邊界情況的測試。
圖2 DesignWare驗證IP的系統(tǒng)級驗證
驗證IP已經(jīng)獲得了AMBA 3 的標識認證,這說明DesignWare驗證IP已被證明正確實現(xiàn)了AMBA 3 AXI的相關(guān)規(guī)范,該規(guī)范的定義來自ARM基于聲明的AXI協(xié)議規(guī)則集合。當在模塊級使用驗證IP時,模塊接口將被測試以證明其符合AMBA 3 AXI協(xié)議規(guī)范,這使得從模塊級到最終子系統(tǒng)的集成工作變得輕松。DesignWare驗證IP也可以用在子系統(tǒng)級,測試主/從模塊的交互,同時創(chuàng)建真實的應用數(shù)據(jù)流量。這時,得到了AMBA 3 認證的DesignWare驗證IP可確保AMBA 3 AXI協(xié)議規(guī)范沒有被違犯。
DesignWare的驗證IP和參考驗證方法學
DesignWare驗證IP支持一個可重用分層的、覆蓋驅(qū)動的、受約束的隨機驗證方法學,用來快速產(chǎn)生數(shù)以千計的事物處理。
受約束的隨機驗證產(chǎn)生由Synopsys參考驗證方法學(RVM)定義。該方法學定義了一個強有力的方法用來自動產(chǎn)生事物處理,實現(xiàn)最大數(shù)目的協(xié)議組合。對于大型的復雜設計,受約束隨機的、覆蓋驅(qū)動的方法學與傳統(tǒng)的直接測試方法學相比提供了更高的生產(chǎn)力和質(zhì)量驗證。在直接測試方法中,工程師編寫獨立的測試向量來驗證特定的設計功能。這種處理方法非常耗費時間,特別是對有大量關(guān)聯(lián)功能的復雜設計。
在受約束的隨機、覆蓋驅(qū)動方法中,工程師編寫由高級約束描述的真實輸入。先進的驗證工具和驗證IP將使用這些約束自動產(chǎn)生幾千種測試向量對設計進行驗證。功能覆蓋用來指導驗證和測量的過程。結(jié)果是驗證質(zhì)量目標能夠更容易地在投片前得到滿足,甚至對大多數(shù)復雜設計也是如此。用來實現(xiàn)受約束隨機驗證環(huán)境的參考驗證方法學建立在一個可重用的基礎(chǔ)架構(gòu)之上,它使得在一個模塊級的測試可以在模塊級、子系統(tǒng)級,甚至跨越多項目進行重用。RVM驅(qū)動的驗證IP意味著設計工程師僅需編寫最少量的測試向量,然后依次產(chǎn)生幾千種測試向量,全面地將實際的總線流量加載到模塊或子系統(tǒng)中。Synopsys 基于RVM的環(huán)境提供了一個對所有驗證組件的統(tǒng)一接口,因此更容易理解并能夠快速地跨越其它項目被重用。
要加速基于AMBA 3 AXI協(xié)議的系統(tǒng)驗證,DesignWare驗證IP應當被用來驗證單獨的組件接口,并在子系統(tǒng)使用,最后在全系統(tǒng)級使用。在模塊級,驗證IP用來產(chǎn)生有效和精確的激勵源測試AMBA 3 AXI接口應用。如果測試向量是按照RVM的規(guī)則編寫的,那么在這一級創(chuàng)建的測試向量將能夠在子系統(tǒng)級重新運行。
最初的基于AMBA 3 AXI 子系統(tǒng)的有效驗證通過用DesignWare驗證IP替換許多松散耦合的IP和設計模塊來完成。這使得內(nèi)部連接、事物處理和功能能夠被快速驗證,并創(chuàng)建了一組魯棒性強的高覆蓋率測試向量。DesignWare驗證IP的主設備和從設備用來替代組件,主設備VIP用來創(chuàng)建直接的和受約束的隨機驗證事物處理。這種方法允許快速創(chuàng)建子系統(tǒng)激勵源和響應,能夠迅速清除任何設計內(nèi)部的連接問題。DesignWare驗證IP中的監(jiān)視器用來檢查AMBA規(guī)范的遵守情況,并提供與基于測試平臺的評分表(Scoreboard)的直接連接(見圖1)。
評分表本質(zhì)上是一個測試平臺代碼模塊,它能以自動且智能的方式跟蹤事物處理、覆蓋和數(shù)據(jù)流程。對于數(shù)據(jù),它能夠跟蹤源數(shù)據(jù),并將其與目的數(shù)據(jù)比較,針對被測試數(shù)據(jù)路徑創(chuàng)建一個是否通過測試的標準。評分表直接與DesignWare驗證IP監(jiān)視器連接,使得所有的事物處理和覆蓋數(shù)據(jù)能夠被提取、捕獲和驗證。使用DesignWare驗證IP監(jiān)視器的好處之一是:當主設備和從設備的驗證IP模塊被刪除,并用實際的系統(tǒng)級測試RTL替換時,相同的基于評分表的驗證環(huán)境繼續(xù)起作用。當監(jiān)視器是被動組件時,能貫穿整個驗證周期而被使用。
要進一步加速驗證工作,聲明IP也應當被包含到模塊級和子系統(tǒng)級環(huán)境中,以便使用形式和混合形式驗證工具,如Synopsys Magellan工具。驗證IP和聲明IP都應當被包含在驗證環(huán)境中。驗證IP監(jiān)視器提供了先進的仿真功能,如支持跨端口的覆蓋和評分表通知。因為ARM提供并定義了AMBA 3 協(xié)議聲明IP作為可執(zhí)行的規(guī)范,它可以用來作為參考。所有的DesignWare驗證IP組件已經(jīng)被ARM提供的聲明IP驗證,作為AMBA認證過程的一部分。另外,DesignWare驗證IP監(jiān)視器通過跟蹤和登記每一個事物處理、提供覆蓋信息、給出違反協(xié)議的錯誤和警告信息,從而幫助確定驗證任務何時完成。
最后的驗證步驟是全系統(tǒng)級驗證(見圖2)。在這個步驟中,應該包括針對松散耦合應用組件和IP的RTL驗證。外部接口也必須被驗證,其它的DesignWare驗證IP此時也被使用,以減少系統(tǒng)級測試的工作。工程師能夠使用DesignWare驗證IP 的大量文件,它們被作為VCS驗證庫的一部分。DesignWare的庫產(chǎn)品包括:PCI Express 、串行IO 、I2C、以太網(wǎng)、USB、USB-OTG和數(shù)以千計基于設備的內(nèi)存模型。針對AMBA 3 AXI的DesignWare驗證IP主設備仍然應被用于產(chǎn)生激勵源,最初的子系統(tǒng)測試能夠立刻被重新使用。其它的DesignWare驗證IP也能夠直接與評分表連接,提供一個閉環(huán)的智能驗證平臺。
驗證工程師也想盡可能快速地對設計、測試平臺、驗證IP和聲明IP進行仿真。使用Synopsys VCS仿真器能夠完成高性能的仿真。VCS把全部的設計環(huán)境、設計、測試平臺、驗證IP和聲明IP優(yōu)化到單個的統(tǒng)一內(nèi)核中。這種單個的被編譯的內(nèi)核刪除了在傳統(tǒng)仿真環(huán)境中出現(xiàn)的通信和同步開銷,使設計者獲得了5倍以上的仿真性能。對驗證工程師來說,這意味著以前運行5天的回歸驗證,現(xiàn)在不到1天就可以完成。
帶有coreAssembler工具的DesignWare IP
快速實現(xiàn)基于AMBA 3 AXI協(xié)議設計的DesignWare IP解決方案的第三部分是coreAssembler工具。當DesignWare庫IP與coreAssembler工具一起使用時,工程師能在更短的時間內(nèi)自動裝配、仿真和綜合基于AMBA的子系統(tǒng)。coreAssembler工具使得子系統(tǒng)設計創(chuàng)建以及AMBA 3 AXI和AMBA 2.0 AHB/APB組件的模塊集成實現(xiàn)了自動化,它減少了花費在創(chuàng)建包含DesignWare IP的特定應用子系統(tǒng)的時間,允許設計者關(guān)注額外的產(chǎn)品測試或差異化工作。coreAssembler工具全面支持SPIRIT格式,因此,符合SPIRIT規(guī)范的第三方和用戶定制的IP模塊能夠輕松地封裝到集成的子系統(tǒng)中。
內(nèi)嵌的、協(xié)議特定的集成技術(shù)使得coreAssembler工具能夠自動地將IP模塊相互連接或融合在一起,支持任何AMBA 3 AXI或AMBA 2.0的單個或多層的子系統(tǒng)配置,還包括AMBALite配置。例如,如果設計中包含了AMBA 3 AXI互連架構(gòu),以及AMBA 2 AHB 組件到AMBA 3 AXI的橋接,coreAssembler工具將能把兩種AMBA 3 AXI接口自動地連接在一起。這種自動糾正的能力消除了布線錯誤的機會,所有的DesignWare庫綜合IP組件都封裝了這種設計技術(shù)和一組缺省參數(shù)。因此,只需點擊幾下鼠標、下拉菜單選項,并確認幾個子系統(tǒng)級配置參數(shù)的選項即可創(chuàng)建一個初始的子系統(tǒng)設計。
通過支持具有設計參數(shù)和系統(tǒng)級參數(shù)交叉?zhèn)鞑スδ艿姆謱哟卧O計方法, coreAssembler工具避免了多種IP配置丟失問題。比如地址和數(shù)據(jù)寬度參數(shù)能夠在最高級鎖定并能傳播到較低級的IP模塊中,以避免IP配置丟失。這種自動操作和內(nèi)置的參數(shù)檢查消除了IP配置錯誤的機會,縮短了子系統(tǒng)調(diào)試周期。
為了達到最佳的綜合結(jié)果,coreAssembler工具能夠自動運行綜合工具,該工具包括物理編譯器和設計編譯器。工程師可以從多種綜合方法學中選擇,比如area_timeing 、timing_area 、ACS 和低功耗優(yōu)化流程,也可以創(chuàng)建用戶定義流程并將其包含在coreAssembler的自動化流程中。
為了減少首次仿真的時間,coreAssembler工具自動創(chuàng)建了一個驗證基礎(chǔ)架構(gòu),該架構(gòu)包含了特別針對集成子系統(tǒng)的DesignWare驗證IP。除了基礎(chǔ)架構(gòu)的創(chuàng)建,該工具也產(chǎn)生DesignWare驗證IP對子系統(tǒng)進行ping測試的激勵源。目前ping測試很簡單,將數(shù)據(jù)寫入一個IP組件寄存器中,然后讀出來確保內(nèi)容被正確寫入。這似乎很容易做到,它實際上是很多子系統(tǒng)設計的第一個里程碑,在傳統(tǒng)的子系統(tǒng)開發(fā)中,要花費幾個星期的時間才能完成。使用DesignWare 庫IP和coreAssembler流程,這種子系統(tǒng)ping 測試能夠在大約幾個小時內(nèi)實現(xiàn)。
自動化流程也使得對以后項目發(fā)生改動時的處理變得非常容易。比如一個子系統(tǒng)設計為32位數(shù)據(jù)總線,首席設計師在最后時刻決定,為了完成目標性能需要改為64位的數(shù)據(jù)總線。在傳統(tǒng)的設計流程中,工程師將不得不重新配置和修改很多RTL文件,花費很多的時間,并可能引入不正確的連接錯誤。在coreAssembler流程中,只需要對高層參數(shù)作簡單的修改就能完成改變,然后將自動向下傳播到更低層的模塊中。新的RTL代碼將和新的測試平臺架構(gòu)文件一起被自動重新創(chuàng)建。
結(jié)語
應用基于AMBA 3 AXI協(xié)議進行高性能SoC設計的最大障礙是綜合IP和驗證IP的可用性,以及在最短的時間里有效創(chuàng)建復雜體系結(jié)構(gòu)的能力。DesignWare庫和coreAssembler工具可以提供這樣的解決方案。DesignWare基于AMBA 3 AXI和AMBA 2.0 AHB/APB協(xié)議的綜合IP包含了針對大多數(shù)下一代子系統(tǒng)設計必需的構(gòu)造模塊。 DesignWare基于AMBA 3 AXI和AMBA 2.0 AHB/APB協(xié)議的驗證IP足以應對復雜高性能子系統(tǒng)驗證挑戰(zhàn)的需求。最后,coreAssembler工具把綜合和驗證組件集成到一個自動化的流程中,使子系統(tǒng)設計的創(chuàng)建、仿真和綜合達到最優(yōu)化。DesignWare 針對AMBA的 IP 解決方案使得基于AMBA 3 AXI協(xié)議設計的實現(xiàn)變得輕松。
評論