《電子技術(shù)應(yīng)用》
您所在的位置:首頁 > 可編程邏輯 > 設(shè)計(jì)應(yīng)用 > 利用混合信號(hào)FPGA和先進(jìn)的軟件工具實(shí)現(xiàn)簡易系統(tǒng)設(shè)計(jì)
利用混合信號(hào)FPGA和先進(jìn)的軟件工具實(shí)現(xiàn)簡易系統(tǒng)設(shè)計(jì)
來源:電子技術(shù)應(yīng)用2010年第9期
Wendy Lockhart
愛特公司設(shè)計(jì)解決方案高級(jí)經(jīng)理
摘要: 單芯片嵌入式處理器的設(shè)計(jì)流程需要進(jìn)行三類設(shè)計(jì):FPGA設(shè)計(jì),、嵌入式設(shè)計(jì)和模擬設(shè)計(jì),。Actel SmartFusionTM智能混合信號(hào)FPGA是目前唯一集成了FPGA、ARM Cortex-M3處理器硬核和可編程模擬的FPGA,。該器件的架構(gòu)具有清晰的功能性邊界和明確定義的接口,,有助于簡化設(shè)計(jì)邊界。利用創(chuàng)新的設(shè)計(jì)工具,,所有設(shè)計(jì)人員都能夠并行進(jìn)行自己的設(shè)計(jì)部分,,避免設(shè)計(jì)周期延長與FPGA中軟核處理器的協(xié)作問題。
Abstract:
Key words :

摘  要: 單芯片嵌入式處理器的設(shè)計(jì)流程需要進(jìn)行三類設(shè)計(jì):FPGA設(shè)計(jì),、嵌入式設(shè)計(jì)和模擬設(shè)計(jì),。Actel SmartFusionTM智能混合信號(hào)FPGA是目前唯一集成了FPGA、ARM Cortex-M3處理器硬核和可編程模擬的FPGA,。該器件的架構(gòu)具有清晰的功能性邊界和明確定義的接口,,有助于簡化設(shè)計(jì)邊界。利用創(chuàng)新的設(shè)計(jì)工具,,所有設(shè)計(jì)人員都能夠并行進(jìn)行自己的設(shè)計(jì)部分,,避免設(shè)計(jì)周期延長與FPGA中軟核處理器的協(xié)作問題。
關(guān)鍵詞: 智能混合信號(hào)FPGA,;Actel SmartFusionTM,;設(shè)計(jì)工具;ARM Cortex-M3處理器,;設(shè)計(jì)流程

基本設(shè)計(jì)流程概念
    標(biāo)準(zhǔn)現(xiàn)貨微處理器基本上只是一塊功能性硅片,,需要設(shè)計(jì)人員進(jìn)行指令編碼,例如在初始設(shè)置中配置外設(shè),、運(yùn)行主要功能,、與外界連接等。微處理器要在設(shè)計(jì)人員給予“身份”之后才能開始工作,,它既可被編程和現(xiàn)場重編程,,也能夠進(jìn)行多次重新定義。
    另一方面,,F(xiàn)PGA也是一塊功能性硅片,,它可能包含一些特殊的功能性模塊(如存儲(chǔ)器),但同樣必須在定義“身份”后才能工作,。盡管FPGA在I/O的選擇使用上靈活性稍大,,而且可并行操作,,但它和微處理器一樣,都需要設(shè)計(jì)人員賦予它們“生命”,。
    雖然嵌入式設(shè)計(jì)人員很少同時(shí)從事FPGA設(shè)計(jì),,F(xiàn)PGA設(shè)計(jì)人員一般也不會(huì)踏進(jìn)嵌入式領(lǐng)域,但他們的設(shè)計(jì)流程其實(shí)極為相似,。如圖1所示,,兩者在設(shè)計(jì)器件時(shí)都是從零開始,采用某種語言編寫,、編譯或構(gòu)建代碼,,然后對器件進(jìn)行編程和調(diào)試。他們都能夠設(shè)計(jì)出出色又獨(dú)特的實(shí)現(xiàn)方案,,可能簡單如控制一盞燈,,也可能復(fù)雜似一件藝術(shù)品。這些形容簡化了編寫的內(nèi)容,,同時(shí)也意味著設(shè)計(jì)流程偏向于并行化,,而且更具兼容性。

集成嵌入式處理器的FPGA
    過去十多年間出現(xiàn)了兩類集成處理器的FPGA:帶有處理器軟核的FPGA和帶有處理器硬核的FPGA,。它們各有其優(yōu)缺點(diǎn),,但其中有些FPGA得以幸存,有的卻慘遭淘汰,。問題在于嵌入式與 FPGA 設(shè)計(jì)人員的設(shè)計(jì)流程和相反特性究竟在多大程度上阻礙了這些器件的快速采納,。
帶處理器軟核的FPGA
    帶處理器軟核的FPGA主要是由FPGA供應(yīng)商提供的產(chǎn)品或解決方案。它為FPGA設(shè)計(jì)人員提供了嘗試嵌入式設(shè)計(jì)的機(jī)會(huì),,不過由于FPGA設(shè)計(jì)人員在AVR,、8051、PIC或ARM等標(biāo)準(zhǔn)處理器上往往擁有自己的個(gè)人偏好,、經(jīng)驗(yàn)和代碼庫,因而往往無法超過真正的嵌入式設(shè)計(jì)人員,。多年來,,愛特公司一直致力于為航天產(chǎn)品提供處理器軟核(如8051和Leon),最近更推出了集成了ARM7,、8051和ARM?誖CortexTM-M1處理器的快閃FPGA,。
    處理器軟核的優(yōu)勢一般包括:(1)可以根據(jù)需要增加外設(shè);(2)在某些無需使用所有功能的情況下,,可以簡化指令集以減小占用空間,;(3)在需要時(shí)可以把設(shè)計(jì)移植到更大的FPGA中。
    但是這種方案中僅僅是處理器本身就要使用相當(dāng)大的硅面積,,因而成本高于獨(dú)立式處理器,。外設(shè)數(shù)量的增加可能導(dǎo)致時(shí)序問題,,而這超出了嵌入式設(shè)計(jì)人員的經(jīng)驗(yàn)范圍。此外,,SRAM FPGA沒有閃存來存儲(chǔ)代碼和數(shù)據(jù),,所以必須配置額外的閃存器件,而這也會(huì)影響到I/O要求,、電路板版圖和設(shè)計(jì)復(fù)雜性,。
    從設(shè)計(jì)角度來看,進(jìn)行嵌入式設(shè)計(jì)的FPGA設(shè)計(jì)人員首先必須解決FPGA中處理器的硬件版圖問題,,然后再進(jìn)行FPGA內(nèi)部嵌入式應(yīng)用的調(diào)試,。如果只有一個(gè)設(shè)計(jì)人員進(jìn)行產(chǎn)品開發(fā)工作,則開發(fā)流程基本上是串行化的,。如果在設(shè)計(jì)中存在缺陷或問題,,便需要深入剖析許多層面才能找出原因所在(是代碼問題、RTL問題,,還是硬件時(shí)序問題),。所有這些都影響著產(chǎn)品的上市時(shí)間和可靠性,最終關(guān)系到該項(xiàng)技術(shù)的全面采納,。
帶嵌入式處理器硬核的FPGA
    帶處理器硬核的FPGA有多種形式,,均為行業(yè)標(biāo)準(zhǔn)產(chǎn)品,這一點(diǎn)十分有利于加速產(chǎn)品的推廣應(yīng)用,。例如,,Triscend公司擁有8051/ARM FPGA,愛特梅爾(Atmel)則推出了基于AVR的FPSLICTM器件,。由于Triscend在FPGA和現(xiàn)有FPGA設(shè)計(jì)流程方面缺乏深厚背景,,所以根據(jù)器件需要開發(fā)出了一個(gè)對自己有利的工具流程。這個(gè)工具流程能夠更加直觀地整合各種組件,,但缺少一般FPGA用戶期望的FPGA詳細(xì)設(shè)計(jì)功能,。愛特梅爾擁有FPGA技術(shù)背景,其設(shè)計(jì)流基于FPGA/嵌入式并行流程,,并可通過配置對話來定義兩者間的接口,。
    這些FPGA都具有一個(gè)優(yōu)點(diǎn),即采用業(yè)界標(biāo)準(zhǔn)處理器,。其他優(yōu)點(diǎn)還包括:由于采用業(yè)界標(biāo)準(zhǔn)處理器,,能夠使用業(yè)界領(lǐng)先的編譯器(如KeilTM和IAR Systems?誖),從而再次進(jìn)入主流嵌入式領(lǐng)域,。處理器硬核的設(shè)計(jì)流程已被證明對雙方都很有利,,不過FPGA和微處理器之間接口的調(diào)試可能是一大挑戰(zhàn)。
    一直以來,,較高的硅成本都是帶有處理器硬核的FPGA的缺點(diǎn),。硬核處理器的成本曾非常接近獨(dú)立式處理器的成本,,而當(dāng)時(shí)FPGA仍然十分昂貴,因此說服那些使用1美元或2美元器件的嵌入式設(shè)計(jì)人員在成本只有15美元的設(shè)備中使用FPGA,,還要增加一個(gè)額外的外設(shè),,對銷售人員或工程師來說都不是一個(gè)好主意。對于FPGA設(shè)計(jì)人員而言,,這些器件中的FPGA實(shí)在太小,,無法激起很大興趣。FPSLIC曾是一個(gè)不錯(cuò)的點(diǎn)子,,工程師都希望找到這方面的項(xiàng)目,,不過一旦進(jìn)入定價(jià)和物流階段,許多機(jī)會(huì)都無法滿足應(yīng)用的實(shí)際需求,。
嵌入式處理器的下一步
    由于CMOS工藝的局限性,,也因?yàn)樵缙趲в埠颂幚砥鞯腇PGA屬SRAM FPGA,因而并沒有集成大量的模擬功能,。而利用基于快閃技術(shù)的FPGA則有可能增加廣泛的模擬電路,。此外,只要再增加一個(gè)用于代碼存儲(chǔ)的集成式快閃模塊,,這類器件看起來就像一個(gè)集成了模擬和FPGA的單芯片嵌入式處理器,。如果從器件設(shè)計(jì)流程角度考慮,這就相當(dāng)于增加了一個(gè)新的設(shè)計(jì)組件,。此時(shí),,不僅要進(jìn)行FPGA和嵌入式設(shè)計(jì),還需處理模擬設(shè)計(jì),。于是,,這種器件的設(shè)計(jì)流程需要進(jìn)行三類設(shè)計(jì):FPGA設(shè)計(jì)、嵌入式設(shè)計(jì)和模擬設(shè)計(jì),。這些任務(wù)可以由3個(gè),、2個(gè)甚至1個(gè)設(shè)計(jì)人員來完成,使所有設(shè)計(jì)人員都必須能夠并行進(jìn)行自己的設(shè)計(jì)部分,,以避免設(shè)計(jì)周期延長與FPGA中軟核處理器的協(xié)作問題,。
    此外,由于FPGA和嵌入式設(shè)計(jì)人員都是成熟的用戶團(tuán)隊(duì),,設(shè)計(jì)流程必須對雙方都具有吸引力,并且沒有陡峭的學(xué)習(xí)曲線,,而FPGA和嵌入式設(shè)計(jì)人員都必須能夠確信自己的專業(yè)技術(shù),,因此每一方都必須依賴所做的設(shè)計(jì)選擇,能夠根據(jù)需要訪問模擬數(shù)據(jù),,圖2所示為Actel SmartFusionTM混合信號(hào)FPGA,,是目前唯一一款集成了FPGA,、ARM Cortex-M3處理器硬核和可編程模擬的FPGA。該器件的架構(gòu)具有清晰的功能性邊界和明確定義的接口,,有助于簡化這類器件的設(shè)計(jì)邊界,。


    下面從三類設(shè)計(jì)工作劃分的角度來進(jìn)行分析:
    (1)嵌入式設(shè)計(jì)人員可以像使用常規(guī)微控制器一樣,使用帶有一套固定硬外設(shè)(藍(lán)色部分)的標(biāo)準(zhǔn)ARM Cortex-M3處理器硬核,。這稱為微控制器子系統(tǒng)(MSS),。這里并無時(shí)序不確定性。與模擬或FPGA的任何連接都通過先進(jìn)外設(shè)總線(APB)或先進(jìn)高性能總線(AHB)接口完成,。盡管FPGA的內(nèi)容可能有很大改變,,但由于存儲(chǔ)器映射具有簡單、自動(dòng)擴(kuò)展的特性,,它的各個(gè)組件可被視為處理器的外設(shè)擴(kuò)展部分,。
    (2)FPGA設(shè)計(jì)人員可以選擇使用FPGA中完全獨(dú)立于處理器的部分。由于FPGA帶有功能齊全的陣列,、SRAM 和 FIFO模塊,,以及包括 LVDS 的I/O,所以設(shè)計(jì)人員不受折衷FPGA架構(gòu)的限制,。但是現(xiàn)在FPGA設(shè)計(jì)人員也能夠通過增加先進(jìn)微控制器總線架構(gòu)(AMBA)外設(shè)來支持嵌入式設(shè)計(jì),,或利用AMBA接口開發(fā)新的功能,以創(chuàng)建設(shè)計(jì)專用的新的定制外設(shè),。
    (3)由于模擬設(shè)計(jì)沒有標(biāo)準(zhǔn)的現(xiàn)成設(shè)計(jì)流程,,因此“模擬設(shè)計(jì)”這個(gè)術(shù)語對不同人的含義可能也不一樣。許多模擬組件是專用標(biāo)準(zhǔn)器件(ASSP),,需要定制與處理器的接口,。在SmartFusion中,模擬組件與處理器和FPGA集成在一起,;在模擬設(shè)計(jì)中,,預(yù)定義接口可以實(shí)現(xiàn)更高級(jí)別的提取。由于它們易于使用并具有直觀的圖形格式,,最終可獲得適合于所有設(shè)計(jì)人員的全新一代的模擬配置對話,。
下一代嵌入式處理器
設(shè)計(jì)
    假設(shè)目前的設(shè)計(jì)至少有兩名設(shè)計(jì)人員一起工作,設(shè)計(jì)中需要兩個(gè)并行設(shè)計(jì)流程,,并采用一種便于兩名設(shè)計(jì)人員相互交流溝通的方法,。圖3為基本的模塊結(jié)構(gòu)。

    對于嵌入式設(shè)計(jì)人員,,第一步是查看MSS配置器并選擇外設(shè),,然后安排配置設(shè)置以及改變I/O屬性。最重要的是,,可以根據(jù)用戶的選擇自動(dòng)生成存儲(chǔ)器映射和所選配置需要的全部固件,。從這一點(diǎn)出發(fā),,嵌入式設(shè)計(jì)人員便可選擇工作在GNU、Keil或IAR等工具的標(biāo)準(zhǔn)處理器設(shè)計(jì)流程內(nèi),。實(shí)際上,,無論使用上述任何哪一種業(yè)界標(biāo)準(zhǔn)軟件IDE中,都可以提供MSS配置器,。
    配置外設(shè)的驅(qū)動(dòng)器庫,、系統(tǒng)初始化和啟動(dòng)代碼都是自動(dòng)產(chǎn)生的,這就為設(shè)計(jì)人員節(jié)省了大量的時(shí)間,,不必花費(fèi)太多精力用于這部分設(shè)計(jì),,從而將更多時(shí)間用于應(yīng)用開發(fā)。
    MSS配置器GUI看起來就像器件架構(gòu)模塊示意圖,。由于這類工具對嵌入式和FPGA兩方設(shè)計(jì)人員來說都比較新穎,,它的圖形直觀性界面有助于所有設(shè)計(jì)人員順利地學(xué)習(xí),同時(shí)滿足每個(gè)人的要求,。
    FPGA設(shè)計(jì)人員可以自行配置微控制器子系統(tǒng),,也可以引入一個(gè)由嵌入式設(shè)計(jì)人員創(chuàng)建的微控制器子系統(tǒng)。這時(shí),,只需采用一種簡單的文件格式在設(shè)計(jì)人員之間傳遞MSS配置,,不必傳遞整個(gè)設(shè)計(jì)項(xiàng)目。實(shí)際上,,F(xiàn)PGA設(shè)計(jì)人員需要了解MSS配置的唯一理由是外設(shè)與FPGA架構(gòu)的連接,。FPGA設(shè)計(jì)人員因此能夠增加像SmartDesign IP模塊這樣的額外設(shè)計(jì)組件,或者是獲得用于與處理器的設(shè)計(jì)相獨(dú)立的RTL,,并繼續(xù)進(jìn)行包含了全面廣泛的時(shí)序和功率分析的傳統(tǒng)FPGA設(shè)計(jì)流程,。
    對于模擬設(shè)計(jì),不論用戶是真正的模擬設(shè)計(jì)人員,,還是嘗試模擬設(shè)計(jì)的其他類型設(shè)計(jì)人員,,直觀的圖形化配置方案似乎效果最好。這些已獲驗(yàn)證的設(shè)計(jì)技術(shù)支持現(xiàn)有混合信號(hào)Fusion FPGA,,并包含電壓,、溫度和電流監(jiān)控功能,以及采樣排序和后處理標(biāo)記生成的控制等功能,。
    溫度監(jiān)控器配置對話允許用戶設(shè)置采集時(shí)間,,運(yùn)用過濾技術(shù)及輸入標(biāo)記要求以生成輸出,可用于處理器的中斷或FPGA架構(gòu)的輸出,。
分布式設(shè)計(jì)環(huán)境的版本控制
    若有兩個(gè)或更多設(shè)計(jì)人員從事一項(xiàng)設(shè)計(jì),,那么建立清晰的設(shè)計(jì)修改協(xié)議就顯得十分重要,而且其中一個(gè)設(shè)計(jì)人員應(yīng)該成為MSS配置的主要管理者,。在密切合作的工作關(guān)系中,,任何一個(gè)設(shè)計(jì)人員都可能修改或更新另一個(gè)人的工作,這時(shí)跟蹤修改是非常重要的,。
    如果嵌入式設(shè)計(jì)人員創(chuàng)建MSS配置,,則該配置被輸出并傳送給FPGA設(shè)計(jì)人員。FGPA設(shè)計(jì)人員可以輸入且采用這個(gè)新版本,,就如同一個(gè)輸入到設(shè)計(jì)圖中的標(biāo)準(zhǔn)IP模塊一樣,。如果有帶MSS的現(xiàn)成設(shè)計(jì),則設(shè)計(jì)人員可以簡單使用內(nèi)核替代功能,,然后使用SmartDesign Canvas檢測是否有連接改變,。
    如果嵌入式設(shè)計(jì)人員是主要管理者,雖然FPGA設(shè)計(jì)人員在測試時(shí)可以對配置做較少的改變(例如,,為了評(píng)測任何時(shí)序問題,,F(xiàn)PGA設(shè)計(jì)人員可能需要改變MSS饋入FPGA架構(gòu)的時(shí)鐘頻率),但嵌入式設(shè)計(jì)人員必須對這些變化進(jìn)行編譯以保持雙方同步,。
    由FPGA設(shè)計(jì)人員啟動(dòng)設(shè)計(jì)流程并定義MSS所需的外設(shè)之后,,下一步就是輸出配置并傳送給嵌入式設(shè)計(jì)人員,再由后者輸入這個(gè)配置,,并生成用于MSS以及FPGA設(shè)計(jì)人員增加的任何軟外設(shè)的固件,。若在設(shè)計(jì)流程初期創(chuàng)建有大量軟外設(shè),就極可能是這種情況,。
    至于決定由哪一方作為配置的主要管理者,,則因具體設(shè)計(jì)而異。處理模擬設(shè)計(jì)的人最有可能成為主要管理者,。模擬計(jì)算引擎ACE(Analog Compute Engine)配置也包括在MSS模塊中,。由于大多數(shù)設(shè)計(jì)人員都不太熟悉模擬設(shè)計(jì),最初也許會(huì)經(jīng)歷多次設(shè)計(jì)反復(fù),,因此讓模擬設(shè)計(jì)人員成為MSS配置的主要管理者是很有說服力的,。
嵌入式混合信號(hào)
FPGA設(shè)計(jì)流程總結(jié)
    嵌入式混合信號(hào)FPGA設(shè)計(jì)流程軟件開發(fā)團(tuán)隊(duì)的目標(biāo)是建立一個(gè)具有以下特性的設(shè)計(jì)環(huán)境:
    (1)使現(xiàn)有FPGA及嵌入式設(shè)計(jì)人員的學(xué)習(xí)曲線最小化;
    (2)能夠幫助嵌入式設(shè)計(jì)人員單獨(dú)評(píng)測器件的處理器方面的性能,;
    (3)能夠幫助FPGA設(shè)計(jì)人員單獨(dú)評(píng)測器件的FPGA方面的性能,;
    (4)能夠讓嵌入式和FPGA設(shè)計(jì)人員并行進(jìn)行同一個(gè)器件的工作,而不存在進(jìn)度安排的風(fēng)險(xiǎn),;
    (5)引入簡單的模擬接口,,向所有用戶開放模擬設(shè)計(jì)。
    在經(jīng)濟(jì)困難時(shí)期,,產(chǎn)品需要快速上市,,而工作穩(wěn)定性十分有限,市場競爭日益激烈。因此,,任何一家硅器件供應(yīng)商或軟件開發(fā)商的任務(wù)都應(yīng)該是建立一個(gè)有助于提高生產(chǎn)力,,而不是挑戰(zhàn)設(shè)計(jì)人員能力的設(shè)計(jì)環(huán)境,同時(shí)為設(shè)計(jì)人員的產(chǎn)品提供顯著的市場競爭優(yōu)勢,。

此內(nèi)容為AET網(wǎng)站原創(chuàng),,未經(jīng)授權(quán)禁止轉(zhuǎn)載。