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