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