在愛立信、諾基亞這些電信巨頭們的大力支持下,藍牙技術成為PC開發商、移動電話制造商及許多其它消費設備制造商們看好的熱門技術。要將藍牙技術推向成功,系統設計商和芯片設計商必須實現有效的IP交換。通過采用基于平臺的設計技術和更高層次的抽象,可以解決IP交換的問題。
對于在開發藍牙過程中提供不同內核能力、使用不同工具與方法的系統開發商和芯片設計商而言,實現互操作性也是一個挑戰。這個問題可能會妨礙整個芯片的設計過程,進而影響最終系統的開發。值得慶幸的是,現在已經有了新的設計模型和抽象方法可以解決這個問題,并使系統設計商能夠更快地將藍牙設備推向市場。
藍牙協議概述
藍牙技術是一種短距離的無線傳輸技術,其目的是取代傳統的物理電纜。藍牙工作在2.4 GHz頻段,它應用了一種跳頻擴譜(FHSS)技術,每發送或接收完一個數據包后在不同信道之間跳轉,從而避免干擾信號的影響。
圖1所示為藍牙協議堆棧。藍牙無線部分,即協議規范所定義的最底層,定義了工作在2.4 GHz頻段的藍牙收發器設備的需求。通過在79個間隔為1MHz的頻點之間跳轉完成擴頻,典型的起始頻率為2.403 GHz。這些RF部件可能是系統集成商的核心技術,需要模擬仿真工具來仿真連續時間效應。
在藍牙協議的物理層(PHY)上,基帶信號是調制在RF載波上的信息,它負責物理信道、鏈接、糾錯、數據白噪聲處理、跳頻選擇以及藍牙安全等。實現這項功能所需要的算法(可能由第三方開發商授權使用)通常采用數據流描述來進行建模和仿真。
在藍牙技術中,鏈路的建立、驗證、配置及其它協議由鏈路管理器進行處理,物理層主要是通過鏈接管理協議(LMP)與其它的鏈接管理器進行通信。鏈接管理器利用底層鏈接控制器(LC)的服務來實現服務提供功能。邏輯鏈路控制與適配協議(L2CAP)位于基帶協議之上,它允許更高層的協議和應用程序收發最大為6? KB的數據包。另一個協議RFCOMM提供L2CAP上的串口仿真。
當軟件協議的授權是來自使用規范描述語言(SDL)工具的第三方廠商,藍牙芯片設計工程師可使用有限狀態機(FSM)來描述這種控制邏輯。所有這些功能組成部分必須與應用軟件協同工作來實現最終產品的核心功能。
藍牙協議中還融合了一個服務發現協議(SDP),該協議使應用程序了解藍牙設備中可實現哪些服務,它還可以確定這些有效服務的特性。協議的另一個重要組成是主控制器接口(HCI),該接口提供了一個與基帶控制器和鏈接管理器的命令接口,并可訪問硬件狀態寄存器和控制寄存器。
三種不同的建模仿真技術
盡管藍牙協議堆棧比較小,但系統和芯片設計工程師仍然要處理三種不同的建模和仿真技術。為了將這些建模和仿真技術同越來越復雜的藍牙SoC設計結合在一起,設計工程師需要采用先進的設計方法。這些方法包括集成基于平臺的設計、采用更高層次的抽象,以及不同仿真技術的各種綜合。下面首先來看看基于平臺設計的優勢。
隨著設計的復雜性與面市時間的壓力增大,從零實現每個設計是不現實的。由于設計模塊中的每個改變都需要進行完整的重新驗證,因此,即使復用可綜合的設計模塊(有改動)也很困難。
于是,系統和SoC設計工程師現在采用設計模塊復用技術(對復用模塊不做改動),該方法借鑒了PCB的設計。這就引出了基于平臺的設計技術,這種技術在產品開發過程中維持基本的平臺結構不變。
基于平臺的設計方法的主要問題之一就是難以實現差異化。由于使用一個公共的SoC平臺,系統和芯片設計商可能開發出與競爭對手幾乎一樣的藍牙產品。在基于平臺的設計中,產品的差異可通過兩種方法來實現:即通過軟件實現產品差異化和使用標準接口從平臺庫中增加硬件部件實現差異化設計。
基于平臺的設計方法改變了各個設計工程師在設計供應鏈中的互動方式,甚至可以實現不同公司的互動。在半導體集成平臺中,最著名的有TI公司針對無線應用提供的開放式多媒體應用平臺(OMAP)、飛利浦半導體公司的Nexperia平臺和Tality的藍牙平臺。各公司可以從標準平臺系統開始,通過使用軟件或替換平臺架構中的模塊來增加獨特的功能,以實現差異化的設計。利用系統級的工具,系統設計商和芯片設計商之間在寄存器傳輸級(RTL)和嵌入軟件結束之前就可以實現互動。
在這個過程中,抽象的作用越來越重要,半導體公司再也不能僅僅提供平臺的實現模型,系統集成商現在還需要抽象的系統平臺模型以在設計周期的早期評估整體優劣和其它設計因素。此外,半導體供應商還向軟件開發商提供一個平臺規范以及相應的應用編程接口(API),以便軟件開發商配置和修改平臺。
在一個典型的基于平臺的設計方法中,設計工程師可能至少會采用三種不同的仿真類型。無線信號可能會在仿真模擬連續時間數據的環境中進行分析;數據流仿真器也會用來分析藍牙的基帶信號;最后,離散事件仿真器將會用來評估圖1中所示的藍牙協議。
綜上所述,藍牙設計中三個挑戰是:
模擬抽象
無線接收器RF前端中的混合信號射頻電路一般位于天線和DSP之間。這個電路中包含能產生噪聲的非線性模擬元件,如低噪聲放大器(LNA)、混頻器和振蕩器等。
RF部分從模擬RF載波上提取出數字信號數據,模擬元件的噪聲使基帶信號產生了一些畸變。一個典型的設計困難是根據模擬電路結構來對一個給定信道接收器組合進行誤碼率(BER)估計。由于仿真時間太長,帶數據流仿真的類Spice數據聯合仿真實際上并不可行。
不過,K模型能解決這個難題。K模型在無線接收器中有著廣泛的應用,它是模擬電路的離散時間行為模型,它表現了由RF接收器引起的線性和非線性的基帶信號畸變,并可用于對數據流算法進行基于C++的系統級仿真。考慮到大多數信道變化范圍很寬,行為模型在對用于數據流仿真的模擬電路進行參數提取時進行了速度與準確性的折衷。與基于C++的模型一起執行時,它們并不使用模擬仿真器。這個鏈接在連續時間模擬仿真和DSP中使用的數據流仿真之間提供了一個高效的接口。
圖3顯示了如何使用抽象來實現這一鏈接。K模型從晶體管模式開始,從非線性RF電路的輸入信號的幾個確定幅值獲得頻率傳遞函數。為了保證K模型能準確反映模擬效應,設計工程師應該在模擬域作一次瞬態分析,并將此分析與從數據流仿真器中的模型所得到的數據流仿真結果進行比較。經過特征化和驗證之后,K模型就可代表接收器用在基于C++的數據流仿真中。
基帶信號解碼后送到控制系統模塊,這個模塊決定進一步的處理需求,如語音處理、視頻處理或簡單的數據存儲。控制模型可以用離散事件計算模型進行有效仿真,在仿真過程中,只要有任何一個有效輸入,就執行這些模型。
相比之下,數據流模型只有當全部輸入都有效時才執行。由于模塊的執行次序可以預先確定,因此數據流仿真要比離散事件仿真快很多。
圖4是一個藍牙產品的系統結構圖。圖中顯示了一個發送器和接收器路徑,兩個基帶控制器與來自數據流仿真器的輸入模塊連接。LC和HCI被建模為C和C++模型,驅動設計的測試平臺也是如此。根據開放式建模接口標準(OMI,IEEE 1499),在幾個系統級設計模塊集成工具之間存在著數據流與控制塊的相互鏈接。
在輸入OMI封裝模型時一定要生成必要的邏輯,以便在離散事件環境下執行輸入的數據流模型。為了實現這一目的,要自動插入了一個觸發器模塊,以便仿真時一旦模塊的所有輸入有效就將它激活。這使得對軟件協議集成與軟硬件聯合設計環境進行評估成為可能。
圖4描述了藍牙系統的功能集成,其中協議部分和基帶控制器實現電子設備的藍牙功能。功能集成的目的是評估不同系統模塊之間的互相作用情況。在圖4中,數據流基帶部分執行某些編解碼任務。功能仿真與協議模塊被設計為純C/C++模型,離散事件仿真可以發現并控制數據流方面的死鎖和鏈接問題。
設計工程師應該注意的是,基帶控制器之間的信道并不使用K模型。盡管理論上是可行的,但是考慮到總體仿真次數以及過長的協議序列,這種模型將會很慢,因此實際上并不可行。
折衷分析
在SoC設計中,硬件和軟件的關系越來越緊密,在基于平臺的設計方法中尤其如此,此時實際產品的差異可能通常都是使用軟件來實現的。現在已經有了硬件/軟件聯合驗證等標準方法,可以用來解決具體的硬件/軟件接口驗證問題。
然而,在作為結構的折衷分析工具時,其適用性受到了由于慢硬件描述語言(slow HDL)或C++模塊一起仿真的指令集仿真(ISS)進行協同仿真所決定的仿真速度的限制,這將導致同樣慢的仿真速度。而且,所有的模塊必須在這些工具能夠使用之前實現。這兩個因素都使得通過這些技術來鏈接半導體設計和系統設計不可行。
解決這個問題的一種方案是對抽象的高效利用。軟件和硬件的實現都有各種各樣的描述和實現技術,其中大多數技術允許用戶從抽象的初始模型開始,在設計流程中逐漸進行改進和細化,直到設計最終實現。
在軟件方面,設計工程師可以選擇面向特定應用領域的工具。在硬件方面,設計工程師可從行為HDL和普通C/C++描述的抽象級開始工作。
在軟硬件兩方面,上述工具允許在抽象級建模,有些還提供直接的實現途徑。不過,只是在少數情況下自動生成的代碼才接近于產品代碼。大多數情況下,設計工程師需要手動實現RTL和軟件設計,只使用抽象模型來對系統特定方面進行分析。例如,對一個解碼算法的不同算法選項的評估。但也有極少數例外,允許DSP算法實現的微結構的圖形化輸入以及輸出給Verilog、VHDL和測試工具的HDL可在不同抽象級之間重復使用。
除了設計工程師的具體設計之外,系統集成也面臨一定的挑戰。對實現級的RTL和軟件進行綜合評估是不大可行的,因為仿真速度有限,只能考慮幾種替代方案。不過,現在有一些新的開發環境,在這些環境中,SoC設計工程師可以使用模型對實現方案的性能進行抽象。這種方法允許藍牙SoC設計工程師在系統級(獨立于實現)保持功能描述,并通過改變性能模型,快速嘗試不同的選擇。
先進的基于平臺的設計方法以不同的方式對功能進行描述和仿真。雖然功能定義通常是藍牙系統設計工程師的責任,但是SoC設計工程師可以使用CPU、DSP、總線、實時操作系統(RTOS)、存儲器的系統結構和專用硬件/軟件實現的抽象模型來提供系統結構。
結構模型代表了抽象的性能模型。功能和結構之間的映射定義了哪些結構資源是由所有計算和通信使用的。性能仿真模型可由那三種描述建立,因而在用代表實現的特征化或估計的性能模型進行實現之前,就可進行高效的折衷仿真。
注意,在適當高的抽象級為設計工作提供功能記錄、結構記錄以及同一開發環境內的映射具有重要意義。這為藍牙系統設計商和SoC半導體提供商之間進行交流提供了新途徑,更重要的是,他們在保持緊密協作的同時,每一方都可專注于其核心任務上。
上述設計流程提供了開展早期系統性能評估的能力,它還在SoC設計鏈中提供了一個高效的連接點。同時,功能和結構描述定義了抽象出來的系統平臺。藍牙系統設計者可以改變映射、增加功能,并在產品最后實現之前有效地進行功能設計研究。功能的定義與實現是不相關的,它可以清楚地呈現給藍牙SoC開發商,并進行結構選項評估。
在使用性能仿真進行了功能設計研究并確定出一組最佳的功能/結構方案后,最重要的就是直接向實現級工具輸出這一信息。這一工作需要包括硬件/軟件聯合驗證、編譯器以及硬件綜合工具。
基于平臺的設計方法也支持不經修改的IP復用。因此,藍牙系統設計商與藍牙芯片設計商之間的設計輸出必須能夠自動實現在硬件與軟件、軟件與硬件以及在硬件和軟件領域內的通信路徑。也必須有一種功能-結構協同設計方法以及一個工具環境來提供從抽象系統級到實現級的途徑。這將促進從系統級向實現的硬件和軟件輸出,以及通信綜合在設計模塊之間建立通信。