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